mirror of
https://github.com/Lakr233/vphone-cli.git
synced 2026-09-02 02:34:29 +00:00
docs: rework READMEs — fix patch counts, merge PR #148, sync translations
- Fix JB boot chain patch count: 66/78 → 112 (per research doc) - Merge PR #148: remove cfw_install_jb_finalize, update SSH to openssh-server - Keep dropbear instructions for Regular/Dev variants - Add Option 2 (amfidont) to prerequisites and FAQ in all translations - Add setup_machine options comment to all translations - Add .tipa FAQ entry (from #142) to all translations - Add openssh-server FAQ entries to all translations - Run prettier on all docs
This commit is contained in:
@@ -29,11 +29,11 @@ For any changes applying new patches, also update research/0_binary_patch_compar
|
||||
|
||||
## Firmware Variants
|
||||
|
||||
| Variant | Boot Chain | CFW | Make Targets |
|
||||
| --------------- | :---------: | :-------: | ------------------------------------------------------------ |
|
||||
| **Regular** | 51 patches | 10 phases | `fw_patch` + `cfw_install` |
|
||||
| **Development** | 64 patches | 12 phases | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **Jailbreak** | 126 patches | 14 phases | `fw_patch_jb` + `cfw_install_jb` |
|
||||
| Variant | Boot Chain | CFW | Make Targets |
|
||||
| --------------- | :---------: | :-------: | ---------------------------------- |
|
||||
| **Regular** | 51 patches | 10 phases | `fw_patch` + `cfw_install` |
|
||||
| **Development** | 64 patches | 12 phases | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **Jailbreak** | 126 patches | 14 phases | `fw_patch_jb` + `cfw_install_jb` |
|
||||
|
||||
> JB finalization (symlinks, Sileo, apt, TrollStore) runs automatically on first boot via `/cores/vphone_jb_setup.sh` LaunchDaemon. Monitor progress: `/var/log/vphone_jb_setup.log`.
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ Boot a virtual iPhone (iOS 26) via Apple's Virtualization.framework using PCC re
|
||||
|
||||
Three patch variants are available with increasing levels of security bypass:
|
||||
|
||||
| Variant | Boot Chain | CFW | Make Targets |
|
||||
| --------------- | :-------------: | :-------: | ------------------------------------------------------------ |
|
||||
| **Regular** | 41 patches | 10 phases | `fw_patch` + `cfw_install` |
|
||||
| **Development** | 52 patches | 12 phases | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **Jailbreak** | 66 / 78 patches | 14 phases | `fw_patch_jb` + `cfw_install_jb` |
|
||||
| Variant | Boot Chain | CFW | Make Targets |
|
||||
| --------------- | :---------: | :-------: | ---------------------------------- |
|
||||
| **Regular** | 41 patches | 10 phases | `fw_patch` + `cfw_install` |
|
||||
| **Development** | 52 patches | 12 phases | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **Jailbreak** | 112 patches | 14 phases | `fw_patch_jb` + `cfw_install_jb` |
|
||||
|
||||
> JB finalization (symlinks, Sileo, apt, TrollStore) runs automatically on first boot via `/cores/vphone_jb_setup.sh` LaunchDaemon. Monitor progress: `/var/log/vphone_jb_setup.log`.
|
||||
|
||||
@@ -153,6 +153,24 @@ make boot
|
||||
|
||||
After `cfw_install_jb`, the jailbreak variant will have **Sileo** and **TrollStore** available on first boot. You can use Sileo to install `openssh-server` for SSH access.
|
||||
|
||||
For the regular/development variant, the VM gives you a **direct console**. When you see `bash-4.4#`, press Enter and run these commands to initialize the shell environment and generate SSH host keys:
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
# generate SSH host keys (required for SSH to work)
|
||||
dropbearkey -t rsa -f /var/dropbear/dropbear_rsa_host_key
|
||||
dropbearkey -t ecdsa -f /var/dropbear/dropbear_ecdsa_host_key
|
||||
|
||||
shutdown -h now
|
||||
```
|
||||
|
||||
> **Note:** Without the host key generation step, dropbear (SSH server) will accept connections but immediately close them because it has no keys to perform the SSH handshake.
|
||||
|
||||
## Subsequent Boots
|
||||
|
||||
```bash
|
||||
@@ -162,14 +180,15 @@ make boot
|
||||
In a separate terminal, start iproxy tunnels:
|
||||
|
||||
```bash
|
||||
iproxy 2222 22 # SSH (requires openssh-server from Sileo)
|
||||
iproxy 2222 22 # SSH (JB: requires openssh-server from Sileo; Regular/Dev: dropbear)
|
||||
iproxy 5901 5901 # VNC
|
||||
iproxy 5910 5910 # RPC
|
||||
```
|
||||
|
||||
Connect via:
|
||||
|
||||
- **SSH:** `ssh -p 2222 mobile@127.0.0.1` (password: `alpine`)
|
||||
- **SSH (JB):** `ssh -p 2222 mobile@127.0.0.1` (password: `alpine`)
|
||||
- **SSH (Regular/Dev):** `ssh -p 2222 root@127.0.0.1` (password: `alpine`)
|
||||
- **VNC:** `vnc://127.0.0.1:5901`
|
||||
- [**RPC:**](http://github.com/doronz88/rpc-project) `rpcclient -p 5910 127.0.0.1`
|
||||
|
||||
@@ -206,6 +225,10 @@ Install `openssh-server` from Sileo (available on the jailbreak variant after fi
|
||||
|
||||
Reboot the VM. The SSH server will start automatically on the next boot.
|
||||
|
||||
**Q: Can I install `.tipa` files?**
|
||||
|
||||
Yes. The install menu supports both `.ipa` and `.tipa` packages. Drag and drop or use the file picker.
|
||||
|
||||
**Q: Can I update to a newer iOS version?**
|
||||
|
||||
Yes. Override `fw_prepare` with the IPSW URL for the version you want:
|
||||
|
||||
+72
-23
@@ -18,11 +18,11 @@ Apple の Virtualization.framework と PCC の研究用 VM インフラを使用
|
||||
|
||||
セキュリティバイパスのレベルが異なる3つのパッチバリアントが利用可能です:
|
||||
|
||||
| バリアント | ブートチェーン | CFW | Make ターゲット |
|
||||
| ---------- | :------------: | :---------: | ------------------------------------------------------------ |
|
||||
| **通常版** | 41 パッチ | 10 フェーズ | `fw_patch` + `cfw_install` |
|
||||
| **開発版** | 52 パッチ | 12 フェーズ | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **脱獄版** | 66 / 78 パッチ | 14 フェーズ | `fw_patch_jb` + `cfw_install_jb` |
|
||||
| バリアント | ブートチェーン | CFW | Make ターゲット |
|
||||
| ---------- | :------------: | :---------: | ---------------------------------- |
|
||||
| **通常版** | 41 パッチ | 10 フェーズ | `fw_patch` + `cfw_install` |
|
||||
| **開発版** | 52 パッチ | 12 フェーズ | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **脱獄版** | 112 パッチ | 14 フェーズ | `fw_patch_jb` + `cfw_install_jb` |
|
||||
|
||||
> JB最終設定(シンボリックリンク、Sileo、apt、TrollStore)は `/cores/vphone_jb_setup.sh` LaunchDaemon により初回起動時に自動実行されます。進捗確認:`/var/log/vphone_jb_setup.log`。
|
||||
|
||||
@@ -32,22 +32,42 @@ Apple の Virtualization.framework と PCC の研究用 VM インフラを使用
|
||||
|
||||
**ホストOS:** PV=3 仮想化には macOS 15+(Sequoia)が必要です。
|
||||
|
||||
**SIPとAMFIを無効化** — プライベートな Virtualization.framework の entitlement を使うために必要です。
|
||||
**SIP/AMFIの設定** — プライベートな Virtualization.framework の entitlement と未署名バイナリのワークフローに必要です。
|
||||
|
||||
復旧モードで起動し(電源ボタンを長押し)、ターミナルを開いて以下を実行します:
|
||||
復旧モードで起動し(電源ボタンを長押し)、ターミナルを開いて、以下のいずれかの方法を選択します:
|
||||
|
||||
```bash
|
||||
csrutil disable
|
||||
csrutil allow-research-guests enable
|
||||
```
|
||||
- **方法 1:SIP を完全に無効化 + AMFI boot-arg(最も制限が少ない)**
|
||||
|
||||
通常の macOS に再起動した後:
|
||||
復旧モードで:
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
```bash
|
||||
csrutil disable
|
||||
csrutil allow-research-guests enable
|
||||
```
|
||||
|
||||
実行したらもう一度再起動します。
|
||||
通常の macOS に再起動した後:
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
|
||||
もう一度再起動します。
|
||||
|
||||
- **方法 2:SIP はほぼ有効のまま、デバッグ制限のみ無効化、[`amfidont`](https://github.com/zqxwce/amfidont) を使用**
|
||||
|
||||
復旧モードで:
|
||||
|
||||
```bash
|
||||
csrutil enable --without debug
|
||||
csrutil allow-research-guests enable
|
||||
```
|
||||
|
||||
通常の macOS に再起動した後:
|
||||
|
||||
```bash
|
||||
xcrun python3 -m pip install amfidont
|
||||
sudo amfidont --path [PATH_TO_VPHONE_DIR]
|
||||
```
|
||||
|
||||
**依存関係のインストール:**
|
||||
|
||||
@@ -65,6 +85,7 @@ git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git
|
||||
|
||||
```bash
|
||||
make setup_machine # 初回起動までを完全自動化(復元/ラムディスク/CFWを含む)
|
||||
# オプション:NONE_INTERACTIVE=1 SUDO_PASSWORD=...
|
||||
```
|
||||
|
||||
## 手動セットアップ
|
||||
@@ -109,7 +130,7 @@ sudo make ramdisk_build # 署名済みSSH Ramdisk のビルド
|
||||
make ramdisk_send # デバイスへ送信
|
||||
```
|
||||
|
||||
Ramdisk が起動したら(出力に `Running server` と表示されるはずです)、iproxy トンネル用 に **3つ目のターミナル** を開き、ターミナル 2 から CFW をインストールします:
|
||||
Ramdisk が起動したら(出力に `Running server` と表示されるはずです)、iproxy トンネル用に **3つ目のターミナル** を開き、ターミナル 2 から CFW をインストールします:
|
||||
|
||||
```bash
|
||||
# ターミナル 3 — 実行したままにする
|
||||
@@ -132,6 +153,24 @@ make boot
|
||||
|
||||
`cfw_install_jb` 実行後、脱獄バリアントでは初回起動時に **Sileo** と **TrollStore** が利用可能になります。Sileo から `openssh-server` をインストールして SSH アクセスを有効にできます。
|
||||
|
||||
通常版/開発版では、VM に**直接繋がるコンソール**が開きます。`bash-4.4#` と表示されたら、Enter を押し、シェル環境を初期化して SSH ホストキーを生成するために以下のコマンドを実行します:
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
> **注意:** ホストキー生成手順を行わないと、dropbear(SSH サーバー)は接続を受け付けますが、SSH ハンドシェイクを実行するためのキーがないためすぐに切断されます。
|
||||
|
||||
## 2回目以降の起動
|
||||
|
||||
```bash
|
||||
@@ -141,14 +180,15 @@ make boot
|
||||
別のターミナルで iproxy トンネルを開始します:
|
||||
|
||||
```bash
|
||||
iproxy 2222 22 # SSH(Sileo から openssh-server のインストールが必要)
|
||||
iproxy 2222 22 # SSH(脱獄版:Sileo から openssh-server が必要;通常版/開発版:dropbear)
|
||||
iproxy 5901 5901 # VNC
|
||||
iproxy 5910 5910 # RPC
|
||||
```
|
||||
|
||||
以下で接続します:
|
||||
|
||||
- **SSH:** `ssh -p 2222 [email protected]` (パスワード: `alpine`)
|
||||
- **SSH(脱獄版):** `ssh -p 2222 mobile@127.0.0.1` (パスワード: `alpine`)
|
||||
- **SSH(通常版/開発版):** `ssh -p 2222 root@127.0.0.1` (パスワード: `alpine`)
|
||||
- **VNC:** `vnc://127.0.0.1:5901`
|
||||
- [**RPC:**](http://github.com/doronz88/rpc-project) `rpcclient -p 5910 127.0.0.1`
|
||||
|
||||
@@ -158,11 +198,16 @@ iproxy 5910 5910 # RPC
|
||||
|
||||
**Q: 実行しようとすると `zsh: killed ./vphone-cli` と表示されます**
|
||||
|
||||
AMFIが無効化されていません。boot-arg を設定して再起動してください:
|
||||
AMFI/デバッグ制限が正しくバイパスされていません。以下のいずれかの方法を選択してください:
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
- **方法 1(AMFI を完全に無効化):**
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
|
||||
- **方法 2(デバッグ制限のみ無効化):**
|
||||
復旧モードで `csrutil enable --without debug`(完全な SIP 無効化は不要)を使用し、[`amfidont`](https://github.com/zqxwce/amfidont) をインストール/ロードして AMFI のその他の機能は有効のままにします。
|
||||
|
||||
**Q: システムアプリ(App Store、メッセージなど)がダウンロード・インストールできません**
|
||||
|
||||
@@ -180,6 +225,10 @@ Sileo から `openssh-server` をインストールしてください(脱獄
|
||||
|
||||
VM を再起動してください。次回起動時に SSH サーバーが自動的に開始されます。
|
||||
|
||||
**Q: `.tipa` ファイルをインストールできますか?**
|
||||
|
||||
はい。インストールメニューは `.ipa` と `.tipa` パッケージの両方に対応しています。ドラッグ&ドロップまたはファイルピッカーを使用してください。
|
||||
|
||||
**Q: もっと新しいiOSバージョンにアップデートできますか?**
|
||||
|
||||
はい。`fw_prepare` に希望するバージョンの IPSW URL を指定することでできます:
|
||||
|
||||
+71
-22
@@ -18,11 +18,11 @@ PCC 리서치 VM 인프라와 Apple의 Virtualization.framework를 사용하여
|
||||
|
||||
보안 우회 수준이 다른 3가지 패치 변형을 사용할 수 있습니다:
|
||||
|
||||
| 변형 | 부트 체인 | CFW | Make 타겟 |
|
||||
| -------- | :----------: | :-------: | ------------------------------------------------------------ |
|
||||
| **일반** | 41 패치 | 10 페이즈 | `fw_patch` + `cfw_install` |
|
||||
| **개발** | 52 패치 | 12 페이즈 | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **탈옥** | 66 / 78 패치 | 14 페이즈 | `fw_patch_jb` + `cfw_install_jb` |
|
||||
| 변형 | 부트 체인 | CFW | Make 타겟 |
|
||||
| -------- | :-------: | :-------: | ---------------------------------- |
|
||||
| **일반** | 41 패치 | 10 페이즈 | `fw_patch` + `cfw_install` |
|
||||
| **개발** | 52 패치 | 12 페이즈 | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **탈옥** | 112 패치 | 14 페이즈 | `fw_patch_jb` + `cfw_install_jb` |
|
||||
|
||||
> JB 최종 설정(심볼릭 링크, Sileo, apt, TrollStore)은 `/cores/vphone_jb_setup.sh` LaunchDaemon을 통해 첫 번째 부팅 시 자동으로 실행됩니다. 진행 상황 확인: `/var/log/vphone_jb_setup.log`.
|
||||
|
||||
@@ -32,22 +32,42 @@ PCC 리서치 VM 인프라와 Apple의 Virtualization.framework를 사용하여
|
||||
|
||||
**호스트 OS:** PV=3 가상화를 위해 macOS 15+(Sequoia)가 필요합니다.
|
||||
|
||||
**SIP 및 AMFI 비활성화** — Private Virtualization.framework 권한을 사용하기 위해 필요합니다.
|
||||
**SIP/AMFI 설정** — Private Virtualization.framework 권한과 서명되지 않은 바이너리 워크플로우에 필요합니다.
|
||||
|
||||
복구 모드(전원 버튼 길게 누르기)로 부팅한 후 터미널을 엽니다:
|
||||
복구 모드(전원 버튼 길게 누르기)로 부팅한 후 터미널을 열고, 다음 중 하나를 선택합니다:
|
||||
|
||||
```bash
|
||||
csrutil disable
|
||||
csrutil allow-research-guests enable
|
||||
```
|
||||
- **방법 1: SIP 완전 비활성화 + AMFI boot-arg (가장 관대)**
|
||||
|
||||
macOS로 다시 시작한 후:
|
||||
복구 모드에서:
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
```bash
|
||||
csrutil disable
|
||||
csrutil allow-research-guests enable
|
||||
```
|
||||
|
||||
한 번 더 재시작합니다.
|
||||
macOS로 다시 시작한 후:
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
|
||||
한 번 더 재시작합니다.
|
||||
|
||||
- **방법 2: SIP은 대부분 활성 유지, 디버그 제한만 비활성화, [`amfidont`](https://github.com/zqxwce/amfidont) 사용**
|
||||
|
||||
복구 모드에서:
|
||||
|
||||
```bash
|
||||
csrutil enable --without debug
|
||||
csrutil allow-research-guests enable
|
||||
```
|
||||
|
||||
macOS로 다시 시작한 후:
|
||||
|
||||
```bash
|
||||
xcrun python3 -m pip install amfidont
|
||||
sudo amfidont --path [PATH_TO_VPHONE_DIR]
|
||||
```
|
||||
|
||||
**의존성(Dependencies) 설치:**
|
||||
|
||||
@@ -65,6 +85,7 @@ git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git
|
||||
|
||||
```bash
|
||||
make setup_machine # "First Boot"까지의 전체 과정 자동화 (복원/Ramdisk/커스텀 펌웨어 포함)
|
||||
# 옵션: NONE_INTERACTIVE=1 SUDO_PASSWORD=...
|
||||
```
|
||||
|
||||
## 수동 설정
|
||||
@@ -132,6 +153,24 @@ make boot
|
||||
|
||||
`cfw_install_jb` 실행 후 탈옥 변형은 첫 번째 부팅 시 **Sileo**와 **TrollStore**를 사용할 수 있습니다. Sileo에서 `openssh-server`를 설치하여 SSH 접근을 활성화할 수 있습니다.
|
||||
|
||||
일반/개발 변형의 경우, VM에서 **direct console**이 나타납니다. `bash-4.4#`이 보이면 엔터를 누르고 다음 명령어를 실행하여 쉘 환경을 초기화하고 SSH 호스트 키를 생성하세요:
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
> **참고:** 호스트 키 생성 단계를 거치지 않으면 dropbear(SSH 서버)가 연결을 수락하더라도 SSH 핸드셰이크를 수행할 키가 없어 즉시 연결을 종료합니다.
|
||||
|
||||
## 이후 부팅
|
||||
|
||||
```bash
|
||||
@@ -141,14 +180,15 @@ make boot
|
||||
별도의 터미널에서 iproxy 터널을 시작합니다:
|
||||
|
||||
```bash
|
||||
iproxy 2222 22 # SSH (Sileo에서 openssh-server 설치 필요)
|
||||
iproxy 2222 22 # SSH (탈옥: Sileo에서 openssh-server 설치 필요; 일반/개발: dropbear)
|
||||
iproxy 5901 5901 # VNC
|
||||
iproxy 5910 5910 # RPC
|
||||
```
|
||||
|
||||
다음을 통해 연결합니다:
|
||||
|
||||
- **SSH:** `ssh -p 2222 [email protected]` (password: `alpine`)
|
||||
- **SSH (탈옥):** `ssh -p 2222 mobile@127.0.0.1` (password: `alpine`)
|
||||
- **SSH (일반/개발):** `ssh -p 2222 root@127.0.0.1` (password: `alpine`)
|
||||
- **VNC:** `vnc://127.0.0.1:5901`
|
||||
- [**RPC:**](http://github.com/doronz88/rpc-project) `rpcclient -p 5910 127.0.0.1`
|
||||
|
||||
@@ -158,11 +198,16 @@ iproxy 5910 5910 # RPC
|
||||
|
||||
**Q: 실행하려고 하면 `zsh: killed ./vphone-cli` 오류가 발생합니다.**
|
||||
|
||||
AMFI가 비활성화되지 않았습니다. boot-arg를 설정하고 재시작하세요:
|
||||
AMFI/디버그 제한이 올바르게 우회되지 않았습니다. 다음 중 하나를 선택하세요:
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
- **방법 1 (AMFI 완전 비활성화):**
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
|
||||
- **방법 2 (디버그 제한만 비활성화):**
|
||||
복구 모드에서 `csrutil enable --without debug`(완전한 SIP 비활성화 없음)를 사용한 다음, [`amfidont`](https://github.com/zqxwce/amfidont)를 설치/로드하여 AMFI의 나머지 기능은 활성 상태로 유지합니다.
|
||||
|
||||
**Q: 시스템 앱(App Store, 메시지 등)을 다운로드하거나 설치할 수 없습니다.**
|
||||
|
||||
@@ -180,6 +225,10 @@ Sileo에서 `openssh-server`를 설치하세요 (탈옥 변형 첫 부팅 후
|
||||
|
||||
VM을 재부팅하세요. 다음 부팅 시 SSH 서버가 자동으로 시작됩니다.
|
||||
|
||||
**Q: `.tipa` 파일을 설치할 수 있나요?**
|
||||
|
||||
네. 설치 메뉴는 `.ipa`와 `.tipa` 패키지를 모두 지원합니다. 드래그 앤 드롭 또는 파일 선택기를 사용하세요.
|
||||
|
||||
**Q: 최신 iOS 버전으로 업데이트할 수 있나요?**
|
||||
|
||||
네. `fw_prepare`를 원하는 버전의 IPSW URL로 덮어쓰세요:
|
||||
|
||||
+71
-22
@@ -18,11 +18,11 @@
|
||||
|
||||
提供三种补丁变体,安全绕过级别逐步递增:
|
||||
|
||||
| 变体 | 启动链 | 自定义固件 | Make 目标 |
|
||||
| ---------- | :------------: | :--------: | ------------------------------------------------------------ |
|
||||
| **常规版** | 41 个补丁 | 10 个阶段 | `fw_patch` + `cfw_install` |
|
||||
| **开发版** | 52 个补丁 | 12 个阶段 | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **越狱版** | 66 / 78 个补丁 | 14 个阶段 | `fw_patch_jb` + `cfw_install_jb` |
|
||||
| 变体 | 启动链 | 自定义固件 | Make 目标 |
|
||||
| ---------- | :--------: | :--------: | ---------------------------------- |
|
||||
| **常规版** | 41 个补丁 | 10 个阶段 | `fw_patch` + `cfw_install` |
|
||||
| **开发版** | 52 个补丁 | 12 个阶段 | `fw_patch_dev` + `cfw_install_dev` |
|
||||
| **越狱版** | 112 个补丁 | 14 个阶段 | `fw_patch_jb` + `cfw_install_jb` |
|
||||
|
||||
> 越狱最终配置(符号链接、Sileo、apt、TrollStore)通过 `/cores/vphone_jb_setup.sh` LaunchDaemon 在首次启动时自动运行。查看进度:`/var/log/vphone_jb_setup.log`。
|
||||
|
||||
@@ -32,22 +32,42 @@
|
||||
|
||||
**主机系统:** PV=3 虚拟化要求 macOS 15+(Sequoia)。
|
||||
|
||||
**禁用 SIP 和 AMFI** —— 需要私有的 Virtualization.framework 权限。
|
||||
**配置 SIP/AMFI** —— 需要私有的 Virtualization.framework 权限和未签名二进制文件工作流。
|
||||
|
||||
重启到恢复模式(长按电源键),打开终端:
|
||||
重启到恢复模式(长按电源键),打开终端,选择以下任一设置方式:
|
||||
|
||||
```bash
|
||||
csrutil disable
|
||||
csrutil allow-research-guests enable
|
||||
```
|
||||
- **方式 1:完全禁用 SIP + AMFI boot-arg(最宽松)**
|
||||
|
||||
重新启动回 macOS 后:
|
||||
在恢复模式中:
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
```bash
|
||||
csrutil disable
|
||||
csrutil allow-research-guests enable
|
||||
```
|
||||
|
||||
再重启一次。
|
||||
重新启动回 macOS 后:
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
|
||||
再重启一次。
|
||||
|
||||
- **方式 2:保持 SIP 大部分启用,仅禁用调试限制,使用 [`amfidont`](https://github.com/zqxwce/amfidont)**
|
||||
|
||||
在恢复模式中:
|
||||
|
||||
```bash
|
||||
csrutil enable --without debug
|
||||
csrutil allow-research-guests enable
|
||||
```
|
||||
|
||||
重新启动回 macOS 后:
|
||||
|
||||
```bash
|
||||
xcrun python3 -m pip install amfidont
|
||||
sudo amfidont --path [PATH_TO_VPHONE_DIR]
|
||||
```
|
||||
|
||||
**安装依赖:**
|
||||
|
||||
@@ -65,6 +85,7 @@ git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git
|
||||
|
||||
```bash
|
||||
make setup_machine # 完全自动化完成"首次启动"流程(包含 restore/ramdisk/CFW)
|
||||
# 选项:NONE_INTERACTIVE=1 SUDO_PASSWORD=...
|
||||
```
|
||||
|
||||
## 手动设置
|
||||
@@ -132,6 +153,24 @@ make boot
|
||||
|
||||
执行 `cfw_install_jb` 后,越狱变体在首次启动时将提供 **Sileo** 和 **TrollStore**。你可以使用 Sileo 安装 `openssh-server` 以获得 SSH 访问。
|
||||
|
||||
对于常规版/开发版,VM 会提供**直接控制台**。当看到 `bash-4.4#` 时,按回车并运行以下命令以初始化 shell 环境并生成 SSH 主机密钥:
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
> **注意:** 若不执行主机密钥生成步骤,dropbear(SSH 服务器)会接受连接但立刻关闭,因为它没有密钥进行握手。
|
||||
|
||||
## 后续启动
|
||||
|
||||
```bash
|
||||
@@ -141,14 +180,15 @@ make boot
|
||||
在另一个终端中启动 iproxy 隧道:
|
||||
|
||||
```bash
|
||||
iproxy 2222 22 # SSH(需要从 Sileo 安装 openssh-server)
|
||||
iproxy 2222 22 # SSH(越狱版:需从 Sileo 安装 openssh-server;常规版/开发版:dropbear)
|
||||
iproxy 5901 5901 # VNC
|
||||
iproxy 5910 5910 # RPC
|
||||
```
|
||||
|
||||
连接方式:
|
||||
|
||||
- **SSH:** `ssh -p 2222 [email protected]`(密码:`alpine`)
|
||||
- **SSH(越狱版):** `ssh -p 2222 mobile@127.0.0.1`(密码:`alpine`)
|
||||
- **SSH(常规版/开发版):** `ssh -p 2222 root@127.0.0.1`(密码:`alpine`)
|
||||
- **VNC:** `vnc://127.0.0.1:5901`
|
||||
- [**RPC:**](http://github.com/doronz88/rpc-project) `rpcclient -p 5910 127.0.0.1`
|
||||
|
||||
@@ -158,11 +198,16 @@ iproxy 5910 5910 # RPC
|
||||
|
||||
**问:运行时出现 `zsh: killed ./vphone-cli`。**
|
||||
|
||||
AMFI 未禁用。设置 boot-arg 并重启:
|
||||
AMFI/调试限制未正确绕过。选择以下任一方式:
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
- **方式 1(完全禁用 AMFI):**
|
||||
|
||||
```bash
|
||||
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
```
|
||||
|
||||
- **方式 2(仅禁用调试限制):**
|
||||
在恢复模式中使用 `csrutil enable --without debug`(不完全禁用 SIP),然后安装/加载 [`amfidont`](https://github.com/zqxwce/amfidont),保持 AMFI 其他功能不变。
|
||||
|
||||
**问:系统应用(App Store、信息等)无法下载或安装。**
|
||||
|
||||
@@ -180,6 +225,10 @@ sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
|
||||
|
||||
重启虚拟机。SSH 服务器将在下次启动时自动启动。
|
||||
|
||||
**问:可以安装 `.tipa` 文件吗?**
|
||||
|
||||
可以。安装菜单同时支持 `.ipa` 和 `.tipa` 包。拖放或使用文件选择器即可。
|
||||
|
||||
**问:可以升级到更新的 iOS 版本吗?**
|
||||
|
||||
可以。使用你想要的版本的 IPSW URL 覆盖 `fw_prepare`:
|
||||
|
||||
@@ -5,7 +5,7 @@ enum VPhoneInstallPackage {
|
||||
static let allowedContentTypes: [UTType] = [
|
||||
UTType(filenameExtension: "ipa"),
|
||||
UTType(filenameExtension: "tipa"),
|
||||
].compactMap { $0 }
|
||||
].compactMap(\.self)
|
||||
|
||||
static func isSupportedFile(_ url: URL) -> Bool {
|
||||
switch url.pathExtension.lowercased() {
|
||||
|
||||
Reference in New Issue
Block a user