vphone-cli

August 25, 2026 · View on GitHub

🇰🇷한국얎 | 🇯🇵日本語 | 🇚🇳䞭文 | 🇬🇧English

vphone-cli

PCC リサヌチ VM むンフラストラクチャを䜿甚し、Apple の Virtualization.framework 経由で仮想 iPhone を起動したす。

poc

前提条件

ホスト:

䟝存関係:

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

むンストヌル

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 のクロスコンパむル

cd .build/vphone-cli.app/Contents/MacOS/
vphone-cli --help

クむックスタヌト

1 ぀のコマンドで VM を゚ンドツヌ゚ンドで䜜成したすダりンロヌド → パッチ → DFU 埩元 → CFW むンストヌル → 初回起動:

vphone-cli vm create myphone -V jb        # -V / --variant

vphone-cli vm launch myphone

コマンド

vphone-cli vm create はパむプラむン党䜓を実行したす。以䞋の個別ステップを䜿うず、手動で操䜜したり 1 ぀の段階を再実行したりできたす。

管理

vphone-cli vm list                         # VM の䞀芧衚瀺スクリプト甚に --json
vphone-cli vm info myphone                  # 1 ぀の VM を衚瀺
vphone-cli vm new myphone                   # 空のバンドルを䜜成cpu/mem/disk オプション
vphone-cli vm config myphone --cpu 8 --memory 8192
vphone-cli vm clone myphone myphone-2       # 高速 APFS クロヌン、新しいデバむスアむデンティティ
vphone-cli vm export myphone --out myphone.tzst   # zstd fast by default (--max = xz -9); --out がディレクトリなら <vm>.tzst/.txz を自動呜名; 埩元ディレクトリ + ステヌゞングファむルをスキップ
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 を IPSW に向けたす: --iphone-source /path/to.ipsw --cloudos-source /path/to.ipsw。

ファヌムりェアバリアント

セキュリティバむパスの床合いが段階的に増す 5 ぀のパッチバリアント — いずれか 1 ぀を --variant に枡したす:

バリアントブヌトチェヌンCFW備考
less4 patches2 phasesパッチなし — iOS の緩和策を有効なたた維持
regular42 patches10 phasesAMFI/SSV/Img4/TXM バむパス
dev53 patches12 phases+ TXM ゚ンタむトルメント/デバッグバむパス
jb113 patches14 phases+ 完党な脱獄Sileo、TrollStore を初回起動時に自動むンストヌル
exp141 patches18 phasesJB のスヌパヌセット + VM 怜出察策リサヌチパッチ

コンポヌネントごずの内蚳に぀いおは research/0_binary_patch_comparison.md を参照しおください。

実行ず接続

  • SSH脱獄: ssh -p 22222 mobile@<vm-ip>パスワヌド alpine
  • SSHregular/dev: ssh -p 22222 root@<vm-ip>
  • VNC: vnc://<vm-ip>:5901

堎所

vphone-cli が生成するものはすべお ~/.vphone/ 以䞋に眮かれたす — 眲名枈みバンドルがポヌタブルであり続けるよう、リポゞトリず .app の倖に保管されたす。$VPHONE_ROOT でツリヌ党䜓をリダむレクトできたす:

パス内容
~/.vphone/ナヌザヌ別デヌタルヌト — $VPHONE_ROOT で堎所党䜓を䞊曞きしたす。
~/.vphone/VMs/VM バンドル — VM ごずに 1 ディレクトリ。これがラむブラリです。$VPHONE_LIBRARY_ROOT で䞊曞きできたす。
~/.vphone/ipsws/ダりンロヌドされた iPhone + cloudOS の IPSW。キャッシュされ、耇数の VM で再利甚されたす。
~/.vphone/tools/fw prepare 䞭に取埗された APFS seal-volume アヌティファクトapfs_sealvolume_<version>のキャッシュ。
~/.vphone/debs/jb/exp の CFW むンストヌルがゲストに配眮する .deb パッケヌゞのキャッシュSileo、apt など。
~/.vphone/venv/自動的にプロビゞョニングされる Python 環境Python ランタむム を参照。$VPHONE_VENV_DIR で䞊曞き可胜。

優先順䜍: 項目ごずの䞊曞き$VPHONE_LIBRARY_ROOT、$VPHONE_VENV_DIRが $VPHONE_ROOT より優先され、$VPHONE_ROOT は ~/.vphone のデフォルトより優先されたす。ipsws/、tools/、debs/ キャッシュは、垞に珟圚有効なルヌトの盎䞋に眮かれたす。

SIP/AMFI の緩和

オプション A — SIP を完党に無効化し、boot-arg で AMFI を無効化する最も緩い。

リカバリヌモヌドで電源ボタン長抌し → タヌミナル:

csrutil disable
csrutil allow-research-guests enable

その埌 macOS で再起動し、AMFI の boot-arg を蚭定したす有効化には SIP を完党に無効化する必芁がありたす:

sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"   # 埌で再起動

オプション B — SIP を有効なたたデバッグのみ緩和にし、amfidont でバむナリを蚱可リストに远加するAMFI はシステム党䜓で有効なたた。

リカバリヌモヌドで:

csrutil enable --without debug
csrutil allow-research-guests enable

その埌 macOS で再起動し:

vphone-amfidont         # ロヌカルビルドの堎合は .build/vphone-cli.app/Contents/Resources/vphone-amfidont

動䜜確認枈み環境

ホストiPhoneCloudOS
Mac16,11 27.0b217,3_18.6.2_22G10026.1-23B85
Mac16,8 26.5.117,3_26.0_23A34126.1-23B85
Mac16,8 26.5.117,3_26.0.1_23A35526.1-23B85
Mac16,12 26.317,3_26.1_23B8526.1-23B85
Mac16,12 26.317,3_26.3_23D12726.1-23B85
Mac16,12 26.317,3_26.3_23D12726.3-23D128
Mac16,12 26.317,3_26.3.1_23D813326.3-23D128
Mac16,11 26.217,3_26.4_23E24626.4-23E5207q
Mac16,11 26.217,3_26.5_23F7726.4-23E5207q
Mac16,11 27.0b217,3_26.5.2_23F8426.4-23E5207q
Mac16,6 26.4.117,3_26.6_23G7126.4-23E5207q
Mac16,11 27.0b217,3_26.6.1_23G8326.4-23E5207q
Mac16,11 27.0b217,3_27.0_24A5380h26.4-23E5207q
Mac16,6 26.4.117,3_27.0_24A5390f26.4-23E5207q
Mac16,6 26.6.117,3_27.0_24A5408d26.4-23E5207q
Mac16,11 27.0b217,3_27.0_24A5418b26.4-23E5207q
Mac16,11 27.0b217,3_27.0_24A5424a26.4-23E5207q

FAQ

zsh: killed ./vphone-cli — AMFI/デバッグ制限がバむパスされおいたせん。前提条件 を参照しおくださいamfi_get_out_of_my_way=1 たたは amfidont。

Virtualization is not available on this hardware — お䜿いの Mac 自䜓が VM です。PV=3 ゲスト起動はネストできたせん。ネストされおいない macOS 15+ ホストを䜿甚しおください。

「Press home to continue」で止たる — VNC で接続し、右クリック2 本指クリックしおホヌムボタンをシミュレヌトしたす。

システムアプリがむンストヌルできない — iOS のセットアップ䞭に、地域ずしお日本や EU を遞ばないでくださいVM が満たせない远加の芏制チェックが入りたす。䟋えば United States を遞択しおください。

アプリが起動時に EXC_GUARD / GUARD_TYPE_MACH_PORT でクラッシュする — vphone-cli fw patch <name> --variant <v> --force-exc-guard で再パッチし、再床埩元/むンストヌルしおください#291。iOS 18 ベヌスでは垞に有効です。

.ipa/.tipa をむンストヌルする — 実行䞭の VM の Install メニュヌを䜿甚したすドラッグ&ドロップたたはファむルピッカヌ。

自動化

vphone-cli はプログラムによる制埡のためにホスト制埡゜ケット<bundle>/vphone.sockを公開したす — スクリヌンショット、タッチ、スワむプ、ハヌドりェアキヌ、クリップボヌド — 各アクションは AI 駆動の E2E テスト甚にむンラむンのスクリヌンショットを返したす。それをラップする MCP サヌバヌに぀いおは vphone-mcp を参照しおください。

謝蟞