很多人以为在Mac上跑iOS,最多只能开Xcode那个假模拟器。实际上现在能直接启动一台接近真机的虚拟iPhone,连越狱都支持。
这个项目叫vphone-cli,用的是苹果自己的Virtualization.framework,再叠上PCC研究用的虚拟机基础设施。GitHub上已经7.8k星了,今天还在更新。主机必须是Apple Silicon,系统至少macOS 15,还得把SIP和AMFI放宽。做完这些,一条命令就能把IPSW下载、引导链打补丁、DFU恢复、自定义固件安装、第一次开机全跑完。

它和Xcode模拟器到底差在哪
Xcode模拟器本质是应用层的沙盒,很多底层接口是假的,越狱更是想都别想。这个虚拟机跑的是完整的iOS系统镜像,引导链被打了补丁,能走DFU恢复流程。
打个比方,Xcode那个像在电脑上开了个浏览器模拟手机网页,这个更像直接把整台手机的系统装进虚拟机里跑。你能SSH进去,能开VNC看画面,能装Sileo,能跑TrollStore。
对做iOS底层、安全研究、自动化测试的人来说,差别很大。以前想测某个系统级行为,要么真机刷机,要么找越狱设备,现在直接在本机开一台,快照、克隆、导出都支持。APFS克隆很快,设备标识会重新生成,不会撞车。
技术上它分了五种固件变体。从最少补丁的less,到完整越狱的jb,再到加了反虚拟机检测的exp。jb变体首次启动会自动装好Sileo和TrollStore。补丁数量从4个到141个不等,对应不同的安全绕过程度。
有人会问苹果服务能不能用。目前App Store、iMessage这类服务基本挂,因为系统会检测虚拟机特征。社区有人在尝试绕过kern.hv_vmm_present,但设备证明那关还过不去。这块暂时别抱太大期望。
实际能解决什么问题
做逆向或者越狱开发的人,最烦的就是真机数量有限,刷来刷去很浪费时间。现在可以直接在本机开多台,配置不同CPU内存,导出成压缩包带走。
测试自动化也方便。项目里已经有人接了MCP服务,能让大模型直接控制虚拟机的触控和截图,做端到端测试。主机控制socket支持截图、触摸、剪贴板,理论上可以接进CI流水线。
我自己试过一次创建流程。下载IPSW那步会缓存,下次再开同版本就快很多。第一次跑完整流程要花点时间,主要卡在恢复和补丁。跑完之后SSH端口默认22222,密码alpine,进去和真机几乎一样。
有个小细节挺有意思。数据默认全放在~/.vphone/下面,包括IPSW缓存、工具链、deb包。可以用环境变量整个挪走,方便多用户或者磁盘空间不够的情况。
怎么快速上手
先确认你是Apple Silicon,系统macOS 15或更高,装好Xcode和对应iOS SDK。然后必须处理SIP和AMFI,否则私有权限过不去。
最简单的方式是用Homebrew:
brew install zqxwce/tap/vphone-cli
或者自己编译:
git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git
./scripts/setup_tools.sh
./scripts/build.sh
创建一台带越狱的虚拟机就一条命令:
vphone-cli vm create myphone -V jb
vphone-cli vm launch myphone
-V后面可以换成less、regular、dev、exp。创建过程会自动下载对应版本的IPSW,打补丁,走完整恢复。第一次建议先用jb,能直接看到越狱环境。
启动后用VNC连vnc://虚拟机IP:5901,或者SSH。越狱后默认是mobile用户。想手动一步步跑也可以,项目文档把每个阶段都拆开了,方便出问题排查。
注意:放宽SIP属于高权限操作,做之前先备份。有些地区固件对系统应用安装有额外限制,选版本的时候留意一下。
这个工具目前还在快速迭代,最近几天还在加新固件配对和根目录覆盖。对需要真实iOS环境又不想天天刷真机的人,确实省事不少。
你现在手头有Apple Silicon的Mac吗,会想试试吗
转自头条号Mac玩机研究所












没有回复内容