概要
Apple Silicon搭載のmacOS 15+上で、Virtualization.frameworkを使い仮想iPhoneを構築・起動する手順ガイド。 vphone-cliを用いたインストール、仮想マシン(VM)の作成や管理、SIP/AMFI緩和設定までを網羅。 複数のファームウェアバリアントと接続方法、トラブルシューティングも解説。 自動化や高度な利用例にも対応。 公式リポジトリやFAQも参照可能。
Apple Virtualization.frameworkを利用した仮想iPhone起動ガイド(PCC研究VMインフラ対応)
- Apple Silicon搭載Mac (macOS 15 Sequoia以降)での仮想iPhone起動手順
- Xcode + iOS SDK が必須(ゲストデーモンのクロスコンパイル用)
- SIP/AMFI緩和 が必要(未署名バイナリのprivate PV=3権限付与を許可)
必要な依存パッケージ
- Homebrewで以下をインストール
python@3.13aria2wgetgnu-taropenssl@3ldid-procursussshpasskeystonecmakelibusbipswzstd
vphone-cliのインストール・ビルド
- brew tap & install
brew install zqxwce/tap/vphone-cli
- リポジトリをクローン
git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git
- セットアップスクリプト実行
./scripts/setup_tools.sh(依存解決、ツールチェーン構築、Python venv作成)./scripts/build.sh(vphone-cliのビルド・署名、.appバンドル、vphonedクロスコンパイル)
- コマンド確認
.build/vphone-cli.app/Contents/MacOS/vphone-cli --help
クイックスタート
- 1コマンドでVM作成から起動まで自動化
vphone-cli vm create myphone -V jb(ダウンロード→パッチ→DFUリストア→CFWインストール→初回起動)vphone-cli vm launch myphone
基本コマンド
- VM管理
vphone-cli vm list(一覧表示、--jsonでスクリプト利用可)vphone-cli vm info myphone(詳細表示)vphone-cli vm new myphone(空バンドル作成、CPU/メモリ/ディスク指定可)vphone-cli vm config myphone --cpu 8 --memory 8192(構成変更)vphone-cli vm clone myphone myphone-2(APFSクローン、新デバイスID)vphone-cli vm export myphone --out myphone.tzst(zstd形式でエクスポート、--maxでxz圧縮も可)vphone-cli vm import myphone.tzst --name restored(インポート)vphone-cli vm rename myphone iphone16(リネーム)vphone-cli vm delete iphone16(削除)
手動でVM構築(vm createの自動化内容)
vphone-cli vm new myphone(1. 空バンドル作成)vphone-cli fw prepare myphone --iphone-version 26.1(2. IPSW取得・マージ)vphone-cli fw patch myphone --variant jb(3. ブートチェーンパッチ適用)vphone-cli vm launch myphone --dfu &(4. DFUモードで起動、バックグラウンド実行)vphone-cli restore myphone --get-shsh(SHSH取得)vphone-cli restore myphone(DFUリストア)vphone-cli vm stop myphone(DFUブート停止)vphone-cli cfw install myphone --variant jb(5. CFWインストール、sudo権限要)vphone-cli vm launch myphone(6. 初回起動)
iOSアップデート方法
fw prepare時に--iphone-source /path/to.ipswや--cloudos-source /path/to.ipswで任意のIPSWを指定可能
ファームウェアバリアント
- less :パッチ4件、iOSのセキュリティ緩和なし
- regular :パッチ42件、AMFI/SSV/Img4/TXMバイパス
- dev :パッチ53件、TXM権限・デバッグバイパス追加
- jb :パッチ113件、完全Jailbreak(Sileo, TrollStore自動インストール)
- exp :パッチ141件、JB拡張+VM検出回避パッチ
- 詳細は
research/0_binary_patch_comparison.md参照
- 詳細は
SSH/VNC接続
- Jailbreak環境 :
ssh -p 22222 mobile@<vm-ip>(パスワードalpine) - regular/dev環境 :
ssh -p 22222 root@<vm-ip> - VNC接続 :
vnc://<vm-ip>:5901
ファイル・データ保存先
- ~/.vphone/ :全データルート($VPHONE_ROOTで変更可)
- ~/.vphone/VMs/ :VMバンドル($VPHONE_LIBRARY_ROOTで変更可)
- ~/.vphone/ipsws/ :ダウンロード済みIPSW
- ~/.vphone/tools/ :APFS seal-volume成果物
- ~/.vphone/debs/ :CFWインストール用deb
- ~/.vphone/venv/ :Python仮想環境($VPHONE_VENV_DIRで変更可)
SIP/AMFI緩和手順
- Option A:SIP完全無効+AMFI無効(最も許容的)
- リカバリーモードで
csrutil disable、csrutil allow-research-guests enable - 再起動後、
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"(再起動要)
- リカバリーモードで
- Option B:SIP有効(デバッグのみ緩和)+amfidontでバイナリ許可
- リカバリーモードで
csrutil enable --without debug、csrutil allow-research-guests enable - 再起動後、
vphone-amfidont実行(ローカルビルド時は.build/vphone-cli.app/Contents/Resources/vphone-amfidont)
- リカバリーモードで
動作確認済み環境
- Mac16,11/16,8/16,12/16,6 などApple Silicon機種、iOS 26.1〜27.0b2、CloudOS各種で検証済み
FAQ・トラブルシューティング
- zsh: killed ./vphone-cli :AMFI/デバッグ制限未緩和、SIP/AMFI緩和手順参照
- Virtualization is not available :Mac自体がVM上の場合は不可、ネイティブmacOS 15+必須
- "Press home to continue"で停止 :VNC接続し右クリック(2本指タップ)でホームボタン操作
- System appsがインストール不可 :iOSセットアップ時に日本/EU以外(例:United States)を選択
- AppがEXC_GUARDでクラッシュ :
vphone-cli fw patch <name> --variant <v> --force-exc-guardで再パッチ&再インストール - .ipa/.tipaのインストール :VMのInstallメニューからドラッグ&ドロップまたはファイル選択
- cfw installでldid-procursusがハング :Homebrewで
brew install --HEAD ldid-procursus && brew link --overwrite ldid-procursus、既存プロセスはsudo kill -9 <pid>で停止
自動化・拡張
- vphone-cliは制御ソケット(<bundle>/vphone.sock)を提供
- スクリーンショット、タッチ、スワイプ、キー操作、クリップボード制御等が可能
- AIによるE2Eテスト用にインラインスクリーンショット返却
- MCPサーバとして
vphone-mcpも提供
謝辞
- wh1te4ever/super-tart-vphone-writeup へのリスペクト
公式リポジトリ :https://github.com/Lakr233/vphone-cli 詳細・最新情報はREADMEやissueも参照