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 补丁数说明
less4几乎不绕,保留 iOS 大部分安全机制
regular42绕过 AMFI、SSV、Img4、TXM
dev53在 regular 基础上增加 TXM entitlement 与调试绕过
jb113完整越狱,首次启动自动安装 Sileo 与 TrollStore
exp141jb 的超集,另含反虚拟机检测等研究补丁

对多数研究用途,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。