vphone-cli 是一个在 Apple Silicon Mac 上启动虚拟 iPhone 的开源命令行工具,基于苹果官方的 Virtualization.framework 和 PCC research VM 基础设施实现。它把「下载固件 → 打补丁 → DFU 恢复 → 安装定制固件 → 首次启动」整条流程压缩成一条命令,最新版本 v1.0.12 于 2026 年 8 月 29 日发布,仓库目前获得 9.9k star 和 1.3k fork。对 iOS 安全研究、系统测试和移动端自动化测试来说,这是在 Mac 上获得一台可反复重置的 iPhone 的快捷途径。
一条命令跑通全流程
核心用法只有一条命令:
vphone-cli vm create myphone -V jb
它依次完成:下载并合并对应版本的 IPSW 固件、给启动链打补丁、让虚拟机进入 DFU 模式、执行恢复、安装定制固件(CFW)、完成首次启动。整条流水线由 vm create 自动串联,也可以拆成 vm new、fw prepare、fw patch、restore、cfw install、vm launch 等单独步骤手动驱动,便于分阶段排查问题。
创建出来的虚拟机支持 clone、rename、export、import 等管理操作,导出的镜像默认用 zstd 压缩,可以快速在多台 Mac 之间迁移。
五种固件变体对应不同安全绕过程度
vphone-cli 提供 5 种补丁变体,通过 --variant 参数选择,区别在于对 iOS 安全机制的绕过程度:
| 变体 | boot chain 补丁数 | 说明 |
|---|---|---|
| less | 4 | 几乎不绕,保留 iOS 大部分安全机制 |
| regular | 42 | 绕过 AMFI、SSV、Img4、TXM |
| dev | 53 | 在 regular 基础上增加 TXM entitlement 与调试绕过 |
| jb | 113 | 完整越狱,首次启动自动安装 Sileo 与 TrollStore |
| exp | 141 | jb 的超集,另含反虚拟机检测等研究补丁 |
对多数研究用途,jb 变体最常用:安装完成后虚拟机里直接带有 Sileo 包管理器和 TrollStore,省去手动配置越狱环境的一整轮工作。
运行前提:Apple Silicon 与 macOS 15
工具对宿主机有明确要求:
- Apple Silicon 芯片(M 系列)
- macOS 15(Sequoia)或更高版本
- Xcode 与 iOS SDK,用于交叉编译虚拟机内的守护进程
- 需要放宽 SIP/AMFI,以允许私有 PV=3 entitlements 与未签名二进制
安装通过 Homebrew 完成:
brew install zqxwce/tap/vphone-cli
另外需要注意的是,虚拟机依赖 PV=3 来宾启动能力,在嵌套虚拟化环境(宿主机 Mac 本身是虚拟机)下无法运行。
SSH 与 VNC 接入,套接字支持自动化
机器启动后有两种标准接入方式:
- SSH:
ssh -p 22222 mobile@<vm-ip>(jb 变体),或ssh -p 22222 root@<vm-ip>(regular/dev 变体) - VNC:
vnc://<vm-ip>:5901
除手动接入外,vphone-cli 会在虚拟机 bundle 目录暴露 vphone.sock 控制套接字,通过它可以执行截图、触控、滑动、硬件按键、剪贴板等操作,每次操作返回内联截图。社区已有 vphone-mcp 项目把它包装成 MCP server,可以让 AI 直接驱动虚拟 iPhone 做端到端测试。
结论
在 Mac 上获得一台可随意重置的虚拟 iPhone,vphone-cli 是目前最直接的命令行方案:一条命令从下载固件跑到越狱完成,9.9k star 与 50 名贡献者说明它已经过相当规模的社区验证。代价是 Apple Silicon、macOS 15 与一次性的 SIP/AMFI 放宽;对 iOS 研究者、App 测试工程师和自动化测试团队来说,这个门槛换来的是一台可以随时克隆、重置和脚本化驱动的 iPhone。