diosra2’s blog

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

iOSの署名状況(β)

iPhone 5sなら脱獄なしでもiOS 11.3.1維持が可能?準備をしておこう。

iPhone 5s(と、おそらくiPad Air)ではこの前の通り、DFU Loopさせてshsh2のnonceと適合させて復元することができます。なにやら、Ian Beer氏がiOS 11.3.1向けに有用そうなものを来週リリース予定とのことなので、最初に準備を行っておきましょう。

この手法を取り入れることで、iOS 11.3とiOS 11.xのSEP互換性が存在していればという条件付きですが、脱獄なしでもiOS 11.3.1を維持できるようになります。

 

事前準備1

DFU ModeのNonceを収集します。もうすでに行っている方は不要です。

必要なもの

・Mac

・igetnonce

・デバイス

・時間と根気 

 

手順

igetnonceを使用し、Nonceを力技で収集します。まず、igetnonceをXcodeでビルドしてください。

(igetnonceではなくても、DFU ModeのApNonceが取得できればいいです。)

できたら、デバイスをMacにDFU Modeで接続してください。Macがデバイスを認識したら、Terminalでigetnonceを実行します。

User$ ./igetnonce

Version: undefined commit - undefined version

Identified device as n51ap, iPhone6,1 in dfu mode... 

ecid=xxxxxxxxxxx

ApNonce=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

上のようになったかと思います。(SepNonceは不要なので省いています。)

ApNonce=~の部分にある、20byte(40桁)のNonceを記録してください。

記録したら、デバイスを強制再起動し、再度DFU Modeに入れてください。そして同じようにApNonceを記録し、強制再起動、DFU Mode、、、と続けてNonceを収集します。

30分から1時間くらい行うとかなり収集できると思います。その中でも多かったNonceをまとめておきましょう。後述しますが、Nonceは多いほうがいいです。(Nonceを多く記録するとshsh2取得の手間が増えますが、それ以上に後の動作での手間が少なくなります。)

最低でも5つ程度は確保しておきましょう。

私の環境では30個保存したところで99%一致するようになりました。

被らなければこの手法は使えません。 

 

事前準備2

Nonceを収集してもshsh2がなければ意味がないので、先ほど得たNonceのshsh2を取得します。

用意するもの

・Mac or linux

・tsschecker: tsschecker-latest.zip

1, 準備

まず、iTunesでECIDを確認します。

(igetnonceで確認することもできるのでそっちでも良いです。)

画像の赤枠のところを 何度かクリックして、ECIDを表示させ、確認します。

2, Model Codeを取得

日本のiPhone 5s(iPhone6,1)なら"n51ap"です。

SysSecInfoなどで確認できます。

*以下の画像はiPhone 5のものです。

または、redsn0wを開きます。

Extras -> Even more -> Identify

  

いろいろ出てきますが、"HardwareModel"というのがそれにあたります。

この場合はn71apです。

 

3, SHSHの取得 

確認できたら、tsscheckerでshsh2を取得します。

オプション一覧

-i : iOSのバージョンを指定します。

-e : ECIDを指定します。

-s : shsh2を保存します。

--boardconfig : デバイスのモデルを指定します。

--apnonce : apnonceを指定します。

 

まず、通常通りに保存します。通常通りですとgeneratorを生成してくれます。脱獄時にはgeneratorを使ってNonceをセットするほうが圧倒的に楽なので、これは行っておきましょう。

ECIDが16進数の場合は頭に0xをつけてください。(例: 表示が"5F"だったなら"0x5F")

User$ ./tsschecker --boardconfig [Model_Code] -e [ECID] -i [VERSION] -s

shsh2が保存できれば、このようなメッセージが表示されます。

iOS 11.3.1 for device iPhone6,1 IS being signed!

~.shsh2という名前のファイルが生成されると思うので、そのファイルがgeneratorを含むshsh2となります。

 

続いて、ApNonceを指定したshsh2を取得します。 

先ほどのコマンドに"--apnonce"を追加し、続けて先ほど取得したNonceを設定してshsh2を取得します。

User$ ./tsschecker --boardconfig [Model_Code] -e [ECID] -i [VERSION] -s --apnonce [NONCE]

shsh2が保存できれば、このようなメッセージが表示されます。

iOS 11.3.1 for device iPhone6,1 IS being signed!

[ECID]_[デバイス名]_[Model_Code]_[iOS]-[Build]_[ApNonce].shsh2という名前のファイルが生成されると思うので、そのファイルが指定したApNonceを含むshsh2となります。

これで準備は完了です。

 

復元手順

iOS 11.3.1の署名が終了次第追加します。

 

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