【iPhone】nonceEnablerを使ってiOS 9.3.3から10.1.1へアップグレードする方法

今回はiPhone 6を使ってiOS 9.3.3から10.1.1(14B150)にアップグレードする方法を紹介します。
前回の記事「futurerestore – Prometheusを使ったiOSのダウングレード・アップデートについて」を把握している必要があるので、事前に確認して下さい。

ダウングレード・アップグレードに必要なもの及び環境

記事執筆時点での署名されているiOSバージョンは「iOS 10.2」のため「iOS 10.2のIPSW」が必要になります。また、iOS 10.1.1が署名されていた頃のtsscheckerにはバグが有り、iOS 10.1.1のshsh2ファイルをiPhone 6sで取得してもデバイスモデルがN61APとなり、利用できないものとなっています。
iOS 10から一つのIPSWに複数のデバイスが含まれたのも原因です。

例えば、「iPhone_4.7_10.2_14C92_Restore.ipsw」の中にはiPhone 6 (N61AP)、iPhone 6s (N71AP:Samsung)、iPhone 6s (N71mAP:TSMC)の3つのモデルが含まれています。
現在のtsscheckerは、「–boardconfig」を使ってそれぞれ別に保存するようになっています。

デバイスモデル(CPU)の確認は以下のアプリで行なえます。

Battery Memory System Status Monitor価格: 無料 サイズ: 5.1 MB
カテゴリ: ユーティリティ, 仕事効率化
+ iPhone/iPadの両方に対応 (122件の評価)




1.CydiaからOpenSSHをインストールする

2.task_for_pid_0を有効にする
Luca Todesco氏が作成した「jbme」で有効にできます(通常のPanguアプリではできません)


3.nonceEnablerをデバイスに転送する
scp nonceEnabler [email protected]:
IPはWi-FiのIPでパスワードはデフォルトの場合「alpine」最後の「:(コロン)」を忘れないように。
4.デバイスでnonceEnablerを実行する
ssh [email protected]
./nonceEnabler
5.nvramコマンドでshsh2 (no-apnonce)で生成された値を書き込む
1)拡張子.shsh2を.shsh2.plistにリネームし、Xcodeで開く
2)generatorの値をコピー

3)以下のコマンドでnvramに書き込む

nvram com.apple.System.boot-nonce=generatorの値
4)確認

nvram -p
exit

futurerestoreを使用した復元

基本的には前回の記事と同様の方法です。

復元するには署名されているiOSのIPSWを利用するので、iPhone_4.7_10.2_14C92_Restore.ipswをiPhone_4.7_10.2_14C92_Restore.zipにリネームし、展開します。
BuildManifest.plistからデバイスモデルを確認し、それに合ったベースバンドファイル(Mav10-5.32.00.Release.bbfw)、Sepファイル(sep-firmware.n61.RELEASE.im4p)を抜き出します。
※括弧のファイルはiPhone 6 iOS 10.2のもの

それぞれ同じディレクトリに置いたら、以下のコマンドを実行します。

./futurerestore_macos -t iPhone7,2_10.1.1-14B150.shsh2.plist -b Mav10-5.32.00.Release.bbfw -p BuildManifest.plist -s sep-firmware.n61.RELEASE.im4p -m BuildManifest.plist -w iPhone_4.7_10.1.1_14B150_Restore.ipsw
ポイントはnonceEnablerでshsh2にあったnonceに設定したこと、ダウングレード・アップグレードしたいIPSWファイルを指定することです。

ビデオでの操作方法

まとめ


無事に現在署名されていないiOS 10.1.1へ復元できましたが、iOS 10.2と10.1.1ではSEPに互換性がないためTouch IDが働きませんでした。

また、iOS 10.1/10.1.1が署名されていた頃のtsscheckerのバグにより、iPhone 6では復元できましたが、iPhone 6sでは不可能でした。

Touch IDに関しては、iOS 10.2など正規の方法で復元すれば治りますが、もしiOS 10.2以降でJailbreak出来るようになった時に、そのバージョンでダウングレードした場合、正常に働くかは不明なところです。

今回はあくまでもテストで行ってみたので、実際には試さないで下さい。