vphone-cli

vphone-cli命令行工具

Boot a virtual iPhone via Apple’s Virtualization.framework using PCC research VM infrastructure. 通过PCC研究虚拟机基础设施,利用苹果Virtualization.framework启动虚拟iPhone

poc

Prerequisites

系统要求

Host: 宿主机:

Dependencies: 依赖项:

brew install python@3.13 aria2 wget gnu-tar openssl@3 ldid-procursus sshpass keystone cmake libusb ipsw zstd

Install

安装

brew install zqxwce/tap/vphone-cli

Build

编译

git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git
 
./scripts/setup_tools.sh      # install deps, build toolchain submodules, create the Python venv
./scripts/setup_tools.sh      # 安装依赖、构建工具链子模块、创建Python虚拟环境
./scripts/build.sh            # build + sign vphone-cli, bundle the .app, cross-compile vphoned
./scripts/build.sh            # 构建并签名vphone-cli、打包.app、交叉编译vphoned
 
cd .build/vphone-cli.app/Contents/MacOS/
vphone-cli --help

Quick Start

快速开始

One command creates a VM end-to-end (download → patch → DFU restore → CFW install → first boot): 单条命令完成虚拟机全流程创建(下载→打补丁→DFU恢复→安装CFW→首次启动):

vphone-cli vm create myphone -V jb        # -V / --variant
vphone-cli vm create myphone -V jb        # -V / --variant参数指定变体
 
vphone-cli vm launch myphone

Commands

命令说明

vphone-cli vm create runs the whole pipeline; the individual steps below let you drive it manually or re-run one stage. vphone-cli vm create执行完整流程;以下分步命令支持手动操作或重新执行特定阶段

Manage

管理命令

vphone-cli vm list                         # list VMs (--json for scripting)
vphone-cli vm list                         # 列出虚拟机(--json参数支持脚本处理)
vphone-cli vm info myphone                  # show one VM
vphone-cli vm info myphone                  # 显示单个虚拟机信息
vphone-cli vm new myphone                   # create an empty bundle (cpu/mem/disk options)
vphone-cli vm new myphone                   # 创建空虚拟机包(可指定CPU/内存/磁盘参数)
vphone-cli vm config myphone --cpu 8 --memory 8192
vphone-cli vm config myphone --cpu 8 --memory 8192  # 配置虚拟机参数
vphone-cli vm clone myphone myphone-2       # fast APFS clone, fresh device identity
vphone-cli vm clone myphone myphone-2       # 快速APFS克隆(生成新设备标识)
vphone-cli vm export myphone --out myphone.tzst   # zstd fast by default (--max = xz -9); --out may be a dir (auto-names <vm>.tzst/.txz); skips restore dir + staging files
vphone-cli vm export myphone --out myphone.tzst   # 导出虚拟机(默认zstd快速压缩,--max参数等效xz -9级;--out可指定目录自动命名;跳过恢复目录和临时文件)
vphone-cli vm import myphone.tzst --name restored
vphone-cli vm import myphone.tzst --name restored  # 导入虚拟机
vphone-cli vm rename myphone iphone16
vphone-cli vm rename myphone iphone16       # 重命名虚拟机
vphone-cli vm delete iphone16
vphone-cli vm delete iphone16               # 删除虚拟机

Build a VM manually (what vm create automates)

手动构建虚拟机(即vm create的自动化流程)

vphone-cli vm new myphone                              # 1. empty bundle
vphone-cli vm new myphone                              # 1. 创建空虚拟机包
vphone-cli fw prepare myphone --iphone-version 26.1     # 2. download + merge IPSWs
vphone-cli fw prepare myphone --iphone-version 26.1     # 2. 下载并合并IPSW固件
vphone-cli fw patch myphone --variant jb                # 3. patch the boot chain
vphone-cli fw patch myphone --variant jb                # 3. 修补启动链
 
vphone-cli vm launch myphone --dfu &                    # 4. boot into DFU (background)
vphone-cli vm launch myphone --dfu &                    # 4. 进入DFU模式(后台运行)
vphone-cli restore myphone --get-shsh                   #    fetch SHSH
vphone-cli restore myphone --get-shsh                   #    获取SHSH签名
vphone-cli restore myphone                              #    DFU restore
vphone-cli restore myphone                              #    DFU模式恢复
vphone-cli vm stop myphone                              #    stop the DFU boot
vphone-cli vm stop myphone                              #    停止DFU启动
 
vphone-cli cfw install myphone --variant jb             # 5. install CFW (host-mount; asks for sudo)
vphone-cli cfw install myphone --variant jb             # 5. 安装定制固件(需挂载主机目录,要求sudo权限)
vphone-cli vm launch myphone                            # 6. first boot
vphone-cli vm launch myphone                            # 6. 首次启动

Update to a newer iOS by pointing fw prepare at an IPSW: --iphone-source /path/to.ipsw --cloudos-source /path/to.ipsw. 通过指定IPSW路径升级到新版iOS:--iphone-source /路径/to.ipsw --cloudos-source /路径/to.ipsw

Firmware Variants

固件变体说明

Five patch variants with increasing security bypass — pass one to --variant: 五种安全绕过等级递增的补丁变体(通过--variant参数指定):

| Variant | Boot Chain | CFW | Notes |

变体类型启动链补丁数定制固件阶段说明
less4 patches2 phasesPatchless — keeps iOS mitigations enabled
less4处补丁2阶段无补丁模式——保持iOS安全缓解措施启用
regular42 patches10 phasesAMFI/SSV/Img4/TXM bypass
regular42处补丁10阶段绕过AMFI/SSV/Img4/TXM验证
dev53 patches12 phases+ TXM entitlement/debug bypass
dev53处补丁12阶段增加TXM权限/调试绕过
jb113 patches14 phases+ full jailbreak (Sileo, TrollStore auto-install on first boot)
jb113处补丁14阶段增加完整越狱功能(首次启动自动安装Sileo和TrollStore)
exp141 patches18 phasesJB superset + anti-VM-detection research patches
exp141处补丁18阶段越狱超集+反虚拟机检测研究补丁

See [research/0_binary_patch_co... 详见[research/0_binary_patch_co…