Install on the realme 8i
Release 1 is coming, not yet available. Nothing here can be installed today.
Open Mapple replaces Android on the phone. Installing it erases all of Android’s data. Back up first, and read the whole guide before you start.
This guide has not been run on a phone yet. The first real install is still to come, so some steps may need a fix. Keep your backup until you have booted Open Mapple and everything you need is back.
What you need
- A realme 8i (
spaced) with an unlocked bootloader. Only the 4 GB model has been tested. - A recovery that runs zips, TWRP or OrangeFox, with adb.
- A Mac with
adbandfastboot, python3, zip and GNU rsync (brew install rsync), and about 20 GB free for iOS (6.2 GB) and the root image (about 12 GB). - An internet connection for iOS: the release script downloads it from Apple (see below).
- The release, or your own build (see Build).
1. Download the release
git clone -b spaced-1.0 https://github.com/open-mapple/mapple_releases
cd mapple_releases
gh release download spaced-1.0 -D assets
Without gh, download the files from the release page into assets/ by hand.
2. Verify your download
Save this line, the release’s public key, as allowed_signers:
Release key not set.
Then check the release’s signature:
ssh-keygen -Y verify -f allowed_signers -I open-mapple-release -n mapple-release -s MANIFEST.sig < MANIFEST
It must print Good "mapple-release" signature for open-mapple-release. Anything else: stop, and don’t use
these files. MANIFEST lists every file of the release with its SHA-256; the script in the next step checks
the signature and every file against it again before it uses them.
3. Put it together on your Mac
./release.sh
The script downloads iOS 16.7.16 (20H392) for the iPhone X from Apple’s servers (about 6.2 GB) and checks it against a pinned
size and SHA-256. Running it is your consent to that download. Open Mapple never ships iOS. If you already
have that file, give it instead: ./release.sh --ipsw iPhone10,3,iPhone10,6_16.7.16_20H392_Restore.ipsw.
It makes the iOS parts from the IPSW and builds the root. The root image needs sudo: the script prints the
command and stops; run it, then run the script again. You end up with out/root.img (for fastboot) and
out/mapple-...-PERSONAL.zip (for the recovery).
The zip and the root contain iOS. They are for you and your phone only: don’t share them.
4. Back up
Back up your personal data from Android itself, while it is running. Photos, messages, app data: use
Android’s own backup, your apps’ exports or a cloud service. A dump of the partitions can’t stand in for this:
userdata is encrypted, and a copy of it is not a backup you can restore from.
Copy your files off the phone:
adb pull /sdcard/ spaced-backup/sdcard
Then, in the recovery, save the partitions you can’t get back any other way. TWRP may ask for your passcode to decrypt the data partition: enter it or cancel, the backup below and the installer work either way.
for p in boot lk lk2 nvram nvdata nvcfg persist protect1 protect2; do
adb exec-out dd if=/dev/block/by-name/$p bs=4M > spaced-backup/$p.img
done
Keep the partition table as well. Check each copy against sha256sum on the phone before you go on.
5. Install
adb reboot bootloaderfastboot flash userdata root.img. From here Android’s data is gone.fastboot reboot recovery- In the recovery:
adb sideload mapple-...-PERSONAL.zip(or install it from an SD card or OTG drive). If TWRP asks for a passcode to decrypt the data partition, enter it or cancel; the installer works both ways. Wait for “Done”. - Reboot.
The zip checks the phone, the root and every block it is about to rely on before it writes anything. It copies the touch and Wi-Fi firmware off your phone, keeps a copy of your boot partition, then puts the boot loader in front of Android’s and reads every write back.
The first boot takes a few minutes. Later boots take about a minute.
If something goes wrong
- Before the zip finished: the phone still boots Android, which formats
userdataand starts empty. Start again from the first install step. - “Root not read: hold Power”, or the phone hangs: try a safe boot. If that fails, flash your boot backup and format data in the recovery (below).
Safe boot
If a boot setting stops the phone from starting, hold Volume Down from the “Booting Darwin / XNU” screen and
keep holding until the loader prints safe boot: it listens for 3 seconds, and letting go early gives a normal
boot. The phone starts on the built-in settings instead of the saved ones, with Wi-Fi and Bluetooth off.
Back to Android
adb reboot bootloader
fastboot flash boot spaced-backup/boot.img
Then boot the recovery and format data. Android starts as new; put your files back with adb push.
Unbricking
If the phone doesn’t reach Android, the recovery or fastboot, use MediaTek’s boot ROM mode.
- With mtkclient: power the phone off, hold both volume keys and plug
it in, then write your backup back, for example
python mtk.py w boot boot.img. On macOS mtkclient needssudoand FUSE-T. - If the phone hangs in LK: hold Power and both volume keys for 30 to 60 seconds with mtkclient waiting.
- After mtkclient, hold Power for 10 to 15 seconds to boot. To get Android back entirely, flash the stock ROM.
- Never flash an LK you haven’t verified.