HTML · 项目报告

34306/vphone-web

vphone-cli but you can use your mac as a host and control it over the web

已完成 打开 GitHub
3
346星标
38Fork
0Issue
GPL-3.0许可证

分析结果

项目分析

vphone-web 是一个基于 vphone-cli 的自托管 Web 平台,用于在 Apple Silicon Mac 上运行和管理多个虚拟 iPhone。它提供浏览器内的实时屏幕串流、触控与硬件按键控制、IPA/TIPA 安装、Root Shell、文件浏览器、用户账号、RBAC 权限控制、按用户分配设备等能力。底层依赖 Apple Virtualization.framework 与 vphone-cli,需要用户自行构建 vphone-cli 并准备基础 iOS VM 镜像。

适用领域 iOS 虚拟化 / 移动应用测试 / Web 远程控制 / 自托管设备云 / Apple Silicon 虚拟化 / WebRTC/MJPEG 串流 / DevOps/测试基础设施 / 安全研究与越狱研究
配置难度 高。该项目不是即装即用型 Web 应用,而是依赖 Apple Silicon、macOS 15+、禁用系统安全机制、构建 vphone-cli、准备 iOS 基础 VM、配置环境变量和处理远程访问的复杂系统。适合熟悉 macOS 底层、iOS 虚拟化、命令行工具链和安全风险的高级开发者或研究人员。
商业价值 对需要私有化 iOS 测试基础设施的团队具有较高探索价值,尤其适合 App 自动化测试、兼容性验证、远程调试、移动安全研究和内部设备云原型建设。它可以降低实体 iPhone 设备管理成本,并让团队通过浏览器共享虚拟设备。但由于安装复杂、平台限制强、安全与合规风险高,更适合作为研发实验平台或内部受控环境使用,不宜直接作为大规模商业生产系统。
01

技术亮点

  • 支持在浏览器中控制多个虚拟 iPhone,适合搭建轻量级私有 iOS 设备云。
  • 具备用户账号、RBAC 和按用户分配设备的能力,适合团队协作使用。
  • 支持 WebRTC 实时画面串流,并提供 MJPEG/WebSocket 回退,兼顾局域网和隧道访问场景。
  • 支持触摸输入、Home/Power/音量等硬件按键控制。
  • 支持 IPA/TIPA 拖拽安装,对 App 测试流程较友好。
  • 提供浏览器内 Root Shell 和文件浏览器,方便调试和研究。
  • 基于 vphone-cli,利用 Apple Virtualization.framework 和 PV=3 研究型 VM,技术前沿且可玩性强。
  • 支持 Cloudflare Tunnel 暴露服务,无需直接开放本地端口。
  • 基础 VM 使用 Copy-on-Write 克隆思路,创建 Web VM 的速度较快。
02

目标用户

  • iOS 应用开发者
  • 移动端 QA 测试团队
  • 需要多台 iPhone 测试环境的中小团队
  • 安全研究人员
  • 逆向工程研究者
  • 希望搭建私有 iOS 设备云的开发者
  • 熟悉 macOS、命令行、虚拟化和 iOS 固件流程的高级用户
03

配置要求

  • 操作系统:macOS 15+ Sequoia。
  • 硬件:Apple Silicon Mac。
  • 系统安全设置:需要禁用 SIP 和 AMFI,以获得私有 Virtualization entitlements 所需能力。
  • 依赖工具:Xcode、Command Line Tools、Homebrew、Python 3.11+。
  • 底层引擎:必须自行构建 vendor/vphone-cli,仓库不包含大型基础 VM 文件。
  • 基础 VM:需要用户使用 vphone-cli 创建,且 .env 中需正确配置 VPHONE_BASE_VM 或不同版本对应的 VPHONE_BASE_VM* 路径。
  • 存储:强烈建议将 VM 镜像放在内部 SSD,外置 USB 或慢速磁盘会导致 iOS 首次启动和大量小文件写入极慢。
  • 网络:默认仅监听 127.0.0.1:8080;公网访问需自行配置 Cloudflare Tunnel 或其他反向代理方案。
  • 账号系统:首次运行前需要 seed 管理员账号。
  • Cookie 配置:如果通过多个子域名访问,需要设置 VPHONE_COOKIE_DOMAIN。
  • 运行环境:Web VM 需要 GUI 登录会话和 WindowServer,因此自动启动应使用用户级 LaunchAgent,而不是系统级 LaunchDaemon。
04

适用场景

  • 在浏览器中远程启动、访问和控制多个虚拟 iPhone
  • 为不同用户分配独立的虚拟 iOS 设备
  • 进行 iOS App 的安装、冒烟测试、兼容性测试和回归测试
  • 通过 Web UI 上传并安装 IPA/TIPA 包
  • 通过内置 Root Shell 和文件浏览器进行调试、文件检查或研究
  • 搭建团队内部自托管 iOS 测试平台
  • 通过 Cloudflare Tunnel 将本地虚拟 iPhone 平台安全暴露给远程团队使用
  • 研究 Apple Virtualization.framework、PV=3 虚拟化和 iOS 虚拟机运行机制
05

部署与配置

  • 确认设备满足要求:Apple Silicon Mac,macOS 15+ Sequoia,已安装 Xcode、Command Line Tools、Homebrew、Python 3.11+,并准备足够快的内部 SSD 存储空间。
  • 按照 vphone-cli 的要求关闭 SIP 和 AMFI。该步骤通常需要进入 macOS Recovery 环境执行相关命令。
  • 递归克隆仓库:git clone --recursive https://github.com/34306/vphone-web.git && cd vphone-web。
  • 进入 vendor/vphone-cli 构建底层引擎:make setup_tools、make build、make bundle。
  • 使用 vphone-cli 自动化流程下载 IPSW/cloudOS、恢复、打补丁、安装 CFW 并首次启动,创建基础 VM。基础 VM 通常位于 vendor/vphone-cli/vm/,需包含 Disk.img、nvram.bin、SEPStorage、config.plist 等文件。
  • 复制环境变量文件:cp .env.example .env,并根据本地路径修改基础 VM、vphone-cli、数据目录等配置。
  • 初始化 Web 环境:make web_setup。
  • 创建管理员账号:make web_seed_admin USER=admin PASS='强密码'。
  • 启动 Web 服务:make web_run,默认访问 http://127.0.0.1:8080。
  • 登录后台后通过 Admin 创建 VM,选择对应 iOS 版本,然后将 VM 分配给用户。
  • 用户登录后可 Start、Open 虚拟机,在浏览器内进行触控操作、按键控制、IPA/TIPA 安装、SSH/Shell 和文件管理。
  • 如需公网访问,可选配 Cloudflare Tunnel,并注意 WebRTC 在隧道场景下会回退到 MJPEG-over-WebSocket。
06

风险与注意事项

  • 安全风险很高:需要禁用 SIP 和 AMFI,会显著降低 macOS 系统安全性,不建议在主力生产机器上使用。
  • 合规和授权风险:涉及 iOS 固件、虚拟化、私有 entitlement、IPA 安装等场景,可能受 Apple 许可协议、地区法律或企业合规政策限制。
  • 稳定性风险:README 明确提到作者使用 AI 辅助快速开发,虽然自测可用,但工程成熟度和长期维护能力需要谨慎评估。
  • 安装复杂度高:需要构建 vphone-cli、准备固件、创建基础 VM、处理签名和虚拟化权限,普通前端或移动开发者上手门槛较高。
  • 平台限制强:仅支持 Apple Silicon + macOS 15+,无法在 Linux、Windows 或 Intel Mac 上使用。
  • 性能和存储压力:多个 iOS VM 同时运行会消耗大量 CPU、内存和磁盘 IO,慢速磁盘会严重影响体验。
  • 远程访问安全:若通过 Cloudflare Tunnel 或其他方式暴露到公网,需要严格保护管理员密码、会话 Cookie、上传能力和 Shell/文件访问能力。
  • Root Shell 和文件浏览器属于高危功能,一旦账号或服务被攻破,可能导致 VM 内数据、宿主路径配置或测试资产泄露。
  • GPL-3.0 许可证:如果企业将其修改后分发或集成到产品中,需要遵守 GPL-3.0 的开源义务。
  • 依赖 vphone-cli 和 Apple 私有/研究性能力,未来 macOS 或 Apple Virtualization.framework 变更可能导致不可用。

历史记录

热榜历史快照

2026-09-10 第30名 新收录 · github_search