diosra2’s blog

iOSのJailbreak、ダウングレード

iOS 12.1.2や12.1.1へfuturerestoreする


大まかな手順は11.3.1の時のと同じです。

ただし、iOS 11の時とは使用するものに違いがあるので注意してください。

<重要>

futurerestoreは@s0uthwes氏のフォークを使ってください

https://github.com/s0uthwest/futurerestore

OS X 10.12以降が必要な様です。

 

また、新しいデバイス(Face ID世代)の場合はv224以降のtsscheckerで取得したshsh2を使用してください。古いバージョンのではFaceIDなどが死にます。

 

<方法>

以上の変更点を踏まえた上で、以下の手順で復元できます。

 

現在のiOS別の対応一覧

iOS 7.0 ~ 8.4.1、9.1

まず、rootでnonceEnablerをターミナルで実行、nvpatchを適用させます。

そのあと以下のコマンドを入力し、ApNonceをセットします。

generatorの値[NONCE]はshsh2をxcodeなどで開いて確認してください。この場合は「0x0123456789abcdef」です。

f:id:diosra2:20180614233216p:plain

root# nvram com.apple.System.boot-nonce=[NONCE]

nvram -pで確認できるので、入力した値が正確に出ているかを確認してください。

 

iOS 9.0 ~ 9.0.2

このバージョンの脱獄はtfp0 patchが適用されていません。

そのため、cl0verを利用して最初にtfp0 patchを当ててください。

tfp0 patchを当てたら、rootでnonceEnablerをターミナルで実行、nvpatchを適用させます。

そのあと以下のコマンドを入力し、ApNonceをセットします。

generatorの値[NONCE]はshsh2をxcodeなどで開いて確認してください。この場合は「0x0123456789abcdef」です。

f:id:diosra2:20180614233216p:plain

root# nvram com.apple.System.boot-nonce=[NONCE]

nvram -pで確認できるので、入力した値が正確に出ているかを確認してください。

 

iOS 9.2 ~ 9.3.3

このバージョンではtfp0 patchが含まれていませんが、@qwertyoruiopz氏のJailbreakMeで再脱獄することでhgsp4からnvpatchを当てることができます。

JailbreakMeで再脱獄したら、rootでnonceEnablerをターミナルで実行、nvpatchを適用させます。

そのあと以下のコマンドを入力し、ApNonceをセットします。

generatorの値[NONCE]はshsh2をxcodeなどで開いて確認してください。この場合は「0x0123456789abcdef」です。

f:id:diosra2:20180614233216p:plain

root# nvram com.apple.System.boot-nonce=[NONCE]

nvram -pで確認できるので、入力した値が正確に出ているかを確認してください。

 

iOS 9.3.4 ~ 9.3.5

このバージョンでは脱獄できません。

しかし、PhoenixNonceを利用することでNonceのセットであれば行うことができます。

PhoenixNonceからipaをダウンロード、Cydia Impactorでインストールします。

アプリがインストールされたら開きます。

このような画面になるので、shsh2のgeneratorの値を入力してSetをタップします。以下の場合は「0x0123456789abcdef」と入力します。

f:id:diosra2:20180614233216p:plain

 

iOS 10

iOS 10ではyalu102 (iOS 10.0 ~ 10.2)、doubleh3lix (iOS 10.x)で脱獄するのが基本ですね。

この場合、すでにnvpatchは適用済みなのでNonceをセットするだけで良いです。

generatorの値[NONCE]はshsh2をxcodeなどで開いて確認してください。この場合は「0x0123456789abcdef」です。

f:id:diosra2:20180614233216p:plain

root# nvram com.apple.System.boot-nonce=[NONCE]

nvram -pで確認できるので、入力した値が正確に出ているかを確認してください。

 

iOS 11

iOS 11ではElectraまたはunc0verが使用できます。

Electra

Electraを開き、Set Nonceをタップします。

デフォルトでは0xbd34a880be0b53f3がセットされています。

ApNonceはA7-A9デバイスでは

「603be133ff0bdfa0f83f21e74191cf6770ea43bb」

A10-A11デバイスでは

「15400076bc4c35a7c8caefdcae5bda69c140a11bce870548f0862aac28c194cc」

となっています。

もし、そのApNonceを含むshsh2を所有していない場合、自分のshsh2のgeneratorの値と入力しておきましょう。

以下の場合は0x0123456789abcdefです。

まだ脱獄していない場合は脱獄することでこのNonceがセットされます。

また、脱獄済みの場合はこの時点でNonceがセットされています。

入力したNonceは再脱獄時に自動で毎回セットされるので、ブートループ時の復元対策にもなります。

unc0ver

SettingsのBoot Nonceに入力します。

デフォルトでは0x1111111111111111がセットされています。

ここにGeneratorの値を入力した上で、Overwrite Boot Nonceをオンにした状態で脱獄するとnonceがセットされます。

入力したNonceは、このオプションをオンにしておくことで再脱獄時に毎回セットされるので、ブートループ時の復元対策にもなります。

 

iOS 12.0-12.1.2

iOS 12では、12.1.2まで脱獄可能です。(12.1.1 beta 3も含まれます。)

<デバイス別>

A12では@stek29氏のこちらのソースをビルドすることでnonceをセット出来るようです。

https://git.rory.no/stek29/voucher_nonce

また、A12ではgeneratorからnonceが生成される過程に変更が入っているので、以下の手法を用いて保存したshsh2を使用する必要があります。

https://twitter.com/stek29/status/1093260675022028804?s=21

 

A7-A11ではunc0verでセット出来ます。

unc0verは以下の項目で説明します。

 

unc0ver

※A7-A11 only

v3.0.0 b37以降をCydia Impactorでインストールする必要があります。

https://github.com/pwn20wndstuff/Undecimus/releases

SettingsのBoot Nonceに入力します。

デフォルトでは0x1111111111111111がセットされています。

ここにGeneratorの値を入力した上で、Overwrite Boot Nonceをオンにした状態で脱獄するとnonceがセットされます。

入力したNonceは、このオプションをオンにしておくことで再脱獄時に毎回セットされるので、ブートループ時の復元対策にもなります。

 

iOS 12.1.3-12.2 beta X 

このバージョンでは脱獄ができないので、iOS 12.1.1/2にすることは出来ません。

 

futurerestoreする

SEP/BBは12.1.4 FWのものがそのまま使えると思うので、「12.1.4のSEP/BB」を使用して「iOS 12.1.2」などに復元する形になります。

必要な物

futurerestore (s0uthwest's fork)

iOS 12.0-12.1.2の復元したいバージョンのshsh2

上記shsh2のあるバージョンのファームウェア

iOS 12.1.4のFirmware (署名中のFirmware)

 

準備

ここからの作業は全てパソコンで行います。

iOS 12.1.1/12.1.2が需要が高いと思うので書き出しておきます。

iPhone 5s

iPhone_4.0_64bit_12.1.2_16C104_Restore.ipsw

iPhone SE

iPhone 6

iPhone_4.7_12.1.2_16C104_Restore.ipsw

iPhone 6s

iPhone 6 Plus

iPhone_5.5_12.1.2_16C104_Restore.ipsw

iPhone 6s Plus

iPhone 7

iPhone_4.7_P3_12.1.2_16C104_Restore.ipsw

iPhone 8

iPhone 7 Plus

iPhone_5.5_P3_12.1.2_16C104_Restore.ipsw

iPhone 8 Plus

iPhone X

iPhone10,3,iPhone10,6_12.1.2_16C104_Restore.ipsw

iPhone XR

iPhone11,8_12.1.2_16C104_Restore.ipsw

iPhone XS

iPhone11,2_12.1.2_16C104_Restore.ipsw

iPhone XS Max

iPhone11,4,iPhone11,6_12.1.2_16C104_Restore.ipsw

iPad Air

iPad_64bit_12.1.1_16C50_Restore.ipsw

iPad mini 2

iPad Air 2

iPad_64bit_TouchID_12.1.1_16C50_Restore.ipsw

iPad mini 3

iPad mini 4

iPad Pro (12.9-inch)

iPadPro_12.9_12.1.1_16C50_Restore.ipsw

iPad Pro (9.7-inch)

iPadPro_9.7_12.1.1_16C50_Restore.ipsw

iPad Pro (12.9-inch, 2nd Generation)

iPad_Pro_HFR_12.1.1_16C50_Restore.ipsw

iPad Pro (10.5-inch)

iPad 5th Generation

iPad_64bit_TouchID_ASTC_12.1.1_16C50_Restore.ipsw

iPad 6th Generation

iPad Pro (12.9-inch, 3rd Generation)

iPad_Fall_2018_12.1.1_16C50_Restore.ipsw

iPad Pro (11-inch)

iPod Touch 6th Generation

iPodtouch_12.1.1_16C50_Restore.ipsw

 

また、署名中かつiOS 12.1.1/12.1.2と互換性のあるSEPをもつFWもダウンロードしておきます。現在ならiOS 12.1.4で良いです。

注意: A11以降の場合はv224以降のtsscheckerで取得したshsh2を使用してください。 古いバージョンのではFaceIDなどが死にます。

iPhone 5s

iPhone_4.0_64bit_12.1.4_16D57_Restore.ipsw

iPhone SE

iPhone 6

iPhone_4.7_12.1.4_16D57_Restore.ipsw

iPhone 6s

iPhone 6 Plus

iPhone_5.5_12.1.4_16D57_Restore.ipsw

iPhone 6s Plus

iPhone 7

iPhone_4.7_P3_12.1.4_16D57_Restore.ipsw

iPhone 8

iPhone 7 Plus

iPhone_5.5_P3_12.1.4_16D57_Restore.ipsw

iPhone 8 Plus

iPhone X

iPhone10,3,iPhone10,6_12.1.4_16D57_Restore.ipsw

iPhone XR

iPhone11,8_12.1.4_16D57_Restore.ipsw

iPhone XS

iPhone11,2_12.1.4_16D57_Restore.ipsw

iPhone XS Max

iPhone11,4,iPhone11,6_12.1.4_16D57_Restore.ipsw

iPad Air

iPad_64bit_12.1.4_16D57_Restore.ipsw

iPad mini 2

iPad Air 2

iPad_64bit_TouchID_12.1.4_16D57_Restore.ipsw

iPad mini 3

iPad mini 4

iPad Pro (12.9-inch)

iPadPro_12.9_12.1.4_16D57_Restore.ipsw

iPad Pro (9.7-inch)

iPadPro_9.7_12.1.4_16D57_Restore.ipsw

iPad Pro (12.9-inch, 2nd Generation)

iPad_64bit_TouchID_ASTC_12.1.4_16D57_Restore.ipsw

iPad Pro (10.5-inch)

iPad 5th Generation

iPad_Pro_HFR_12.1.4_16D57_Restore.ipsw 

iPad 6th Generation

iPad Pro (12.9-inch, 3rd Generation)

iPad_Fall_2018_12.1.4_16D57_Restore.ipsw

iPad Pro (11-inch)

iPod Touch 6th Generation

iPodtouch_12.1.4_16D57_Restore.ipsw

 

ダウンロードが終わったら、iOS 12.1.4のファームウェアを解凍します。

そして、自分のデバイスにあったBasebandとSEPを取り出してください。

デバイス名表示一覧 - diosra2’s blog

例えば、iPhone 5s (iPhone6,1)ならn51ap, BBはMav7Mav8なので、必要なのは下記のものとなります。

Firmware/Mav7Mav8-10.31.00.Release.bbfw

Firmware/all_flash/sep-firmware.n51.RELEASE.im4p

また、iOS 12.1.4ファームウェアのBuildManifset.plistも必要なので、これも用意しておきます。

 

復元する

復元するにはデバイスをUSB接続して以下のコマンドを実行します。自動でリカバリーモードとなり、復元が開始されます。

復元コマンドは以下のようになります。(mac/linux用です。windowsの場合は少し異なりますが、だいたい同じです。)

User$ ./futurerestore -t [shsh2] -b [iOS 12.1.4のBaseband] -p [iOS 12.1.4のBuildManifset] -s [iOS 12.1.4のSEP] -m [iOS 12.1.4のBuildManifset] [iOS 12.1.2などの復元対象IPSW]

 

iPad (Wi-Fiのみ)や、iPod TouchにはBasebandはないので、その場合は以下のコマンドになります。

User$ ./futurerestore -t [shsh2] --no-baseband -s [iOS 12.1.4のSEP] -m [iOS 12.1.4のBuildManifset] [iOS 12.1.2などの復元対象IPSW]

 

例えば、iPhone 5sでiOS 12.1.2に復元したい場合は以下のようになります。

User$ ./futurerestore -t [shsh2] -b Mav7Mav8-10.31.00.Release.bbfw -p BuildManifest.plist -s sep-firmware.n51.RELEASE.im4p -m BuildManifest.plist iPhone_4.0_64bit_12.1.2_16C104_Restore.ipsw

 

*注意点

"-b, -p"の代わりに"--latest-baseband"、"-s, -m"の代わりに"--latest-sep"のコマンドを使用することで、自動で最新バージョンのBB/SEPをダウンロードし、復元することができます。また、"-i"で署名されているFWを指定することで、"-b, -p, -s, -m"の指定なしで自動でBB/SEPを取り出し復元することができます。

ただし、--latest-xxコマンドを使用した場合、ダウンロードミスやSEP互換性の不一致などによって復元失敗を起こすリスク、-iを指定した場合はzip解凍ミスなどによって復元失敗を起こすリスクがあります。futurerestoreする場合、ほとんどは失敗すると困る状況で行うことになると思うので、手動指定を行い、できる限り失敗するリスクを減らすことをお勧めします。

手順通りに正しく行えば、基本的には失敗しないので安心してください。

 

(参考)SEP互換性(2018/02/24)

i5s/Air/mini2

10.1.1: 10.3.3-OTA SEP(Touch IDがダメ)

10.2-10.3.3: 10.3.3-OTA SEP

11.3-12.1.4: 12.1.4 SEP

mini3/i6/i6p/mini4/Air2/ipt6

11.3-12.1.4: 12.1.4 SEP

その他

12.0-12.1.4: 12.1.4 SEP


Copyright (C) 2017-2018 Diosra2. All Rights Reserved.