Compileer futurerestore dev of hoofdbranch op macOS

FutureRestore is een gehackte versie van idevicerestore en biedt de mogelijkheid om handmatig SEP en Baseband toe te wijzen voor het herstelproces. Deze functionaliteit maakt het mogelijk om niet-ondertekende firmware op apparaten te herstellen, afhankelijk van de beschikbaarheid van een back-up van het APT-ticket (SHSH Blobs). Bovendien kan het alle unieke voorwaarden van het APT-ticket repliceren, zoals ECID, APNonce en Board ID.
De nieuwste versie van futurerestore v194 werd uitgebracht in 2021. Desondanks wordt de software nog steeds actief ontwikkeld, met verschillende branches in de officiële GitHub Repository. De meest recente versies zijn FutureRestore Dev en FutureRestore main. Het is echter belangrijk om te weten dat er geen gecompileerde versies beschikbaar zijn op de releasepagina. Daarom is het raadzaam om te leren hoe je FutureRestore kunt compileren vanuit de broncode.
FutureRestore blijft een haalbare optie voor downgraden, waardoor gebruikers bijvoorbeeld kunnen teruggaan van iOS 16.7.x naar iOS 16.6.1 op checkm8 -compatibele apparaten, mits SHSH-blobs zijn opgeslagen. Om dit proces uit te voeren, is het noodzakelijk om de 'dev'-branch van FutureRestore te compileren, 'gaster' te compileren, checkm8 te exploiteren en de nonce dienovereenkomstig in te stellen.

Wanneer u overweegt iOS te downgraden met FutureRestore, is het niet voldoende om alleen op SHSH2-blobs voor uw iPhone te vertrouwen. Even cruciaal is de SEP- en basisbandcompatibiliteit, aangezien deze het succes van het iOS-downgradeproces bepalen. Het is belangrijk om te weten dat niet alle iOS-releases compatibel zijn met de huidige firmware. Het raadplegen van de SEP- en basisbandcompatibiliteitslijst voor FutureRestore- downgrades kan uw kans op succes aanzienlijk vergroten. Houd er rekening mee dat downgrades vanaf iOS 17 niet mogelijk zijn.
Hoe je futurerestore dev op macOS compileert
Om futurerestore dev of de hoofdbranch op macOS te compileren, is het vereist om cmake en enkele andere componenten te installeren om het te laten werken. De eenvoudigste manier om dit te doen is met behulp van Homebrew Package Manager voor macOS. Als je dit nog niet hebt gedaan, gebruik dan deze opdracht om Homebrew te installeren.
Stap 1. Open de terminal-app en voer de volgende opdracht uit.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Stap 2. Installeer de vereiste componenten via het brouwcommando.
brew install "openssl" "libpng" "libzip" "libimobiledevice" "autoconf" "automake" "autogen" "libtool" "cmake" "coreutils"
Stap 3. Maak een map en open deze in de terminal-app.
mkdir ios-downgrade && cd ios-downgrade
Stap 4. Kloon de futurerestore dev- of hoofdbranch naar de nieuwe map.
git clone https://github.com/futurerestore/futurerestore.git --branch dev --recursive
Stap 5. Open de map futurerestore in de terminal-app.
cd futurerestore
Stap 6. Controleer uw systeemarchitectuur door de opdracht uname uit te voeren.
uname -m
Stap 7. Klik in het CDN van Cryptic op x86_64 of arm64, afhankelijk van uw architectuur, en download het bestand 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"
Stap 8. Pak het bestand macOS_arm64_Release_Latest.tar.zst uit.
zstd -d macOS_arm64_Release_Latest.tar.zst
Stap 9. Open de map dep_root met de opdracht cd.
cd dep_root
Stap 10. Pak het archief macOS_arm64_Release_Latest.tar uit naar de daadwerkelijke map.
tar -xvf ../macOS_arm64_Release_Latest.tar
Stap 11. Navigeer omhoog in de mappenstructuur naar futurerestore.
cd ..
Stap 12. Compileer futurerestore dev of hoofdbranch. Wijzig -DARCH= indien nodig.
./build.sh -DARCH=x86_64 -DNO_PKGCFG=1
Stap 13. Controleer of er een binair futurerestore-bestand aanwezig is in cmake-build-release/src.
Beschikbare opdrachten
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)