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