因為之前把我的 iPhone 6s 刷爆了被弄上去 iOS 13.5 讓我很懊惱,前幾天爬文發現 A9 的 SEP 已經被破解了,那就來嘗試刷回 iOS 9.3.3 吧。
想不到 2026 年我還會寫降級 + 越獄教學吧 XD
0. 重要概念
這個流程裡有兩種不同的「untethered」:
- Untethered restore:靠這台裝置自己的 iOS 9.3.3 SHSH2,讓 9.3.3 開機不依賴電腦。
- Untethered jailbreak:靠
kokeshi 9.2-9.3.4 Untether,讓 jailbreak 在每次開機時自動生效。
兩者都完成,才是最後的完整狀態。
1. 必要條件
硬體與工具
- A9 的裝置,我用的是 iPhone 6s Plus,機型識別碼
iPhone8,2。 - macOS 電腦與穩定的 Lightning 線;DFU 不穩時優先使用 USB-A to Lightning。
- 最新可用的 turdus merula(內含
turdus_merula、turdusra1n)。 - Legacy iOS Kit,用於 SSH ramdisk 與在未啟用的 iOS 9 上準備暫時的 jailbreak/bootstrap。
libimobiledevice工具:ideviceinfo、ideviceactivation、iproxy。- 可在較新版系統使用的 jailbreak;本次在 iOS 10.3.3 使用 TotallyNotSpyware。
- iOS 9.3.3 啟用前暫時使用的 Filza、OpenSSH 與 jailbreak/bootstrap。
- 最終使用的
kok3shi9.ipa。
韌體與簽章(以 iPhone 6s Plus 為例)
iPhone_5.5_15.8.8_19H422_Restore.ipswiPhone_5.5_10.3.3_14G60_Restore.ipswiPhone_5.5_10.2.1_14D27_Restore.ipswiPhone8,2_9.3.3_13G34_Restore.ipsw- 這台 iPhone 自己的 iOS 9.3.3 / build 13G34 官方 SHSH2。
- SHSH2 內對應的 generator。
本次成功實例:
|
1 2 3 4 |
Device: iPhone8,2 / n66ap iOS: 9.3.3 Build: 13G34 Generator: 0xe67cb19e109a2d83 |
2. 最終路線總覽
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
iPhone 6s Plus 先更新/還原到 iOS 15.8.8 ↓ turdus tethered restore 到 10.3.3 ↓ 10.3.3 正常向 Apple 啟用 ↓ 10.3.3 jailbreak,備份同機 activation records ↓ turdus tethered restore 到 10.2.1(iOS 9 的必要中繼版本) ↓ 使用 9.3.3 SHSH2 + generator 做 untethered restore ↓ 9.3.3 暫時移走 Setup.app,安裝 bootstrap 並取得 root SSH ↓ 還原 activation records,修正 MobileGestalt,放回 Setup.app ↓ 確認 Activated ↓ 安裝並執行 kok3shi9 ↓ 確認 /.installed_kok3shi ↓ 安裝 kokeshi 9.2-9.3.4 Untether ↓ 完整關機再開機,驗證自動 jailbreak |
2.1 起點:先升級到 iOS 15.8.8
本次實際流程最一開始先把 iPhone 6s Plus 更新/還原到:
|
1 2 3 |
iOS 15.8.8 Build 19H422 IPSW: iPhone_5.5_15.8.8_19H422_Restore.ipsw |
截至本文整理時,iOS 15.8.8 是 iPhone 6s Plus 可用的 signed build。實作時 Apple 的 restore-image 下載入口似乎無法正常提供 iPhone 6s Plus IPSW,因此本次是從下列頁面下載:
|
1 |
https://ipsw.pro/iPhone |
這是第三方索引站。下載後務必確認:
- 裝置型號與您的裝置相符。
- 該 build 當下仍在 Apple 簽署;第三方網站只能提供檔案或索引,不能取代 Apple 的 restore 簽章驗證。
- IPSW 能被 Finder 正常辨識,再開始後續流程。
3. turdus 的 A9 tethered restore 標準流程
10.3.3 與 10.2.1 都使用同一組邏輯:
|
1 2 3 4 5 |
pre-restore SHC → tethered restore → post-restore SHC → PTE block → tether boot |
先進入 turdus 目錄,解除 macOS quarantine:
|
1 2 |
cd /path/to/turdus_m3rula /usr/bin/xattr -cr ./bin |
以下每一次 turdusra1n 都依畫面提示進 Recovery / DFU。
3.1 現代 iOS → iOS 10.3.3
取得 10.3.3 pre-restore SHC:
|
1 2 3 4 |
./bin/turdusra1n -D ./bin/turdus_merula \ --get-shcblock \ /path/to/iPhone_5.5_10.3.3_14G60_Restore.ipsw |
從 block/ 找到剛產生的檔案,立刻另存明確名稱:
|
1 |
cp block/{剛產生的-shcblock} shcblock_10.3.3_pre.bin |
重新進 Recovery / DFU,執行 tethered restore:
|
1 2 3 4 5 |
./bin/turdusra1n -D ./bin/turdus_merula \ -o \ --load-shcblock shcblock_10.3.3_pre.bin \ /path/to/iPhone_5.5_10.3.3_14G60_Restore.ipsw |
Restore 完成後取得 post-restore SHC:
|
1 2 |
./bin/turdusra1n -g cp block/{剛產生的-post-shcblock} shcblock_10.3.3_post.bin |
用 restore 過程產生的 signed-SEP.img4 取得 PTE:
|
1 2 3 4 5 6 |
./bin/turdusra1n \ -g \ -i image4/{對應的-signed-SEP.img4} \ -C shcblock_10.3.3_post.bin cp block/{剛產生的-pteblock} pteblock_10.3.3.bin |
Tether boot:
|
1 |
./bin/turdusra1n -TP pteblock_10.3.3.bin |
10.3.3 完成開機後,連線到 Wi-Fi 並正常完成 Apple activation。確認:
|
1 |
ideviceinfo | grep -E 'ActivationState|ProductVersion|BuildVersion' |
應看到:
|
1 2 3 |
ActivationState: Activated ProductVersion: 10.3.3 BuildVersion: 14G60 |
本次在 10.3.3 不需要移動或移除 Setup.app。完成 activation 後直接重新開機,即可進入已啟用的系統。
非常懷念的 checkm8 畫面啊
4. 在 iOS 10.3.3 備份 activation records
在 10.3.3 用 TotallyNotSpyware 完成 jailbreak,安裝 Filza 與 OpenSSH。若透過 USB SSH:
|
1 |
iproxy 2222 22 |
保持上面視窗開啟,另一個 Terminal 連線:
|
1 2 3 4 |
/usr/bin/ssh \ -o HostKeyAlgorithms=+ssh-rsa \ -o PubkeyAcceptedAlgorithms=+ssh-rsa \ root@127.0.0.1 -p 2222 |
4.1 在手機上建立備份
|
1 |
mkdir -p /var/mobile/Media/activation-backup |
備份 FairPlay:
|
1 2 |
tar -cpf /var/mobile/Media/activation-backup/FairPlay.tar \ /private/var/mobile/Library/FairPlay |
備份 CommCenter:
|
1 2 3 |
cp -p \ /private/var/wireless/Library/Preferences/com.apple.commcenter.device_specific_nobackup.plist \ /var/mobile/Media/activation-backup/ |
備份 factory data:
|
1 2 |
tar -cpf /var/mobile/Media/activation-backup/factorydata.tar \ /System/Library/Caches/com.apple.factorydata |
找出 mobileactivationd container:
|
1 2 |
find /private/var/containers/Data/System \ -name data_ark.plist -print |
記下路徑中的 UUID,以下以 <IOS10-UUID> 表示:
|
1 2 |
tar -cpf /var/mobile/Media/activation-backup/mobileactivationd-Library.tar \ "/private/var/containers/Data/System/{IOS10-UUID}/Library" |
4.2 拉回 Mac
|
1 2 3 4 5 6 7 8 9 10 |
mkdir -p ~/Desktop/iPhone8,2-activation-10.3.3 scp -O -P 2222 \ -o HostKeyAlgorithms=+ssh-rsa \ -o PubkeyAcceptedAlgorithms=+ssh-rsa \ ~/Desktop/iPhone8,2-activation-10.3.3/ ideviceinfo \ > ~/Desktop/iPhone8,2-activation-10.3.3/ideviceinfo.txt |
-O 會強制新版 OpenSSH 使用傳統 SCP protocol,避免舊 iOS SSH server 的 SFTP path canonicalization 問題。
4.3 降級前驗證備份
|
1 2 3 4 5 6 |
ls -lh ~/Desktop/iPhone8,2-activation-10.3.3/ tar -tf ~/Desktop/iPhone8,2-activation-10.3.3/FairPlay.tar | head tar -tf ~/Desktop/iPhone8,2-activation-10.3.3/factorydata.tar | head tar -tf ~/Desktop/iPhone8,2-activation-10.3.3/mobileactivationd-Library.tar \ | grep -E 'data_ark|activation_records' |
至少必須有:
|
1 2 3 4 5 |
FairPlay.tar factorydata.tar mobileactivationd-Library.tar com.apple.commcenter.device_specific_nobackup.plist ideviceinfo.txt |
而 mobileactivationd-Library.tar 必須能列出:
|
1 2 |
Library/internal/data_ark.plist Library/activation_records/activation_record.plist |
未確認完整前,不要繼續 restore。
5. iOS 10.3.3 → iOS 10.2.1 中繼系統
A9 裝置要 restore 到 iOS 9.0–9.3.5,必須先經過 iOS 10.2.1。不能省略這一段,也不能拿 10.3.3 的 SHC/PTE 混用。
其實步驟就跟降級 10.3.3 一樣,只是做 10.2.1 的版本而已。
取得 10.2.1 pre-restore SHC:
|
1 2 3 4 5 6 |
./bin/turdusra1n -D ./bin/turdus_merula \ --get-shcblock \ /path/to/iPhone_5.5_10.2.1_14D27_Restore.ipsw cp block/{剛產生的-shcblock} shcblock_10.2.1_pre.bin |
Tethered restore:
|
1 2 3 4 5 |
./bin/turdusra1n -D ./bin/turdus_merula \ -o \ --load-shcblock shcblock_10.2.1_pre.bin \ /path/to/iPhone_5.5_10.2.1_14D27_Restore.ipsw |
取得 post-restore SHC 與 PTE:
|
1 2 3 4 5 6 7 8 9 |
./bin/turdusra1n -g cp block/{剛產生的-post-shcblock} shcblock_10.2.1_post.bin ./bin/turdusra1n \ -g \ -i image4/{對應的-signed-SEP.img4} \ -C shcblock_10.2.1_post.bin cp block/{剛產生的-pteblock} pteblock_10.2.1.bin |
Tether boot 10.2.1:
|
1 |
./bin/turdusra1n -TP pteblock_10.2.1.bin |
10.2.1 開機後連 Wi-Fi,正常完成 Setup 與 activation,並確認:
|
1 |
ideviceinfo | grep -E 'ActivationState|ProductVersion|BuildVersion' |
本次成功路線是在 10.2.1 顯示 Activated 後才繼續。確認它至少成功開機並完成啟用,再進下一節。
6. iOS 10.2.1 → iOS 9.3.3 untethered restore
先從 blob 讀出 generator;不要修改 SHSH2:
|
1 |
grep -A 1 'generator' /path/to/your-9.3.3.shsh2 |
本次實例是:
|
1 |
0xe67cb19e109a2d83 |
取得 9.3.3 專用 SHC:
|
1 2 3 4 5 6 |
./bin/turdusra1n -D ./bin/turdus_merula \ --get-shcblock \ /path/to/iPhone8,2_9.3.3_13G34_Restore.ipsw cp block/{剛產生的-shcblock} shcblock_9.3.3.bin |
重新進 Recovery / DFU,設定 blob 對應的 generator:
|
1 |
./bin/turdusra1n -Db 0xe67cb19e109a2d83 |
正式 restore:
|
1 2 3 4 5 |
./bin/turdus_merula \ -w \ --load-shsh /path/to/your-9.3.3.shsh2 \ --load-shcblock shcblock_9.3.3.bin \ /path/to/iPhone8,2_9.3.3_13G34_Restore.ipsw |
這裡使用 -w;前面沒有 blob 的中繼 restore 使用的是 -o。
完成後的 9.3.3 應可自行開機,不需要再用 10.2.1 的 PTE tether boot。
7. 在未啟用的 iOS 9.3.3 取得暫時 root 環境
如果 Setup Assistant 顯示 Activation Error,先不要反覆向 Apple activation server 重試。
7.1 啟動 Legacy iOS Kit
如果尚未下載:
|
1 2 3 4 |
git clone --filter=blob:none \ https://github.com/LukeZGD/Legacy-iOS-Kit cd Legacy-iOS-Kit |
已經下載過的話,直接進入該資料夾。接上 iPhone,執行:
|
1 |
./restore.sh |
第一次執行時,先讓工具完成相依套件與檔案準備。進入主選單後選:
|
1 2 |
Useful Utilities → SSH Ramdisk |
7.2 建立並啟動 A9 SSH ramdisk
- 選進
SSH Ramdisk後,讓工具依畫面流程建立並啟動 ramdisk;不同版本顯示的提示可能略有不同。 - 依 Legacy iOS Kit 畫面指示進入 Recovery,再按指示進 DFU。不要在工具要求之前自行反覆切換模式。
- 等待工具完成 exploit、建立 ramdisk 並把它送進手機。成功時手機通常會停在 ramdisk 畫面,Terminal 會回到 SSH Ramdisk 選單。
如果 USB-C 線材或轉接器讓 DFU/exploit 不穩,改用 USB-A to Lightning,必要時搭配 USB-A 轉接器。
7.3 連入 ramdisk
在 SSH Ramdisk 選單選:
|
1 |
Connect to SSH |
Legacy iOS Kit 會連到本機轉發的 ramdisk SSH。連線資料為:
|
1 2 3 4 |
Host: 127.0.0.1 Port: 6414 User: root Password: alpine |
如果自動連線沒有開啟 shell,可在另一個 Terminal 手動連線:
|
1 |
ssh root@127.0.0.1 -p 6414 |
若新版 macOS OpenSSH 拒絕舊 host key,再使用:
|
1 2 3 4 |
/usr/bin/ssh \ -o HostKeyAlgorithms=+ssh-rsa \ -o PubkeyAcceptedAlgorithms=+ssh-rsa \ root@127.0.0.1 -p 6414 |
如果只退出選單、但手機仍停在 SSH ramdisk,可用以下指令重新打開選單,不必重新建立 ramdisk:
|
1 |
./restore.sh --sshrd-menu |
7.4 掛載 iOS 9.3.3 root filesystem
iPhone 6s Plus 是 64-bit,而 iOS 9.3.3 屬於 iOS 10.2.1 或更舊的系統,因此使用 HFS rootfs mount:
|
1 2 |
mkdir -p /mnt1 mount_hfs /dev/disk0s1s1 /mnt1 |
確認掛載成功:
|
1 2 3 |
mount | grep '/mnt1' ls -la /mnt1 ls -ld /mnt1/Applications/Setup.app |
若 mount_hfs 回報已掛載或 resource busy,先用上面的 mount 與 ls 確認 /mnt1 是否已可讀,不要重複強制掛載。
7.5 準備暫時 bootstrap 並繞過 Setup Assistant
- 使用 Legacy iOS Kit 提供的 bootstrap 安裝功能,把 iOS 9 jailbreak/bootstrap 準備好;不要手工拼湊或只放幾個 marker。
- 回到 ramdisk root shell,確認
/mnt1/Applications/Setup.app存在。 - 暫時移走 Setup.app,不要刪除:
|
1 2 3 |
mv /mnt1/Applications/Setup.app /mnt1/Setup.app sync reboot |
- 也可以回到 SSH Ramdisk 選單使用
Reboot Device。正常開機後應繞過 Setup Assistant,進入鎖定畫面或桌面。 - 進入桌面後連 Wi-Fi,在 Safari 開啟:
|
1 |
jbme.ddw.nu |
- 按
go;依提示鎖定螢幕,稍候再解鎖。這個頁面只負責啟用已經裝好的 jailbreak,不能取代前面的 bootstrap。 - 確認 Cydia 可開,安裝 Filza 與 OpenSSH。
這個暫時環境的唯一目的,是在 9.3.3 上取得 root 權限來還原 activation records。最終 jailbreak 仍要改用 kok3shi9。
8. 還原 activation records 到 iOS 9.3.3
8.1 將備份送回手機
Mac:
|
1 |
iproxy 2222 22 |
另一個 Terminal:
|
1 2 3 4 5 |
scp -O -r -P 2222 \ -o HostKeyAlgorithms=+ssh-rsa \ -o PubkeyAcceptedAlgorithms=+ssh-rsa \ ~/Desktop/iPhone8,2-activation-10.3.3 \ root@127.0.0.1:/var/mobile/Media/ |
SSH 進手機後設定方便閱讀的路徑:
|
1 2 3 4 5 |
ACT_BACKUP=/var/mobile/Media/iPhone8,2-activation-10.3.3 ACT_TMP=/var/mobile/Media/activation-restore-tmp mkdir -p "$ACT_TMP" tar -xpf "$ACT_BACKUP/mobileactivationd-Library.tar" -C "$ACT_TMP" |
8.2 找出舊、新 container UUID
備份檔中的 10.3.3 UUID:
|
1 2 |
tar -tf "$ACT_BACKUP/mobileactivationd-Library.tar" \ | grep -E 'data_ark|activation_records' |
目前 9.3.3 的 UUID:
|
1 2 |
find /private/var/containers/Data/System \ -name data_ark.plist -print |
把兩個 UUID 分別記成 <OLD-UUID> 與 <NEW-UUID>。不可把整個 tar 直接解回舊 UUID 路徑。
8.3 還原 FairPlay、CommCenter 與 factorydata
|
1 2 |
cd / tar -xpf "$ACT_BACKUP/FairPlay.tar" |
先保留 9.3.3 現有 CommCenter 檔,再覆蓋:
|
1 2 3 4 5 6 7 8 |
cp -p \ /private/var/wireless/Library/Preferences/com.apple.commcenter.device_specific_nobackup.plist \ /private/var/wireless/Library/Preferences/com.apple.commcenter.device_specific_nobackup.plist.orig \ 2>/dev/null cp -p \ "$ACT_BACKUP/com.apple.commcenter.device_specific_nobackup.plist" \ /private/var/wireless/Library/Preferences/ |
備份目前 factorydata,再還原:
|
1 2 3 4 5 6 7 |
if [ -e /System/Library/Caches/com.apple.factorydata ]; then mv /System/Library/Caches/com.apple.factorydata \ /System/Library/Caches/com.apple.factorydata.orig fi cd / tar -xpf "$ACT_BACKUP/factorydata.tar" |
8.4 還原 data_ark 與 activation record
先備份目前的 data_ark.plist:
|
1 2 3 |
cp -p \ "/private/var/containers/Data/System/{NEW-UUID}/Library/internal/data_ark.plist" \ "/private/var/containers/Data/System/{NEW-UUID}/Library/internal/data_ark.plist.orig" |
把備份中的檔案映射到目前的 UUID:
|
1 2 3 4 5 6 7 8 9 10 |
cp -p \ "$ACT_TMP/private/var/containers/Data/System/{OLD-UUID}/Library/internal/data_ark.plist" \ "/private/var/containers/Data/System/{NEW-UUID}/Library/internal/data_ark.plist" mkdir -p \ "/private/var/containers/Data/System/{NEW-UUID}/Library/activation_records" cp -p \ "$ACT_TMP/private/var/containers/Data/System/{OLD-UUID}/Library/activation_records/activation_record.plist" \ "/private/var/containers/Data/System/{NEW-UUID}/Library/activation_records/activation_record.plist" |
iOS 9.3.x 還要放到兩個額外位置:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
mkdir -p /private/var/mobile/Library/mad/activation_records mkdir -p /private/var/root/Library/Lockdown/activation_records cp -p \ "$ACT_TMP/private/var/containers/Data/System/{OLD-UUID}/Library/activation_records/activation_record.plist" \ /private/var/mobile/Library/mad/activation_records/ cp -p \ "$ACT_TMP/private/var/containers/Data/System/{OLD-UUID}/Library/activation_records/activation_record.plist" \ /private/var/root/Library/Lockdown/activation_records/ chown -R mobile:mobile /private/var/mobile/Library/mad chown -R root:wheel /private/var/root/Library/Lockdown/activation_records |
8.5 修改 iOS 9.3.x 的 MobileGestalt flag
用 Filza 的 plist editor 開啟:
|
1 |
/private/var/mobile/Library/Caches/com.apple.MobileGestalt.plist |
在 cacheExtra 下新增:
|
1 2 3 |
Key: a6vjPkzcRjrsXmniFsm0dg Type: Boolean Value: YES |
一定要是 Boolean true,不能是字串 "YES"。
8.6 檢查後收尾
確認核心檔案都存在:
|
1 2 3 4 5 6 7 8 9 |
ls -l \ "/private/var/containers/Data/System/{NEW-UUID}/Library/internal/data_ark.plist" \ "/private/var/containers/Data/System/{NEW-UUID}/Library/activation_records/activation_record.plist" \ /private/var/mobile/Library/mad/activation_records/activation_record.plist \ /private/var/root/Library/Lockdown/activation_records/activation_record.plist ls -ld \ /private/var/mobile/Library/FairPlay \ /System/Library/Caches/com.apple.factorydata |
如果目前正常系統仍有 root SSH,而且 /Setup.app 存在,可直接放回:
|
1 2 3 4 |
mv /Setup.app /Applications/Setup.app uicache sync reboot |
如果正常系統不能寫入,則重新進 SSH ramdisk:
|
1 2 3 |
mount_hfs /dev/disk0s1s1 /mnt1 mv /mnt1/Setup.app /mnt1/Applications/Setup.app reboot |
9. 驗證 activation
Mac:
|
1 2 3 4 |
ideviceinfo \ | grep -E 'ActivationState|ProductVersion|BuildVersion|BasebandVersion' ideviceactivation state |
目標結果:
|
1 2 3 |
ActivationState: Activated ProductVersion: 9.3.3 BuildVersion: 13G34 |
確認後,立即再備份一次目前已驗證可用的 9.3.3 activation 狀態,並將它和原始 10.3.3 備份分開保存。
10. 用 kok3shi9 建立最終 jailbreak
裝置必須先是 Activated,否則 Apple Account 自簽與 sideload 很可能失敗。
- 下載最新版
kok3shi9.ipa。 - 依 iOS Guide 使用 PlumeImpactor 安裝;若你使用另一個確定支援 iOS 9 的 sideload 工具,步驟相同。
- 手機開啟:
|
1 |
設定 → 一般 → 裝置管理/描述檔與裝置管理 |
- 信任用來簽署 IPA 的 Apple Account。
- 重新開機,開啟
kok3shi9,按Jailbreak。 - 如果 exploit crash 或重新開機,重新執行,直到 Cydia 與 jailbreak 正常。
11. 安裝 kokeshi untether
11.1 更新舊 iOS 的 TLS root certificates
在 iPhone Safari 開啟:
|
1 |
http://tlsroot.litten.ca |
選:
|
1 2 3 4 5 |
Signed iOS Bundle (iOS 5+) → Install → Install → Install → Done |
這一步可避免 Cydia 讀現代 HTTPS repository 時顯示憑證無效。
11.2 安裝 untether
Cydia:
|
1 |
Sources → Edit → Add |
加入:
|
1 |
https://kok3shidoll.github.io/kokeshi9 |
搜尋並安裝:
|
1 |
kokeshi 9.2-9.3.4 Untether |
安裝完成後依提示 reboot。
12. 最終驗證
- 正常關機。
- 不連電腦,直接開機。
- 確認可進入 iOS 9.3.3。
- 不重新執行 kok3shi9,直接測試 Cydia、Filza 或 root SSH。
- 再確認:
|
1 |
ideviceinfo | grep -E 'ActivationState|ProductVersion|BuildVersion' |
最終狀態應為:
|
1 2 3 4 5 6 |
iPhone 6s Plus / iPhone8,2 / A9 iOS 9.3.3 / 13G34 ActivationState: Activated 可自行開機 kok3shi9 jailbreak 已建立 kokeshi untether 已生效 |
成功進入 Cydia,iOS 9.3.3
13. 必須保存的資料
至少保存兩份、放在不同儲存裝置:
- iOS 9.3.3 官方 SHSH2。
- SHSH2 對應的 generator。
- iOS 9.3.3、10.2.1、10.3.3 IPSW。
- 每個版本各自的 pre/post SHC 與 PTE;檔名中要標示版本與用途。
- 原始 10.3.3 activation backup。
- 已確認成功的 9.3.3 activation backup。
ideviceinfo.txt。- Turdus 版本與使用日期。
建議另存雜湊:
|
1 2 3 |
shasum -a 256 \ ~/Desktop/iPhone8,2-activation-10.3.3/* \ > ~/Desktop/iPhone8,2-activation-10.3.3/SHA256SUMS.txt |
14. 關鍵注意事項
- 所有 activation records 必須來自同一台 iPhone。
- 本次從 iOS 15.8.8/19H422 開始;下載第三方來源的 IPSW 時必須再次核對裝置型號、檔名與 Apple 當下的簽署狀態。
- iOS 9.3.3 必須使用 build
13G34的 IPSW 與同機 blob。 - 降到 iOS 9 前必須先成功 boot 10.2.1 並且進到主畫面。
--get-shcblock的一般輪次使用-D;真正用 SHSH2 restore 9.3.3 前才使用-Db。- 10.3.3、10.2.1、9.3.3 的 SHC/PTE 不可混用。
- 10.3.3 不需要處理
Setup.app;只有 9.3.3 卡在 Activation Error、必須先取得暫時 root 環境時才移動它。Setup.app只可暫時移動,不能刪除;activation 完成後必須放回。 MobileGestalt必須用 plist editor 編輯,避免破壞 binary plist。- 不要偽造
/.installed_kok3shi,也不要繞過 kokeshi 的安裝前檢查。 - kokeshi 會改動開機流程,錯誤版本或錯誤 jailbreak 環境可能 bootloop。
- 安裝 untether 後若因 tweak 造成 respring loop,可在開機時持續按住音量增加鍵嘗試停用 tweak injection;真正 bootloop 則可能只能 DFU restore。
- 即使
ActivationState正確,舊 iOS 上的 App Store、iMessage、FaceTime、push、行動網路或部分 Apple 服務仍可能受伺服器、TLS、baseband 或年代限制影響。
15. 參考資料
- iOS Guide:Using turdus merula(macOS)
- iOS Guide:Using turdus merula(Tethered, macOS)
- MacDat:iOS 9 Activation on A9 Devices
- iOS Guide:Installing kok3shi9
- kok3shidoll:kok3shi untether
- turdus merula 官方網站
- Apple:iOS 15.8.8 security content(確認支援 iPhone 6s 全系列)
- IPSW.PRO:iPhone IPSW 索引
- Legacy iOS Kit Wiki:SSH Ramdisk


