A12チップの導入により、Appleはノンスの生成、BLOBの保存、そして復元全般に関するセキュリティを強化しました。基本的なプロセスは変わりませんが、「ノンスエンタングルメント」(本当にそうです)と呼ばれる機能により、有効なBLOBを保存するにはいくつかの追加の手順を踏む必要があります。このチュートリアルでは、その方法を説明します。
まず、A12世代以前のデバイス(iPhone XS、XRなど以前)をお持ちの場合は、この ガイドに従う必要はありません。プロセスはよりシンプルなので、BLOB保存に関するメインガイドを参照してください。
次に、 A12以降のデバイス (iPhone XS、XR、そして今後Appleがリリースするすべての新しいデバイス)をお持ちの場合は、 必ずこのガイドに従ってください。従わない場合、保存したBLOBは無効になります。
これはメインガイド に加えて使用する補足ガイドです。A12+ユーザーは、このガイドから始めて手順を完了し、その後 メインガイドに進んでプロセスを完了する必要があります。
このガイドは、お持ちのA12+デバイスごとに1回だけ実行してください。このガイドで取得したデバイス情報は、今後の参照用に保存してください。そうすれば、今後はメインガイドでこれらの情報を入力するだけでBLOBを保存でき、このガイドで説明されている手順を繰り返す必要がなくなります。
ここではMac、Linux、Windowsを取り上げていますが、サポートを提供できるのはMacのみです。MacとLinuxは公式の同一のツールリリースを使用しているため、可能な限りMacとLinuxを推奨します。
最後に、このガイドを完了するには、A12+デバイスのジェイルブレイクが必要です。ジェイルブレイクされていない場合、発見した値は役に立ちません。このガイドを使用して必要な値を見つけたら、将来のBLOBを保存するためにジェイルブレイクを維持する必要はありません。デバイスがジェイルブレイクされていない場合でも、このガイドで発見した値(将来の参照用に保存します)を使用して、今後有効なBLOBを保存できます。
繰り返しになりますが、 正しい情報を収集するためには、このガイドに従う時点で、A12+デバイスを少なくとも1回はジェイルブレイクしておく必要があります。それでは始めましょう…
前提条件…
Linux
aptなどの任意のパッケージ マネージャーを使用して、 libimobiledevice、libirecovery 、およびそれらの依存関係をインストールします 。
Windows
著名なTweak開発者Tateu氏が、Windows用に必要なツールをまとめたバージョンをこちらからダウンロードできます。ただし、私はこれらのツールをテストしておらず、Windowsでのサポートは提供できません。また、お使いのコンピュータにiTunesがインストールされている必要があります。
Mac
ターミナル を開き 、次のコマンドを実行します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
これにより、Mac に Homebrew がインストールされます。
brew update
これにより、Homebrew が最新のコンテンツに更新されます。
brew install --HEAD usbmuxd
brew install --HEAD libimobiledevice
brew install libirecovery
これらは、デバイスと対話し、デバイスから必要な情報を抽出するために必要なコンポーネントをインストールします。
このガイドに必要なツールのインストール、および/またはHomebrew(Macのみ)のインストールに関するエラーは、このガイドの範囲外であり、ユーザー自身で解決する必要があります。このガイドは、Homebrew(Macのみ)、iTunes(Windowsのみ)、および必要なツール/バイナリ(全OS)のインストールが正常に完了していることを前提としています。
デバイスの準備
次に、デバイスに既知のジェネレータを設定する必要があります。これには脱獄が必要です。A12以降のデバイスでは、設定されたジェネレータごとに異なるApnonceが生成されます。保存したBLOBは、その特定のApnonceが有効である必要があります。そのため、Apnonceの作成にどのジェネレータを使用したかを把握しておく必要があります。そうしないと、後日BLOBを復元する際に使用できなくなります。
したがって、デバイスにジェネレータを設定し、それをメモし、ジェネレータが生成する一意の Apnonce を見つけてメモし、これらの値のペアのみを使用して将来の BLOB を保存し、将来それらの BLOB を使用してデバイスを復元します。
既知のジェネレーターを設定する方法は、使用しているジェイルブレイクによって異なります。
unc0ver/Odyssey/Chimera
脱獄アプリ自体からジェネレータを設定できます。脱獄アプリを開き、設定ページを開いてジェネレータを入力してください。ジェネレータの設定を完了するには、「適用」などのボタンをクリックするか、デバイスをリスプリングする必要があるかもしれませ ん。
その他:
古い脱獄アプリや言及されていない脱獄アプリでは手順が異なる場合があり、自分で設定方法を調べる必要があります。一般的に、これらのアプリには、スタンドアロンのTweak、サイドロードの「ジェネレーターセッター」アプリ、または脱獄アプリ自体を使ってジェネレーターを設定する方法が用意されています。
checkra1n (A11 以下のみ)
次のリポジトリをデバイスに追加します。
https://halo-michael.github.io/repo
「Generator Auto Setter」というパッケージをインストールしてください 。インストールしたら、設定 アプリの「Tweaks」に移動し、「Generator Auto Setter」を見つけて、お好みのジェネレーターを入力し、 「Set」を選択してください。

どのジェネレータを設定するかは重要ではないことに注意してください。重要なのは 、対応する Apnonce を見つける前に、どのジェネレータを設定したかを知っておく必要があることです。ジェネレータはペアになっており、ジェネレータを変更すると Apnonce も変わります。次の手順で見つける Apnonce を作成したジェネレータを知っておく必要があります。多くのジェネレータ セッターはデフォルト値を使用します。たとえば、unc0verとGenerator Auto Setter は どちらもデフォルトで0x1111111111111111を使用します。ジェネレータ セッターでは異なる値が使用される場合があります。ジェネレータ セットをデフォルト値 (推奨) のままにすることも、変更することもできます。 設定した内容を知っていて、それを書き留めておけば問題ありません。
ジェイルブレイクされたデバイスのジェネレーターを 0x111111111111111 などの既知の値に設定し、デバイスをコンピューターに接続したら、続行できます。
覚えておいてください:ジェネレータの値を把握し、将来のためにどこか安全な場所(テキストドキュメントなど)にメモしておいてください。BLOB を保存するために使用した Apnonce を作成するために使用したジェネレータが分からなくなると、BLOB は復元に使用できなくなります。
必要な価値観を見つける
必要なツールをコンピュータにインストールし、A12+デバイスに既知のジェネレーターを設定し、デバイスをコンピュータに接続しました。デバイスとコンピュータが連携できるように、デバイスからコンピュータを「信頼」していることを確認してください。これは、特定のコンピュータごとにデバイスごとに1回だけ行う必要があります。iTunes、Finder、Apple Configurator、またはデバイスの画面でパスコードを入力する方法で実行できます。
最後に、 前の手順でジェネレーターを設定してから次の手順を完了するまでの間、デバイスを再起動したり、脱獄を解除したりしないでください。デバイスを再起動すると、ジェネレーターはOSによってランダム化され、次の手順が意味をなさなくなります。次の手順を完了するには、既知のジェネレーターが配置されている必要があります。そのため、上記のようにジェネレーターを設定し、このガイドの残りの部分にすぐに進んでください。
ターミナルウィンドウを開きます。Windowsでは、以下のコマンドを実行する前に、ダウンロードしたバイナリが保存されている場所に移動する必要があります。MacまたはLinuxでこれらのコマンドが失敗する場合は、 先頭にsudo を付けて実行してみてください。以下のコマンドを入力してください。
irecovery
このコマンドを実行すると、オプションのリストが表示されます。「コマンドが見つかりません」などのメッセージが表示された場合は、先に進めないでください。「前提条件…」セクションに戻り、 libirecoveryのインストールを修正してください 。修正しないと、デバイスが後でリカバリモードから抜けられなくなります。
次のように入力します:
ideviceinfo
接続されたデバイスに関する詳細な情報リストが表示されます。HardwareModel (ボードの設定)、ProductType(デバイスモデル)、UniqueDeviceID (次のステップで必要なUDID)の値をメモしておいてください。
これらの値は、ジェネレーターを保存したテキストドキュメントなど、安全な場所にメモしておいてください。後でBLOBを保存するたびに必要になります。
次のように入力します:
ideviceenterrecovery UDID
UDIDを、前の手順でメモしておいたUniqueDeviceID (数字と文字の長い文字列)に置き換えてください。デバイスがリカバリモードで再起動し、画面にそれを示すグラフィックが表示されます。
次のように入力します:
irecovery -q
デバイスの別の値のリストが表示されます。ECID (これはデバイスのECIDで、BLOBを保存するたびに必要になります)とNONC (これは非常に 重要なApnonceで、先ほど設定したジェネレーターと一意にペアになっています)の値をメモしてください。
これらの値は、ジェネレータ、ハードウェアモデル、製品タイプを保存したテキストドキュメントなど、安全な場所にメモしておいてください。後でBLOBを保存するたびに必要になります。
最後に、次のように入力します。
irecovery -n
これにより、デバイスが再起動してリカバリモードから復帰します。物理ボタンでデバイスを再起動しないでください。必ずリカバリモードに戻ってしまいます。代わりにこのコマンドを使用してください。
仕上げ
これでデバイスは安全に通常モードに戻り、デバイスの値のリストが作成されます。このリストは永久に安全に保管されます。リストには以下の情報が含まれています。
- ボードの構成(先ほど HardwareModelとしてメモしたもの)
- 正確なデバイスモデル(前に ProductTypeとして書き留めたもの)
- ECID(0x…で始まる英数字の文字列)
- 既知のジェネレータ(開始時に設定、例:0x1111111111111111)
- Apnonce(長い英数字の文字列。上記で設定したジェネレーターに対してのみ有効です)
これで、A12+デバイス用の.shsh2 BLOBを保存する準備が整いました。今後、このデバイス用のBLOBを保存するために、このガイドを繰り返す必要はありません。BLOBを保存するためにJailbreakを維持する必要もありませんが、将来復元する際にはJailbreakが必要になります。今後BLOBを保存するには、保存した値のリストをBLOB保存ツールに入力するだけです。さあ、早速試してみましょう…
今すぐ(そして今後A12+デバイス用にBLOBを保存する際はいつでも)、TSS Saverを使ったBLOB保存の一般ガイドに進んでください。そのガイドのステップ5に進み 、プロンプトが表示されたらここで収集した値を入力してください。頑張ってください!