一台完整的 iPhone,在自家 Mac 里跑了起来。不是模拟器那种仿真,是一整个 iOS 镜像被 Apple 的 Virtualization.framework 抬起来,内核、守护进程、硬件行为都是真的。

一条命令:从下载到第一次开机
项目叫 vphone-cli,Lakr233 做的,刚在 GitHub 挂了 9000 多颗星,HN 上 379 分、102 条评论吵成一团。Swift 写的,MIT 协议,免费。

安装只要半分钟:brew install zqxwce/tap/vphone-cli。
真正吓人的,是它把整条流水线压成了一句话:
vphone-cli vm create myphone -V jb
vphone-cli vm launch myphone
create 这一条命令,背后是下载、打补丁、DFU 恢复、装 CFW、首次启动。
一步扛完。跑起来之后能 SSH 登进去(jb 变体是 ssh -p 22222 mobile@
最让研究者兴奋的,是五种固件补丁变体,从「完全不动」的 less,到「完整越狱」的 jb。jb 变体首次启动就自动装好 Sileo 和 TrollStore,想塞任意 IPA 都行。

它还有一个容易忽略的细节,但对做测试的人很值钱:暴露了宿主控制套接字,能程序化截图、触控、滑动、按硬件键,每个动作回一张截图。已经有人把它包成了 MCP 服务器。
这意味着什么?一个 AI agent,现在能像真用手一样,去操作一台完整的 iPhone。
跟模拟器差在哪:它根本不是缩水版
到这里,很多人的第一反应是:这跟 Xcode 里那个 iOS 模拟器有啥区别?
这问得对,区别恰恰是这篇文章存在的理由。
iOS 模拟器,说白了是把 iOS 的一部分用户态组件,重新编译成能在 macOS 上跑的玩意儿,共享宿主机内核,很多系统路径是垫片不是真身。它快,是因为根本没在跑一个完整的系统。
vphone 不一样。把一整份 iPhone 镜像原样交给 Virtualization.framework,跑的是完整客户机系统,内核、守护进程、启动链都是真的。

那为什么这会有用?因为模拟器在仿真,一旦 bug 不在仿真层,它就抓瞎。正是这个点,让 HN 评论区吵得最凶。
一边是被模拟器坑过的开发者,拿着真实 bug 站队。有人做 VPN 网络扩展,在模拟器里根本起不来。
有人做通知扩展,遇到 HEIF 图片,模拟器好好的、真机就崩。还有人栽在语言环境,模拟器里选 es_US 没事,真机一验就翻车。
而看到这东西的价值,也有人在评论区第一时间就想到另一头——能原样跑 iOS 的虚拟机,除了拿来测试,还能当点击农场、群发 iCloud 垃圾短信的马甲。有多方便,就有多招人惦记。
玻璃门:苹果当年追着告,如今自己开了门
最讽刺的在这。
2019 年,苹果起诉了 Corellium,一家专门做「在浏览器里跑 iOS 固件」虚拟化的公司,告的是版权侵权。那会儿苹果对「虚拟化 iPhone」的态度,是把它当成要堵的洞。
而现在,让 vphone 跑起来的底层环节,全是苹果自己出、自己维护、还给第三方开发者用的。
Virtualization.framework、PCC(Private Cloud Compute)研究虚拟机基础设施,一个都不例外。
PCC 本来是苹果给自己做隐私计算准备的,把敏感的 AI 请求放进封闭硬件里处理,连苹果自己都声称看不到。
谁能想到,这套研究基础设施,顺手就把虚拟 iPhone 的路铺平了。
HN 上有人一句点破:苹果当年费劲封杀 Corellium,现在自己把能实现同样东西的零件发给了所有人。
另一派当场反对:这话说得太天真。封杀是商业保护,开放是技术平台,两件事不冲突。
但不管哪一派,都绕不开同一扇玻璃门。能推开,先得付代价:
- 必须放宽 SIP/AMFI。要么关 SIP 加 boot-arg,要么用 amfidont 给二进制白名单。这是实打实的安全降级。
- 跑不了在「本身就是虚拟机的 Mac」上,PV=3 客户机不支持嵌套。
- iOS 设置时,别选日本或欧盟当地区。那两地有额外监管检查,虚拟机满足不了,得选美国之类。
- Apple 服务暂不支持。App Store、iCloud 登录这类,当前版本接不上;能跑任意 IPA,靠的是 jb 变体里的 Sileo/TrollStore,不是官方渠道。
所以评论区当场分成两派。一派嫌它不实用,有人说可惜了,公司机挂 MDM,这种机器这辈子跑不了这个。
另一派回得干脆:那就让公司给买台不挂 MDM 的研究用 Mac,再不行,你是在给错的公司打工。最后这句是原话,火药味一点没添。
那场争论里,被顶得最高的是一条英文评论。
The difference doesn't matter until it does, and then it's infuriating to work out what's going on.
意思就一句,平时无所谓,真的踩到那一刻,才明白它在说什么。
想试?先把门槛看清
最后,要是动了心,这是今天的地址和步骤。
brew install zqxwce/tap/vphone-cli
前提是得有 Apple Silicon 的 Mac,macOS 15 或更高,装好 Xcode 和 iOS SDK,并且愿意为它放宽一次 SIP/AMFI。
项目文档把每一步、每一种变体都写得很细。连卡在 Press home to continue 怎么办、EXC_GUARD 崩溃怎么重打补丁,都有对应方案。
但说句实在的,这不是普通 Mac 用户的日常工具。它是给 iOS 测试、逆向、自动化,以及想让 AI agent 远程操一台真 iPhone 的玩家准备的。
想白嫖一台免费 iPhone 上 App Store 的,现在可以划走了,当前版本连不上 Apple 服务。
对我们这种天天跟 App、跟 AI 打交道的人来说,它真正的价值,是补上了模拟器那块痒不到的角落:当 bug 只在真机上冒出来,当想让 AI 替我们做一遍端到端的真机操作,这台虚拟 iPhone 就派上用场了。
地址在这,剩下的自己玩:
- vphone-cli:https://github.com/Lakr233/vphone-cli
- 中文文档在项目里的 docs/README_zh.md
- 想让 AI 上手操作的,可以看看 vphone-mcp
评论区