
AEA OTA/IPSW decryption
Déchiffrement des OTA/IPSW AEA
get_key.py
requestspyhpkeaastuff
aastuff_standalone
get_key.pypip3 install -r requirements.txt
[!NOTE] Il est fortement recommandé d'utiliser un environnement virtuel :
python3 -m venv .env # only needed once source .env/bin/activate pip3 install -r requirements.txt # only needed onceLors des exécutions suivantes, il vous suffit d'activer l'environnement virtuel :
source .env/bin/activate
aastuff/aastuff_standaloneVous pouvez passer deux options au makefile :
DEBUG=1 : compilation debug (impressions de débogage, sans optimisations, informations de débogage)HPKE=1 : compiler avec la prise en charge de HPKE (nécessite macOS 14.0+)make [DEBUG=1] [HPKE=1]
get_key.pyDéroulez (unwrap) la clé de déchiffrement à l'aide des données intégrées dans le blob de données d'authentification d'un AEA.
[!NOTE] Les OTA antérieurs à iOS 18.0 bêta 3 ne contenaient pas de données d'authentification intégrées ; pour ces OTA, vous devez utiliser la clé de déchiffrement fournie avec votre réponse. macOS est l'exception et a toujours eu des données d'authentification intégrées.
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
Pour les IPSW, vous obtiendrez le fichier déroulé (c.-à-d. 090-34187-052.dmg.aea sera déchiffré en 090-34187-052.dmg).
Pour les assets, vous obtiendrez des Apple Archives spécialement conçus (voir la section suivante).
Les assets (y compris les mises à jour OTA) sont construits spécialement et ne peuvent pas être extraits avec les outils standard (aa). Ils peuvent être déchiffrés normalement, ce qui donne un Apple Archive qui n'est pas extractible avec aa (nous appellerons ceux-ci des « asset archives »). aastuff doit être utilisé pour les extraire.
# 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 peut également gérer les asset archives qui ne sont pas déjà déchiffrés :
./aastuff -i <path to AEA> -o <output folder> -k <key in base64>
Exécutez ./aastuff -h pour obtenir des informations complètes sur l'utilisation.
[!NOTE]
aastuff_standaloneoffre plus de fonctionnalités, notamment les listes de fichiers et l'extraction sélective. Exécutez./aastuff_standalone -hpour obtenir des informations complètes sur l'utilisation.
aastuff utilise AAAssetExtractor, des fonctions de libAppleArchive afin d'extraire les asset archives. Cependant, il s'agit d'une API assez dépouillée qui n'offre pas de fonctionnalités comme l'extraction sélective.
aastuff_standalone utilise (principalement) des fonctions standard de libAppleArchive pour extraire les asset archives. Il offre des fonctionnalités telles que les listes de fichiers et l'extraction sélective, mais n'est pas entièrement validé pour tous les asset archives possibles.
Pour l'instant, les deux sont compilés et utilisés de la même manière. Une fois que aastuff_standalone sera entièrement fonctionnel et validé, aastuff sera déprécié.