Lakr233/vphone-cli
GitHub: Lakr233/vphone-cli
基于Apple Virtualization.framework私有接口的iOS虚拟化命令行工具,支持在Apple Silicon Mac上启动、恢复并管理虚拟iPhone实例。
Stars: 1331 | Forks: 191
# vphone-cli
利用 Apple 的 Virtualization.framework,借助 PCC 研究 VM 基础设施启动虚拟 iPhone (iOS 26)。

## 测试环境
| 主机 | iPhone | CloudOS |
|------|--------|---------|
| Mac16,12 26.3 | `17,3_26.1_23B85` | `26.1-23B85` |
| Mac16,12 26.3 | `17,3_26.3_23D127` | `26.1-23B85` |
| Mac16,12 26.3 | `17,3_26.3_23D127` | `26.3-23D128` |
## 前置条件
**禁用 SIP 和 AMFI** — 这是使用 Virtualization.framework 私有权限所必需的。
启动进入恢复模式(长按电源键),打开终端:
```
csrutil disable
csrutil allow-research-guests enable
```
重启进入 macOS 后:
```
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
```
再次重启。
**安装依赖:**
```
make setup_libimobiledevice # build libimobiledevice toolchain
make setup_venv # create Python venv
source .venv/bin/activate
```
## 快速开始
```
make build # build + sign vphone-cli
make vm_new # create vm/ directory (ROMs, disk, SEP storage)
make fw_prepare # download IPSWs, extract, merge, generate manifest
make fw_patch # patch boot chain (6 components, 41+ modifications)
```
## 恢复
恢复过程需要**两个终端**。在使用终端 2 时,请保持终端 1 处于运行状态。
```
# 终端 1
make boot_dfu # boot VM in DFU mode (keep running)
```
```
# 终端 2
make restore_get_shsh # fetch SHSH blob
make restore # flash firmware via idevicerestore
```
## Ramdisk 和 CFW
在终端 1 中停止 DFU 引导 (Ctrl+C),然后再次进入 DFU 模式以加载 ramdisk:
```
# 终端 1
make boot_dfu # keep running
```
```
# 终端 2
make ramdisk_build # build signed SSH ramdisk
make ramdisk_send # send to device
```
连接成功后,安装 CFW:
```
# 终端 2
iproxy 2222 22
make cfw_install
```
## 首次启动
在终端 1 中停止 DFU 引导 (Ctrl+C),然后:
```
make boot
```
这将在 VM 上提供一个**直接控制台**。当你看到 `bash-4.4#` 时,按回车键并运行以下命令以初始化 shell 环境并生成 SSH 主机密钥:
```
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/iosbinpack64/usr/local/sbin:/iosbinpack64/usr/local/bin:/iosbinpack64/usr/sbin:/iosbinpack64/usr/bin:/iosbinpack64/sbin:/iosbinpack64/bin'
mkdir -p /var/dropbear
cp /iosbinpack64/etc/profile /var/profile
cp /iosbinpack64/etc/motd /var/motd
# 生成 SSH 主机密钥(SSH 工作所需)
dropbearkey -t rsa -f /var/dropbear/dropbear_rsa_host_key
dropbearkey -t ecdsa -f /var/dropbear/dropbear_ecdsa_host_key
shutdown -h now
```
## 后续启动
```
make boot
```
在另一个单独的终端中,启动 iproxy 隧道:
```
iproxy 22222 22222 # SSH
iproxy 5901 5901 # VNC
```
通过以下方式连接:
- **SSH:** `ssh -p 22222 root@127.0.0.1` (密码: `alpine`)
- **VNC:** `vnc://127.0.0.1:5901`
## 所有 Make 目标
运行 `make help` 获取完整列表。主要目标:
| 目标 | 描述 |
|--------|-------------|
| `build` | 构建 + 签名 vphone-cli |
| `vm_new` | 创建 VM 目录 |
| `fw_prepare` | 下载/合并 IPSW |
| `fw_patch` | 修补引导链 |
| `boot` / `boot_dfu` | 启动 VM (GUI / DFU 无头模式) |
| `restore_get_shsh` | 获取 SHSH blob |
| `restore` | 刷入固件 |
| `ramdisk_build` | 构建 SSH ramdisk |
| `ramdisk_send` | 发送 ramdisk 到设备 |
| `cfw_install` | 安装 CFW 修改 |
| `clean` | 移除构建产物 |
## 常见问题
**Q: 尝试运行时出现 `zsh: killed ./vphone-cli`。**
AMFI 未禁用。设置启动参数并重启:
```
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
```
**Q: 卡在 “Press home to continue” 屏幕。**
通过 VNC (`vnc://127.0.0.1:5901`) 连接,并在屏幕任意位置右键点击(Mac 触控板上双指点击)。这会模拟按下 Home 键。
**Q: SSH 连接成功但立即关闭 (`Connection closed by 127.0.0.1`)。**
首次启动时 Dropbear 主机密钥未生成。通过 VNC 或 `make boot` 控制台连接并运行:
```
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/iosbinpack64/usr/local/sbin:/iosbinpack64/usr/local/bin:/iosbinpack64/usr/sbin:/iosbinpack64/usr/bin:/iosbinpack64/sbin:/iosbinpack64/bin'
mkdir -p /var/dropbear
dropbearkey -t rsa -f /var/dropbear/dropbear_rsa_host_key
dropbearkey -t ecdsa -f /var/dropbear/dropbear_ecdsa_host_key
killall dropbear
dropbear -R -p 22222
```
**Q: 我可以更新到更新的 iOS 版本吗?**
可以。使用你想要的版本的 IPSW URL 覆盖 `fw_prepare`:
```
export IPHONE_SOURCE=/path/to/some_os.ipsw
export CLOUDOS_SOURCE=/path/to/some_os.ipsw
make fw_prepare
make fw_patch
```
我们的补丁是通过二进制分析应用的,而不是静态偏移量,因此较新的版本应该可以工作。如果出现问题,请向 AI 寻求帮助。
## 致谢
- [wh1te4ever/super-tart-vphone-writeup](https://github.com/wh1te4ever/super-tart-vphone-writeup)
标签:AMFI绕过, Apple Silicon, Apple Virtualization Framework, CFW, CloudOS, DFU模式, IDEviceRestore, iOS 26, iOS虚拟化, iPhone模拟器, IPSW, Libimobiledevice, PCC, SHSH Blobs, SIP禁用, Web报告查看器, XNU, 云资产清单, 内核调试, 固件修改, 情报收集, 漏洞研究, 生成式AI安全, 目录枚举, 移动安全, 自定义固件, 虚拟机, 越狱, 逆向工具, 逆向工程