首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >苹果自己给自己挖的坑,被开发者捡漏了!

苹果自己给自己挖的坑,被开发者捡漏了!

作者头像
豆芽菜小萌
发布2026-09-04 18:50:34
发布2026-09-04 18:50:34
170
举报

各位好啊,我是开源君!

做过 iOS 安全测试的朋友,多半都踩过这个坑:手头没有能越狱的旧手机,好不容易淘到一台,系统版本还对不上工具链要求。升级一次系统,整套越狱环境可能就报废了。

于是,很多人只能囤几台老 iPhone,锁死在某个固件版本上,供着,生怕它"意外更新"。

为了测试一个 App,得先维护一个"文物级"的硬件博物馆,挺离谱的。

最近在网络上刷到一个叫 vphone-cli 的项目,才发现苹果自己给自己挖了个坑:他们为 Private Cloud Compute(PCC)搭的那套虚拟机基础设施,其实同样能拿来跑普通的 iOS 系统。

有人把这条路走通了,而且做成了一行命令就能跑起来的工具。

项目简介

vphone-cli 是个基于苹果官方 Virtualization.framework 构建的命令行工具。

它的原理是利用 PCC 研究虚拟机基础设施,让你能够在 Apple Silicon 的 Mac 上直接引导并运行一个真实的虚拟 iPhone。

不是模拟器。

iOS 模拟器跑的其实是编译给 macOS 用的应用,本质是"套壳";

vphone-cli 跑的是真实的 iOS 内核、真实的文件系统、真实的越狱工具(Sileo、TrollStore),还带一个能直接 SSH 进去的 shell。

可以在上面跑 Frida,用 Burp 抓包,装卸测试环境跟切菜一样快,而且全程不需要一台物理 iPhone。

项目目前在 GitHub 上收获了 9.2k star,热度还在涨。

功能特性

01 一条命令,端到端起飞

vphone-cli vm create myphone -V jb —— 就这一行,下载固件、打补丁、DFU 恢复、装越狱工具链、首次启动,全流程自动跑完。

02 五档"攻击面"任你选

less(保留 iOS 原生防护的патchless 模式)到 exp(越狱能力之外还加了反虚拟机检测研究补丁),一共五种固件变体,补丁数量从几个到上百个不等。

03 借用苹果自己的"内部装备"

这大概是最有意思的一点:vphone-cli 复用的虚拟机配置和管理格式,来自苹果为 Private Cloud Compute 数据中心公开的研究级 VM 基础设施。

04 VM 想拷贝就拷贝,想打包就打包

vm clone 秒级 APFS 克隆出一台全新身份的设备,vm export/vm import 支持打包迁移,配合 ~/.vphone/ 统一的数据目录管理,多套测试环境互不干扰,也方便团队之间分享现成的越狱镜像。

05 自带自动化控制接口

每台虚拟机都会开一个本地控制 socket,截图、点击、滑动、硬件按键、剪贴板操作全部支持脚本化调用,天然适合接入 AI 驱动的自动化测试流程。社区已经有人基于它封装了 vphone-mcp,直接对接 MCP 生态。

快速安装、使用

准备条件:

  • Apple Silicon Mac(M1 及以上),实体机,不能是嵌套虚拟机
  • macOS 15 Sequoia 及以上
  • 完整版 Xcode(不是只装命令行工具)

第一步,松开系统的安全锁(进入 Recovery 模式操作一次即可):

代码语言:javascript
复制
csrutil disable
csrutil allow-research-guests enable

重启后,回到正常系统再设置一个启动参数:

代码语言:javascript
复制
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"

再重启一次,这一步就算完成了。这是因为工具用到了私有权限和未签名二进制,SIP 和 AMFI 默认会挡下它。

建议放在专门的研究机上做,不要用日常主力机,毕竟这两道防护关掉之后系统的保护力度会明显下降。

第二步,装依赖:

代码语言:javascript
复制
brew install python@3.13 aria2 wget gnu-tar openssl@3 ldid-procursus sshpass keystone cmake libusb ipsw zstd

第三步,拉代码、编译:

代码语言:javascript
复制
git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git

./scripts/setup_tools.sh
./scripts/build.sh

--recurse-submodules 这个参数别漏了,否则关键组件会缺失。)

第四步:开机

代码语言:javascript
复制
vphone-cli vm create myphone -V jb
vphone-cli vm launch myphone

第一次跑会下载固件、打补丁、走一遍 DFU 恢复流程,耐心等个半小时到一小时(取决于网速)。跑完之后,日常想启动,直接 vphone-cli vm launch myphone 就行,几秒钟的事。

跑起来之后,SSH 直连越狱环境:

代码语言:javascript
复制
ssh -p 22222 mobile@<vm-ip>   # 密码 alpine

装个 Sileo 源、跑个 Frida server,一台随时可以重置、可以复制、可以打包分享的"越狱 iPhone 研究站"就到手了。

另外,源码构建也可以用 Makefile 一条龙(首次建议不加参数跑 regular,通了再上 JB)

代码语言:javascript
复制
make setup_machine        # regular 变体
make setup_machine JB=1   # 完整越狱
make boot                 # 之后每次启动

开源君想说

vphone-cli通过将复杂的越狱和虚拟化流程封装成极简的命令,极大地降低了 iOS 安全研究和自动化测试的门槛。

虽然它有一定的硬件和系统限制(必须是 M 芯片 + macOS 15),但对于符合条件的开发者来说,这无疑是一个极具价值的“黑科技”工具箱,值得花点时间试试。

代码语言:javascript
复制
https://github.com/Lakr233/vphone-cli
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 项目简介
  • 功能特性
  • 快速安装、使用
    • 第四步:开机
  • 开源君想说
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档