Compiler futurerestore dev ou branche principale sur macOS

FutureRestore est une version piratée d'idevicerestore, permettant de désigner manuellement le SEP et la bande de base pour le processus de restauration. Cette fonctionnalité permet de restaurer des micrologiciels non signés sur les appareils, sous réserve de la disponibilité d'une sauvegarde de l'APTicket (blobs SHSH). De plus, elle peut répliquer toutes les conditions uniques de l'APTicket, telles que l'ECID, l'APNonce et l'ID de la carte.
La dernière version de futurerestore v194 est sortie en 2021. Malgré cela, le logiciel est toujours en développement actif, avec plusieurs branches présentes dans le dépôt GitHub officiel. Les versions les plus récentes sont FutureRestore Dev et FutureRestore main. Cependant, il est important de noter qu'aucune version compilée n'est disponible sur la page de publication. Il est donc conseillé d'apprendre à compiler FutureRestore à partir de son code source.
FutureRestore reste une option viable pour la rétrogradation, permettant aux utilisateurs de revenir, par exemple, d'iOS 16.7.x à iOS 16.6.1 sur les appareils compatibles checkm8 , à condition que les blobs SHSH aient été sauvegardés. Pour exécuter ce processus, il est nécessaire de compiler la branche « dev » de FutureRestore, de compiler « gaster », d'exploiter checkm8 et de définir le nonce en conséquence.

Si vous envisagez de rétrograder iOS avec FutureRestore, se fier uniquement aux blobs SHSH2 de votre iPhone est insuffisant. La compatibilité SEP et bande de base est tout aussi cruciale, car elle détermine le succès du processus de rétrogradation d'iOS. Il est essentiel de noter que toutes les versions d'iOS ne sont pas compatibles avec le firmware en cours d'exécution. Consulter la liste de compatibilité SEP et bande de base pour les rétrogradations FutureRestore peut considérablement augmenter vos chances de réussite. Attention : les rétrogradations depuis iOS 17 ne sont pas possibles.
Comment compiler futurerestore dev sur macOS
Pour compiler futurerestore dev ou la branche principale sur macOS, il est nécessaire d'installer cmake et d'autres composants. Le plus simple est d'utiliser Homebrew Package Manager pour macOS. Si ce n'est pas déjà fait, utilisez cette commande pour installer Homebrew.
Étape 1. Ouvrez l’application terminal et exécutez la commande suivante.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Étape 2. Installez les composants requis via la commande brew.
brew install "openssl" "libpng" "libzip" "libimobiledevice" "autoconf" "automake" "autogen" "libtool" "cmake" "coreutils"
Étape 3. Créez un dossier et ouvrez-le dans l’application Terminal.
mkdir ios-downgrade && cd ios-downgrade
Étape 4. Clonez la branche futurerestore dev ou principale dans le nouveau dossier.
git clone https://github.com/futurerestore/futurerestore.git --branch dev --recursive
Étape 5. Ouvrez le dossier futurerestore dans l’application terminal.
cd futurerestore
Étape 6. Vérifiez l’architecture de votre système en exécutant la commande uname.
uname -m
Étape 7. Depuis le CDN de Cryptic , cliquez sur x86_64 ou arm64, en fonction de votre architecture, et téléchargez le fichier macOS_arm64_Release_Latest.tar.zst.
curl -C - -0 -o macOS_x86_64_Release_Latest.tar.zst "https://cdn.cryptiiiic.com/deps/static/macOS/x86_64/macOS_x86_64_Release_Latest.tar.zst"
Étape 8. Extrayez le fichier macOS_arm64_Release_Latest.tar.zst.
zstd -d macOS_arm64_Release_Latest.tar.zst
Étape 9. Ouvrez le dossier dep_root avec la commande cd.
cd dep_root
Étape 10. Extrayez l’archive macOS_arm64_Release_Latest.tar dans le dossier réel.
tar -xvf ../macOS_arm64_Release_Latest.tar
Étape 11. Naviguez vers le haut dans la hiérarchie des dossiers jusqu'à futurerestore.
cd ..
Étape 12. Compilez futurerestore dev ou la branche principale. Modifiez -DARCH= si nécessaire.
./build.sh -DARCH=x86_64 -DNO_PKGCFG=1
Étape 13. Vérifiez que vous disposez d’un binaire futurerestore dans cmake-build-release/src.
Commandes disponibles
Usage: futurerestore [OPTIONS] iPSW
General options:
-h, --help Shows this usage message
-t, --apticket PATH Signing tickets used for restoring
-u, --update Update instead of erase install (requires appropriate APTicket)
DO NOT use this parameter, if you update from jailbroken firmware!
-w, --wait Keep rebooting until ApNonce matches APTicket (ApNonce collision, unreliable)
-d, --debug Show all code, use to save a log for debug testing
-e, --exit-recovery Exit recovery mode and quit
-z, --no-restore Do not restore and end right before NOR data is sent
-c, --custom-latest VERSION Specify custom latest version to use for SEP, Baseband and other FirmwareUpdater components
-g, --custom-latest-buildid BUILDID Specify custom latest buildid to use for SEP, Baseband and other FirmwareUpdater components
-i, --custom-latest-beta Get custom url from list of beta firmwares
-k, --custom-latest-ota Get custom url from list of ota firmwares
Options for downgrading with Odysseus:
-3, --use-pwndfu Restoring devices with Odysseus method. Device needs to be in pwned DFU mode already
-4, --no-ibss Restoring devices with Odysseus method. For checkm8/iPwnder32 specifically, bootrom needs to be patched already with unless iPwnder.
-5, --rdsk PATH Set custom restore ramdisk for entering restoremode(requires use-pwndfu)
-6, --rkrn PATH Set custom restore kernelcache for entering restoremode(requires use-pwndfu)
-7, --set-nonce Set custom nonce from your blob then exit recovery(requires use-pwndfu)
-7, --set-nonce=0xNONCE Set custom nonce then exit recovery(requires use-pwndfu)
-8, --serial Enable serial during boot(requires serial cable and use-pwndfu)
-9, --boot-args Set custom restore boot-args(PROCEED WITH CAUTION)(requires use-pwndfu)
-a, --no-cache Disable cached patched iBSS/iBEC(requires use-pwndfu)
-f, --skip-blob Skip SHSH blob validation(PROCEED WITH CAUTION)(requires use-pwndfu)
Options for SEP:
-0, --latest-sep Use latest signed SEP instead of manually specifying one
-j, --no-rsep Choose not to send Restore Mode SEP firmware command
Options for baseband:
-1, --latest-baseband Use latest signed baseband instead of manually specifying one
-2, --no-baseband Skip checks and don't flash baseband
Only use this for device without a baseband (eg. iPod touch or some Wi-Fi only iPads)