diosra2’s blog

iOS 脱獄、ダウングレード等

Jailbreak information

32bit Jailbreakが可能な最新バージョンはiOS 9.3.5です。
64bit Jailbreakが可能な最新バージョンはiOS 10.2です。
iPhone 7 Jailbreakが可能な最新バージョンはiOS 10.1.1です。
32bit Untethered Jailbreakが可能な最新バージョンはiOS 9.0.2です。
64bit Untethered Jailbreakが可能な最新バージョンはiOS 9.1です。

iPhone 4SやiPhone 5などのA5、A6デバイスをiOS 9にダウングレード・復元する

iOS 5以降、普通はSHSH blobsを保存したとしてもそれを利用することができません。

 

しかし、32bit(A5/A6)デバイスのiOS 9.xに限って自由に復元することができます。

この方法はiOS 9のiBootのAPTicket検証時のバグによるものなので、Jailbreak(脱獄)等は不要です。

 

 

 

*条件

復元したいバージョンのSHSH blobsを所持していること。

APTicketがNonce(APNonce)を含まないこと。(後述)

 

*対応デバイス

対応デバイスはA5(X), A6(X)デバイスのみとなります。

iPhone 4S, iPhone 5, iPhone 5c

iPad 2, iPad (3rd generation), iPad (4th generation), iPad mini

iPod Touch (5th generation)

 

0, 復元を始める前に

0-1, SHSHがNonceを含まないかどうかを確認する

iOS 9のiBootでは復元時にNonceの検証をスキップするようです。そのため、正常なSHSH blobsが保存されていればRestore Mode(復元モード)を起動でき、復元することができます。

ただし、APTicketがNonceを含んでいる場合はこの方法では復元できません。

 

APTicketがNonceを含むかどうかは、axi0mX氏の"apticket-nonce-checker"で確認可能です。

github.com

 

使用方法

ターミナルから以下のコマンドを実行

(myblob.shshは確かめたいSHSHの名前です。)

User$ ./apticket-nonce-checker.py ticket.shsh

 

Nonceが含まれていなければ

User$ ./apticket-nonce-checker.py ticket.shsh

Parsing APTicket from SHSH file.

APTicket does not have a nonce.

と表示されます。

 

Nonceが含まれていれば

User$ ./apticket-nonce-checker.py ticket.shsh

APTicket has a nonce. Valid nonces are 20 bytes long.

Nonce (hex dump): 0000000000000000000000000000000000000000

Nonce length: 20 bytes

のように表示されます。

もしNonceを含んでいるのならば復元できません。

 

0-2, SHSHの種類を確認する

おそらくこれが問題になることはないですが、稀にTinyUmbrella等でUpdateのSHSHのみしか取得できていない場合があります。一応目を通しておくと良いと思います。

 

 

0-3, デバイスからSHSHをdumpする

もし現在Jailbreak(脱獄)済みで、SHSHを保存し忘れている/していなかったならば抜き出しておきましょう。SHSHを抜き出しておけば、また将来そのバージョンに戻ることが可能です。取れるものは取りましょう。

 

1, iOS 9.xに復元する下準備

1-1, 復元時の注意事項

現在のiOSバージョンによって少しやり方が変わるので注意が必要です。

1-1-1, 現在のバージョンがすでにiOS 9.xの場合

iOS 9.xのiBootにはこのバグが存在しているので、リカバリーモードに入れることでそのまま任意のiOS 9.xへ復元できます。

 

1-1-2, 現在のバージョンがiOS 9.x以外の場合

iOS 9.x以外にはこのバグは存在しません。しかし、iOS 9.xのiBSSには同じバグが存在するため、DFU Modeに入れることで任意のiOS 9.xへ復元できます。ただし、SHSHにiBSS blobが含まれている必要があります(普通は含まれているので特に問題ではない。)

 

・iBSS blob

基本事項: iOSの正常な起動にはAPTicketとLLB blobが必須です。

iBSS blobはDFU Modeからの復元に必要です。

デバイスからDumpしたSHSHにはiBSS blobは含まれていないので注意。

 

もし、SHSHにiBSS blobが含まれていないならばこの方法では復元できません。

 

1-2, ipswとツールのダウンロード

ダウングレード/復元したいiOSのFWをダウンロードしておきます。

また、復元ツールである"iDeviceReRestore"もダウンロードしておいてください。

*リンク 

https://downgrade.party

 

1-3, ベースバンドについて

(これはiPod TouchとiPad Wi-Fi onlyモデルには関係ありません。)

iPhone 4以降ではベースバンドは現在Appleから署名されているものにしか復元することができません。もし署名されていないベースバンドに復元しようとすれば、復元は失敗してリカバリーモードとなります。

iDeviceReRestoreでは自動的にベースバンドを最新のベースバンドに復元するため、問題はありません。

*基本的にどのベースバンドでも通信は問題なくできます。

ただし、iOSとBBのバージョンが一致しないことになるので、デバイスを売る際にはきちんと正規のFWで復元しましょう。

 

2, 復元する

iDeviceReRestoreを使って復元します。

iDeviceReRestoreではSHSHはlocalのものを確認し、なければ Cydia Serverに確認します。

なので手元にSHSHを用意するか、Cydia ServerにSubmitしておきます。

ここでは手元にSHSHを用意するということで進めます。

 

SHSHをshshフォルダの中にセットした後、デバイスをUSB接続して、現在のiOSバージョンに応じて適切なモードへいれます(1-1参照)。

 

出来たら、コマンドから

User$ ./idevicererestore -r downloaded.ipsw

(downloaded.ipswは任意のipswの名前)

と実行することで復元が実行されます。

 

特に問題が起きなければ復元は完了し、デバイスが起動します。

お疲れ様でした!