vphone-cli · 用 Apple 自己的虚拟化框架启动一台「真」虚拟 iPhone

TL;DR
是什么:Apple Silicon Mac 上一条命令 vm create 拉起完整 iOS 系统——不是模拟器,是真虚拟化:下载官方 IPSW → 打补丁 → DFU restore → 定制固件 → 首次开机,SSH + VNC 直接连
聪明之处:借用了 Apple 为 PCC(Private Cloud Compute)research VM 铺的基建——guest 以 PV=3 特权级启动,这本是 Apple 自家 PCC 专用的虚拟化平台层
讽刺点:Apple 当年在法院追着 Corellium 打,要的就是阻止 iOS 虚拟化研究;现在自己把必需的原语发出来了(HN 评论区集体玩梗)
和 agent 最相关:host 控制套接字暴露截图/触摸/滑动/硬件键,每次操作内联回传截图——已有 vphone-mcp 把它包成 MCP server,虚拟 iPhone 直接变成 agent 的 E2E 测试工具
⑤ 代价:需 SIP/AMFI 放松(公司机器/MDM 基本没戏)、Apple Silicon only、不能嵌套虚拟化

技术拆解

1. 它踩在哪层
- 模拟器 ≠ 虚拟机:Xcode Simulator 不虚拟化,直接跑本机指令集、共享内核;vphone 是完整独立内核 + 用户态,真·VM
- 关键原语:Apple 给 PCC 研究用的 PV=3 平台虚拟化等级 + 配套 entitlement。普通开发者拿不到这个特权级,所以要 csrutil allow-research-guests enable + 放松 AMFI
- 固件玩法:iPhone IPSW 和 cloudOS IPSW(PCC 的操作系统)合并下载、补丁引导链、SHSH 校验、DFU restore、装 CFW——把物理机越狱的全套流程搬进了 VM 生命周期管理

2. 五档补丁强度
• less:4 个补丁,保留全部 iOS 缓解措施(patchless)
• regular:42 补丁,AMFI/SSV/Img4/TXM bypass
• dev:53,+TXM 调试
• jb:113,完整越狱,首启自动装 Sileo/TrollStore
• exp:141,+反 VM 检测研究补丁(对付「检测到虚拟机就拒绝运行」的 app)
已验证 iOS 26.1→27.0 beta 全系列可跑

3. HN 讨论(122 条)要点
• 最大梗:Apple 诉 Corellium 数年想关掉这扇门,然后自己发了钥匙——「Feels weird that after their attempts to shut down corellium they themselves shipped the necessary bits」
• Corellium 已转 research-only,有人正是因此失去了 app profiling 能力,把这个当替代品
• saagarjha(著名 iOS 逆向研究者)泼冷水:性能数据别当真,不是精确 perf simulator
• 企业机器困境:SIP/AMFI 放松过不了 MDM 合规,基本只有个人机/研究机能跑
• 冷知识线程:region 选日本/欧盟会卡住—— alt app store 资格校验依赖真机位置判定,VM 满足不了

4. 和我们生态的交集
- vphone-mcp:控制套接字 → MCP server → agent 能「操作一台真 iPhone」,每步带截图反馈,天然适合 iOS E2E 自动化(App Store 审核前回归、多 region 矩阵、反检测研究)
- 形态上就是个「环境即工具」:VM 可 APFS 秒级克隆(每次克隆全新设备身份)、zstd 导出导入、vm list --json 可脚本化——和 AnkaLoop 想做的 sandbox/capability seam 里「可快照、可抛弃的执行环境」是同一套词汇
- 局限即机会:MDM/公司机跑不了 → 云上 Apple Silicon 跑这个 + MCP 暴露,就是一个「虚拟 iPhone 云」服务位

5. 快速体验路径
brew install zqxwce/tap/vphone-cli
vphone-cli vm create myphone -V jb
vphone-cli vm launch myphone

SSH: ssh -p 22222 mobile@vm-ip(alpine)/ VNC: 5901


来源:github.com/Lakr233/vphone-cli(8.7k★,MIT)+ news.ycombinator.com/item?id=49485267(389 分)
 
 
Back to Top