在 2026 年把 iPhone 6s 降級到 iOS 9.3.3 並完美越獄

在 2026 年把 iPhone 6s 降級到 iOS 9.3.3 並完美越獄

因為之前把我的 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,如果是 iPhone 6s 的話是 iPhone8,1,實測也可以成功。
  • 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.ipsw
  • iPhone_5.5_10.3.3_14G60_Restore.ipsw
  • iPhone_5.5_10.2.1_14D27_Restore.ipsw
  • iPhone8,2_9.3.3_13G34_Restore.ipsw
  • 這台 iPhone 自己的 iOS 9.3.3 / build 13G34 官方 SHSH2。
  • SHSH2 內對應的 generator。

本次成功實例:

2. 最終路線總覽

2.1 起點:先升級到 iOS 15.8.8

本次實際流程最一開始先把 iPhone 6s Plus 更新/還原到:

截至本文整理時,iOS 15.8.8 是 iPhone 6s Plus 可用的 signed build。實作時 Apple 的 restore-image 下載入口似乎無法正常提供 iPhone 6s Plus IPSW,因此本次是從下列頁面下載:

這是第三方索引站。下載後務必確認:

  • 裝置型號與您的裝置相符。
  • 該 build 當下仍在 Apple 簽署。
  • 由於是非官方載點的 IPSW,有需要的話請確認 sha1 / sha256 是跟官方一樣的。

3. turdus 的 A9 tethered restore 標準流程

10.3.3 與 10.2.1 都使用同一組邏輯:

先進入 turdus 目錄,解除 macOS quarantine:

以下每一次 turdusra1n 都依畫面提示進 Recovery / DFU。

如果以下使用 turdusra1n 過程中出現 checkm8 然後就卡住,沒進去 PangoOS的話,通常拔掉線重插一下就好了。

3.1 現代 iOS → iOS 10.3.3

取得 10.3.3 pre-restore SHC:

從 block/ 找到剛產生的檔案,立刻另存明確名稱:

重新進 Recovery / DFU,執行 tethered restore:

Restore 完成後取得 post-restore SHC:

用 restore 過程產生的 signed-SEP.img4 取得 PTE:

Tether boot:

10.3.3 完成開機後,連線到 Wi-Fi 並正常完成 Apple activation,進到主畫面,確認:

應看到:

非常懷念的 checkm8 畫面啊

4. 在 iOS 10.3.3 備份 activation records

雖然 iOS LegacyKit 也可以備份 activation records,但是它說只能在 iOS 9.2.1 以下使用,所以我們勤勞一點,手動備份吧。

在 10.3.3 用 TotallyNotSpyware 完成 jailbreak,安裝 Filza 與 OpenSSH。若透過 USB SSH:

保持上面視窗開啟,另一個 Terminal 連線:

4.1 在手機上建立備份

備份 FairPlay:

備份 CommCenter:

備份 factory data:

找出 mobileactivationd container:

記下路徑中的 UUID,以下以 <IOS10-UUID> 表示:

4.2 拉回 Mac

-O 會強制新版 OpenSSH 使用傳統 SCP protocol,避免舊 iOS SSH server 的 SFTP path canonicalization 問題。

4.3 降級前驗證備份

至少必須有:

而 mobileactivationd-Library.tar 必須能列出:

未確認完整前,不要繼續 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 一樣,只是做 10.2.1 的版本而已。

取得 10.2.1 pre-restore SHC:

Tethered restore:

取得 post-restore SHC 與 PTE:

Tether boot 10.2.1:

10.2.1 開機後連 Wi-Fi,正常完成 Setup 與 activation,進到主畫面,並確認:

本次成功路線是在 10.2.1 顯示 Activated 後才繼續。確認它至少成功開機並能夠進主畫面,再進下一節。

6. iOS 10.2.1 → iOS 9.3.3 untethered restore

先從 blob 讀出 generator;不要修改 SHSH2:

本次我自己的實例是:

取得 9.3.3 專用 SHC:

重新進 Recovery / DFU,設定 blob 對應的 generator:

正式 restore:

這裡使用 -w;前面沒有 blob 的中繼 restore 使用的是 -o。

如果 SHSH2 是正確的,完成降級後的 9.3.3 應可自行開機。

7. 在未啟用的 iOS 9.3.3 取得暫時 root 環境

因為 Apple 已經不讓 iOS 9 的裝置啟用 (activation)了,所以我們要把剛剛在 iOS 10.3.3 的啟用紀錄丟回去。

7.1 啟動 Legacy iOS Kit

如果尚未下載:

已經下載過的話,直接進入該資料夾。接上 iPhone,執行:

第一次執行時,先讓工具完成相依套件與檔案準備。進入主選單後選:

7.2 建立並啟動 A9 SSH ramdisk

  1. 選進 SSH Ramdisk 後,讓工具依畫面流程建立並啟動 ramdisk。
  2. 依 Legacy iOS Kit 畫面指示進入 Recovery,再按指示進 DFU。
  3. 等待工具完成 exploit、建立 ramdisk 並把它送進手機。成功時手機通常會停在 ramdisk 畫面,Terminal 會回到 SSH Ramdisk 選單。

如果 USB-C 線材或轉接器讓 DFU/exploit 不穩,改用 USB-A to Lightning,必要時搭配 USB-A 轉接器。

7.3 連入 ramdisk

在 SSH Ramdisk 選單選:

Legacy iOS Kit 會連到本機轉發的 ramdisk SSH。連線資料為:

如果自動連線沒有開啟 shell,可在另一個 Terminal 手動連線:

若新版 macOS OpenSSH 拒絕舊 host key,再使用:

如果只退出選單、但手機仍停在 SSH ramdisk,可用以下指令重新打開選單,不必重新建立 ramdisk:

7.4 掛載 iOS 9.3.3 root filesystem

iPhone 6s Plus 是 64-bit,而 iOS 9.3.3 屬於 iOS 10.2.1 或更舊的系統,因此使用 HFS rootfs mount:

確認掛載成功:

若 mount_hfs 回報已掛載或 resource busy,先用上面的 mount 與 ls 確認 /mnt1 是否已可讀,不要重複強制掛載。

7.5 準備暫時 bootstrap 並繞過 Setup Assistant

  1. 一樣在進入 SSH ramdisk 畫面之後,Legacy iOS Kit 裡面應該有一個 Install Bootstrap (iOS 7/8/9)選項
  2. 按 Install Bootstrap (iOS 7/8/9),工具會把 bootstrap 準備好。
  3. 回到 ramdisk root shell,確認 /mnt1/Applications/Setup.app 存在。
  4. 暫時移走 Setup.app,不要刪除:

  1. 也可以回到 SSH Ramdisk 選單使用 Reboot Device。
  2. 如果卡在 Recovery mode,可以用 Legacy iOS Kit,或者其他工具踢出。
  3. 正常開機後此時應可以繞過 Setup Assistant,能夠正常進入桌面。
  4. 進入桌面後連 Wi-Fi,在 Safari 開啟:

  1. 按 go;依提示鎖定螢幕,稍候再解鎖。這個頁面只負責啟用已經裝好的 jailbreak,如果你前面沒裝 bootstarap 會無法越獄。
  2. 確認 Cydia 可開,安裝 Filza 與 OpenSSH。

這個暫時環境的唯一目的,是在 9.3.3 上取得 root 權限來還原 activation records。如果想要完美越獄,最終 jailbreak 仍要改用 kok3shi9。

8. 還原 activation records 到 iOS 9.3.3

8.1 將備份送回手機

Mac:

另一個 Terminal:

SSH 進手機後設定方便閱讀的路徑:

8.2 找出舊、新 container UUID

備份檔中的 10.3.3 UUID:

目前 9.3.3 的 UUID:

把兩個 UUID 分別記成 <OLD-UUID> 與 <NEW-UUID>。不可把整個 tar 直接解回舊 UUID 路徑。

8.3 還原 FairPlay、CommCenter 與 factorydata

先保留 9.3.3 現有 CommCenter 檔,再覆蓋:

備份目前 factorydata,再還原:

8.4 還原 data_ark 與 activation record

先備份目前的 data_ark.plist:

把備份中的檔案映射到目前的 UUID:

iOS 9.3.x 還要放到兩個額外位置:

8.5 修改 iOS 9.3.x 的 MobileGestalt flag

用 Filza 的 plist editor 開啟:

在 cacheExtra 下新增:

Key 仔細檢查大小寫跟內容,不要拼錯。Type 跟 Value 一定要是 Boolean 的 true,不能是字串 "YES"。

8.6 檢查後收尾

確認核心檔案都存在:

如果目前正常系統仍有 root SSH,而且 /Setup.app 存在,可直接放回:

如果正常系統不能寫入,則重新進 SSH ramdisk:

9. 驗證 activation

Mac:

目標結果:

確認後,立即再備份一次目前已驗證可用的 9.3.3 activation 狀態,並將它和原始 10.3.3 備份分開保存。

備份方式是在 Legacy iOS Key 選擇

程式會警告「Note: Using the activation records only works on iOS 9.2.1 or lower. It will not work on iOS 9.3+」,所以這個備份是有點雞肋就是了。

10. 用 kok3shi9 建立最終 jailbreak(可選)

如果你覺得每次啟動後用 jbme.ddw.nu 網頁越獄就可以的話,可以做到這邊就結束了。

但我想要完美越獄,所以就繼續下面的步驟。

先確認裝置必須先是 Activated,否則 Apple Account 自簽與 sideload 很可能失敗。

  1. 先不要再用 jbme.ddw.nu 越獄
  2. 下載最新版 kok3shi9.ipa。
  3. 依 iOS Guide 使用 PlumeImpactor 安裝;若你使用另一個確定支援 iOS 9 的 sideload 工具,步驟相同。
  4. 手機開啟:

  1. 信任用來簽署 IPA 的 Apple Account。
  2. 重新開機,開啟 kok3shi9,按 Jailbreak。
  3. 如果 exploit crash 或重新開機,重新執行,直到 Cydia 與 jailbreak 正常。

11. 安裝 kokeshi untether

11.1 更新舊 iOS 的 TLS root certificates

在 iPhone Safari 開啟:

選:

這一步可避免 Cydia 讀現代 HTTPS repository 時顯示憑證無效。

11.2 安裝 untether

Cydia:

加入:

搜尋並安裝:

安裝完成後依提示 reboot。

12. 最終驗證

  1. 正常關機。
  2. 不連電腦,直接開機。
  3. 確認可進入 iOS 9.3.3。
  4. 不重新執行 kok3shi9,直接測試 Cydia、Filza 或 root SSH。
  5. 再確認:

最終狀態應為:

成功進入 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 版本與使用日期。

建議另存雜湊:

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。
  • 安裝 untether 後若因 tweak 造成 respring loop,可在開機時持續按住音量增加鍵嘗試停用 tweak injection;真正 bootloop 則可能只能 DFU restore。
  • 即使 ActivationState 正確,舊 iOS 上的 App Store、iMessage、FaceTime、push、行動網路或部分 Apple 服務仍可能受伺服器、TLS、baseband 或年代限制影響。

15. 參考資料

發佈留言