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 JailbreakiOS 9.3.4まで。
64bit Untethered JailbreakiOS 9.1まで。

futurerestoreを使って32bit(A5/A6)のiOSデバイスをダウングレードする

A4デバイスまではBootRom (Limera1n) Exploitが存在したためダウングレードやバージョンを保っての復元が可能でした。

A5以降ではBootRom Exploitは修正されたためこれらは使用できなくなりましたが、SHSHを取得しているなら、kloaderを利用して復元することができます。

 

 

 

※注意

A6デバイスでiOS 10.3.x(10.3.3)に復元・インストール後にiOS 9以下のバージョンにダウングレードした際に、アクティベーションエラーを起こすため、使えなくなるという報告があります。(ただしiOS 10.3.3に再度復元すれば使える)

iOS 9を維持している場合は問題ないようなので、iOS 9以下を維持したい場合はこの方法を使い、iOS 9を維持するようにしましょう

 

*内容だけが知りたい方は『1, 対応デバイス』から見てください。

 

復元時の動作

iOS 5以降はAPTicketが導入されたことで復元時にNonceを検証するようになったため、SHSHを保存したとしても、そのまま利用することはできません。

(参考: http://api.tihmstar.net/prometheusSlides.pdf

>Normal Restore (iOS 5~, 32bit)

 

~A4デバイスではLimrea1n Exploitを使って復元時の署名認証自体をbypassしているため、保存しておいたSHSHを使って復元ができます。

>Limera1n (~A4)

 

 

A5, A6デバイスではBootRomやiBoot Exploitはありませんが、kloaderを利用することで、A5/A6(X)でも復元時の署名認証をbypassできます。

>>kloader (32bit only): Image loader for the kernel, bootstraps custom image in RAM.

 

 

kloaderを使った復元には仕様上、Restore Mode (復元モード) を起動させるのに必要なもの(iBSS, iBEC, DeviceTree, Restore RamDisk, KernelCache, (AppleLogo))をdecrypt(復号化)する必要があります。

 

 

また、現在のOSがiOS 9の場合はiBootが現在のNonceに関係なく有効なAPTicketを許可し、復元が実行されるため、Recovery Modeに入れるだけでiOS 9にのみ脱獄なしで復元できます。

このバグはiBSSにも存在するため、有効なiBSS blobを持っていればDFU ModeにすることでどのバージョンからでもiOS 9に復元することができます。

 

  

1, 対応デバイス

 

・iPhone

iPhone 4S, iPhone 5, iPhone 5c

・iPad

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

・iPod Touch

iPod Touch (5th generation)

 

2, 条件

有効なSHSH blobsが保存されていること。

バイスが脱獄済みであること。

*ただし、iOS 9に復元する場合のみ脱獄は不要です。そのばあいは「」、またはこの記事の「」をご覧ください。

 

3, 復元する手順

3-1, iOSデバイス側の動作

iOSデバイスをkloaderを使いkDFU Modeに入れる必要があります。

tihmstar氏のkDFU.appを使うと簡単にkDFU Modeに入ることができるので、これを使うと良いと思います。

Repository: http://repo.tihmstar.net

CydiaからRepositoryの追加を行い、kDFU.appをインストールし、実行してください。

その後、デバイスをUSB接続します

 

3-2, PC側の動作

futurerestoreを使用します。以下からダウンロードしておいてください。

直リンク: http://api.tihmstar.net/builds/futurerestore/futurerestore-latest.zip

 

futurerestoreでは自動で必要な作業をしてくれるため、特に複雑な作業はいりません。

また、ベースバンドは最新のものになるため注意してください。

また、ダウングレードするiOSファームウェアAppleからダウンロードしましょう。

 

iOSデバイスがkDFU Modeに入ったら以下のコマンドをターミナルで実行します。

User$ ./futurerestore --use-pwndfu -t ticket.shsh --latest-baseband ios.ipsw

 

*iPod Touch, iPad(wi-fi only)のみ:

User$ ./futurerestore --use-pwndfu -t ticket.shsh --no-baseband ios.ipsw

デバイスが復元モードとなり、復元が完了すれば成功です。お疲れ様でした!

 

4, 脱獄せずに復元する(iOS 9のみ)

iOS 9.xはiBootにAPTicket検証時のバグがあるため、脱獄せずにSHSHを使い、復元できます。

以下の記事と内容は同じです。わかりやすい方を利用するといいと思います。

 

4-0, 注意点

iOS 9.xで、APTicketにNonceが含まれていないことが条件です。

この条件を満たしていない場合は復元できません。

 

Nonceが含まれているかどうかはaxi0mX氏の"apticket-nonce-checker"で確認可能です。

 

使用方法

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

(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

 

のように表示されます。

 

*SHSHの種類を確認する

この方法ではErase, UpdateのSHSHでなければ使用できません。

TinyUmbrellaでSHSHを取得していた場合は、一応目を通しておくと良いと思います。

※普通はEraseのSHSHが取得されています。

 

4-1, iOSデバイス側の動作

現在のiOSバージョンがiOS 9の場合はiOSデバイスをRecovery Modeに、それ以外の場合はDFU Modeにします。

4-2, PC側の動作

futurerestoreを使用します。以下からダウンロードしておいてください。

直リンク: http://api.tihmstar.net/builds/futurerestore/futurerestore-latest.zip

 

ベースバンドは最新のものになるため注意してください。

 

iOSデバイスをDFU or Recovery Modeに入れたら以下のコマンドをターミナルで実行します。

User$ ./futurerestore -t ticket.shsh --latest-baseband ios.ipsw

 

*iPod Touch, iPad(wi-fi only)のみ: 

User$ ./futurerestore -t ticket.shsh --no-baseband ios.ipsw

  

デバイスが復元モードとなり、復元が完了すれば成功です。お疲れ様でした!