This article describes the installation of a custom ROM without Google Services on an Xiaomi Redmi 4X
Installing a custom ROM on your Android devices has a lot of advantages such as being able to get root. This allows ad-blocking, modifying how the system works, etc.
To install a custom ROM you will need:
- a smartphone with unlocked bootloader (The Redmi 4X may be unlocked using the MiFlash Tool)
- a custom rom (I am using Resurrection Remix on my Redmi 4X Santoni (version with Qualcomm Snapdragon processor))
- a custom recovery (such as TWRP, has to be compatible with the Android version of your custom ROM)
- a PC from which you can download and transfer the custom stuff
- ADB/fastboot (I am using Minimal ADB and fastboot which is kind of a stripped down Android SDK package including only the most needed stuff)
- ADB drivers for your smartphone (usually, the smartphone vendor will provide these)
Procedure:
- Install ADB driver and ADB/fastboot
- Open command prompt (cmd.exe) and cd into Minimal ADB and fastboot directory
- Switch your phone into fastboot mode (manufacturer dependent): on the Redmi 4X, switch off the phone, then hold Volume Down + Power
- In the console:
fastboot devices
will show all connected fastboot devices
- Install custom recovery:
fastboot flash recovery twrp-filename-of-recovery.img
- Boot into custom recovery:
fastboot boot twrp-filename-of-recovery.img
- In the recovery: Wipe -> Perform factory reset (will wipe Data, Cache and Dalvik)
- Copy the custom recovery
adb push custom-rom.zip /sdcard/
- In the recovery: Install -> /sdcard/custom-rom.zip
Follow up:
Since Resurrection Remix comes without Google Apps or any browser, we will need to install a store.
- Download f-droid
- Enable Dev Options: In Android Settings -> System -> About Phone -> Click Build number 7 times
- In Android Settings -> System -> Developer Options -> Enable Android debugging
- In the console:
adb install fdroid.apk
To install an alternative to Googles proprietary services, add the following repository in f-droid:
https://microg.org/fdroid/repo
Install from FDroid:
- MicroG Services Core
- MicroG Services Framework Proxy
- Install a Nlp backend of your liking: for example Déjà Vu Location Service
- in microG settings, use self check and grant permissions
- activate the location provider
For more information on microG as a near full Google Service replacement see here.
I extracted the apks mentioned using 7-Zip and the lzip plugin (extract to folder "Formats" in the 7-Zip program folder).
In the console, I pushed them to /system/apps/
adb root
adb shell
su
mount -o rw,remount,rw /system (mount -ro remount,rw /system)
exit
adb push GoogleCalendarSyncAdapter /system/app
adb push GoogleContactsSyncAdapter /system/app
adb shell
mount -o ro,remount,ro /system
exit
For full signature spoofing, install NanoDroid.
I used the NanoDroid-microG package as a Magisk module since the Resurrection Rom is odexed and therefore not patchable with NanoDroid-patcher.
The following config file (.nanodroid-setup) was placed in /sdcard/
nanodroid_play=2
nanodroid_overlay=0
nanodroid_mapsv1=1
nanodroid_gsync=1
nanodroid_swipe=1
nanodroid_forcesystem=0
nanodroid_nlpbackend=3
From top to bottom:
- play = Yalp store and Fake store
- overlay = do not debloat, since there is no bloatware
- mapsv1 = Maps v1 API
- gsync = install Google Adapters
- swipe = install swipe library for swipe keyboard support
- forcesystem = do not force system install (since odexed)
- nlpbackend = Déjà Vu and Mozilla NLP backend