
AEA OTA/IPSW の復号
get_key.py
requestspyhpkeaastuff
aastuff_standalone
get_key.pypip3 install -r requirements.txt
[!NOTE] 仮想環境を使用することを強くお勧めします:
python3 -m venv .env # only needed once source .env/bin/activate pip3 install -r requirements.txt # only needed once今後は、仮想環境をアクティベートするだけで済みます:
source .env/bin/activate
aastuff/aastuff_standalonemakefile には2つのオプションを渡せます:
DEBUG=1: デバッグビルド(デバッグ出力、最適化なし、デバッグ情報)HPKE=1: HPKE サポート付きでビルド(macOS 14.0+ が必要)make [DEBUG=1] [HPKE=1]
get_key.py でキーを取得するAEA の auth data blob に埋め込まれたデータを使用して、復号キーをアンラップします。
[!NOTE] iOS 18.0 beta 3 より前の OTA には auth data が埋め込まれていませんでした。これらの OTA では、レスポンスとともに提供される復号キーを使用する必要があります。macOS は例外で、常に auth data が埋め込まれています。
source .env/bin/activate # if you used a virtual environment
python3 get_key.py <path to AEA>
aea decrypt -i <path to AEA> -o <decrypted output file> -key-value 'base64:<key in base64>'
# or
./aastuff -i <path to AEA> -o <decrypted output folder> -d -k <key in base64>
# or, to use the network to grab the private key
./aastuff -i <path to AEA> -o <decrypted output folder> -d -n
IPSW の場合、アンラップされたファイルが得られます(例: 090-34187-052.dmg.aea は 090-34187-052.dmg に復号されます)。
アセットの場合、特別に構築された Apple Archive が得られます(次のセクションを参照)。
アセット(OTA アップデートを含む)は特別に構築されており、標準の(aa)ツールでは抽出できません。通常どおり復号すると、aa では抽出できない Apple Archive が生成されます(以下「asset archives」と呼びます)。これらを抽出するには aastuff を使用する必要があります。
# Decrypt if necessary
aea decrypt -i <path to AEA> -o <decrypted asset archive> -key-value 'base64:<key in base64>'
./aastuff -i <decrypted asset archive> -o <output folder>
aastuff は、まだ復号されていない asset archive も処理できます:
./aastuff -i <path to AEA> -o <output folder> -k <key in base64>
完全な使用方法については、./aastuff -h を実行してください。
[!NOTE]
aastuff_standaloneには、ファイル一覧表示や選択的抽出などのより多くの機能があります。完全な使用方法については、./aastuff_standalone -hを実行してください。
aastuff は、asset archive を抽出するために libAppleArchive の関数である AAAssetExtractor を使用します。ただし、これはかなり機能が乏しい API であり、選択的抽出などの機能は提供されません。
aastuff_standalone は、(主に)標準の libAppleArchive 関数を使用して asset archive を抽出します。ファイル一覧表示や選択的抽出などの機能を提供しますが、すべての可能な asset archive に対して完全に検証されているわけではありません。
現時点では、両方は同じ方法でビルドおよび使用されます。aastuff_standalone が完全に機能し検証されたら、aastuff は非推奨になります。