2026 年 8 月末,Hacker News 首页出现了一个让 iOS 开发者和安全研究者同时兴奋的项目:Lakr233 的 vphone-cli,在 Apple Silicon 的 Mac 上,通过 Apple 官方的 Virtualization.framework 启动一台完整的虚拟 iPhone。这条新闻拿到 343 分和 90 多条评论,GitHub 仓库目前约 9000 star、1000 次 fork、50 位贡献者。
README 里的演示截图给出了最直观的证据:macOS 桌面上开着一个 vphone 窗口,里面是真实运行的 iOS 主屏幕;旁边的终端里,neofetch 显示这台虚拟设备的系统是 iOS 27.0、内核版本 25.4.0,软件包计数 285,内存 8GB。

安装只差两条命令:
brew install zqxwce/tap/vphone-cli
vphone-cli vm create myphone -V jb # 下载固件、打补丁、DFU 恢复、装定制系统
vphone-cli vm launch myphone # 启动真正的看点在这两条命令背后:这台虚拟 iPhone 的固件,来自 Apple 自己的 AI 云端服务器。
模拟器跑了十几年,但它不是 iOS
iOS 开发者日常使用的 Xcode 模拟器,工作方式是把 iOS 的用户态组件重新编译到 macOS 上运行,与 macOS 共享内核,再配一层 shim 做转译。它跑的并不是 iOS 内核加完整设备固件。在 Hacker News 讨论里,多位开发者列出了模拟器长期存在的能力缺口:VPN 的网络扩展无法运行;通知扩展里触发硬件解码的代码路径(例如 HEIF 图片处理)与真机行为不一致;依赖摄像头、ARKit 等硬件特性的应用难以在模拟器里完成测试;也有开发者遇到过「模拟器一切正常、真机必现崩溃」的分支。
商业方案长期由 Corellium 一家提供完整的虚拟 iOS 设备。讨论区有研究者提到,Corellium 收缩研究用途的服务之后,自己失去了习惯性的应用性能分析环境。完整虚拟 iPhone 这块能力,个人开发者一直拿不到。
缺口的钥匙藏在 PCC 固件里
变化从 Apple 的 AI 基础设施开始。2024 年,Apple 发布 Private Cloud Compute(PCC,为 Apple Intelligence 提供云端推理的专用服务器,安全设计全部公开)。安全研究员可以申请运行 PCC 研究虚拟机,Apple 为此开源了 security-pcc 项目,其中的 vrevm 组件负责在虚拟化框架里拉起研究虚拟机。
安全研究者 wh1te4ever 的复盘文章记录了关键发现:2025 年底开始,PCC 固件(从 cloudOS 26 起)中出现了 vphone600ap 相关组件。也就是说,Apple 自己在 PCC 的服务器固件里放入了运行 iPhone 系统镜像所需的部件,并且 security-pcc 的代码显示,vrevm 在初始化虚拟硬件模型时显式指定了 ISA 和 PlatformVersion,用的是 Virtualization.framework 的私有方法。虚拟 iPhone 的全部零件,随 PCC 固件对研究者公开了。
wh1te4ever 证明了这条路走得通:把 iPhone 16(设备标识 iPhone17,3)的 iOS 26.1 固件组件与 cloudOS 26.1 的 vphone 组件混合,逐级给启动链打补丁。启动链上的每一环都要处理:AVPBooter、iBSS、iBEC、LLB 里的镜像签名校验被修补放行;内核打三处补丁绕过 SSV(Signed System Volume,系统卷签名验证)的挂载 panic;TXM(可信执行管理器)修补后允许运行未在 trustcache 注册的二进制;SSH ramdisk 进入系统后,解密 Cryptex 分区(iOS 存放系统与应用分层的加密卷)并传入完整系统文件;图形输出靠 Metal 半虚拟化 GPU 驱动点亮。触控在 Tahoe 26 上可以直接用框架的视图对象,Sequoia 15 上则需要重载鼠标事件来模拟。
vphone-cli 把这套研究流程工程化成了自动流水线。它的固件变体表给出了五档强度:
| 变体 | 启动链补丁 | CFW 阶段 | 说明 |
|---|---|---|---|
| less | 4 | 2 | 不打内核补丁,保留 iOS 缓解措施 |
| regular | 42 | 10 | AMFI/SSV/Img4/TXM 校验绕过 |
| dev | 53 | 12 | 增加 TXM 调试与授权绕过 |
| jb | 113 | 14 | 完整越狱,首次启动自动装 Sileo 和 TrollStore |
| exp | 141 | 18 | 越狱超集,加反虚拟机检测研究补丁 |

选 jb 档启动后,SSH 端口 22222(默认密码 alpine)、VNC 端口 5901,Sileo 包管理器开箱即用。README 的测试矩阵列了 18 组已验证组合:宿主从 Mac16,6 到 Mac16,12,iOS 侧从 18.6.2 一直覆盖到 27.0 测试版,配套的 cloudOS 有 26.1 和 26.4 两条线。对宿主的要求写在前提条件里:Apple Silicon、macOS 15 以上,另外需要放宽 SIP/AMFI(macOS 的系统完整性保护与应用签名强制机制),因为虚拟机要使用带私有授权的未签名组件。
与真机的边界
虚拟 iPhone 能跑完整系统、能装应用、能 SSH 进内核,但有几条硬边界,写进了项目 FAQ 和官方讨论区:
- Apple 服务不可用。项目讨论区 #175 确认 App Store 下载与 iCloud 登录无法使用,这是虚拟设备身份无法通过 Apple 服务端校验的结果。
- 系统设置阶段不能选日本或欧盟地区。这两个地区的监管检查(例如第三方应用商店的设备资格判定)依赖虚拟机无法满足的设备端校验,选美国等其他地区即可通过。
- 宿主机本身是虚拟机时无法运行(PV=3 客户机不能嵌套),公司 MDM 管控的机器也难以放宽 SIP。讨论区里上班族的共识是给它配一台不在管控列表里的私人机器。
- 偶发的应用崩溃(EXC_GUARD)需要加 --force-exc-guard 参数重新打补丁;iOS 18 底层的镜像该选项强制开启。
给 AI 测试留的接口
vphone-cli 在宿主侧暴露了一个控制 socket,程序化接口覆盖截图、触摸、滑动、硬件按键、剪贴板,每次操作返回内联截图。社区已经在其上封装了 vphone-mcp,把这套能力接成 MCP 服务器,供 AI 代理直接驱动虚拟 iPhone 做端到端测试。虚拟设备加快照克隆(APFS 快速克隆并重置设备身份)、导出导入(zstd 压缩包),构成了可重复的测试环境:测崩溃了就回滚快照,测试脚本跑在真实 iOS 内核上而不是模拟器转译层上。
Apple 目前没有把 vphone 变成面向开发者的产品,PCC 研究虚拟机的申请门槛也把大多数普通开发者挡在外面。社区做的事情,是把 Apple 留给安全研究者的零件,拼装成任何一台 Apple Silicon Mac 上都能跑的两条命令。项目地址:github.com/Lakr233/vphone-cli,技术复盘:github.com/wh1te4ever/super-tart-vphone-writeup。
来源:vphone-cli README 与测试矩阵、wh1te4ever 技术复盘、Hacker News 社区讨论(news.ycombinator.com/item?id=49485267)