The desktop disaster was not the last of my struggles ðŸ˜
The backstory
I use a Xiaomi 8 phone, and it's no secret to pretty much everyone around me that it's sucked for quite a while. Not because of anything wrong with the OS (MIUI) itself, but the update that happened as a result of trade wars. The Xiaomi phones don't come with Google Play and the related services installed by default, and you need a custom installer to get them. I installed them for everyone when we bought the phones.
About 2 years ago, my phone suddenly stopped behaving nicely with Google appications. First, Maps stopped detecting my GPS and then crashed on open. That was fine, I'll just use Waze. Then a little afterward, Youtube crashed on open as well. Utter nightmare.
My mom is the kind of clueless tech illiterate who installs everything that prompts tell her to install. So the logical conclusion to this is that she has a million running apps spamming for her attention and she updates her phone (same model) whenever it tells her to. She told me her Google Play and everything stopped working after an update. I make sure to disable auto update and avoid updating manually. This has been a fight for a little over 3 years.
I look up this sudden Google Play problem, and there are reports about Google Play being blocked on China ROMs. Don't believe the Feb. 5 official statement. There were no device limitations until the MIUI 12.5 update got pushed. I'm not sure how my family ended up with domestic models instead of international models, since there are 2 phone bands, GSM and CDMA, one of which is needed in the US and the other in China. If we got the US-compatible phone, why is it still using a Chinese ROM? Bullshit.
My phone MIUI was under 12.5, so I thought I was safe. I survive for the longest time without Maps and Youtube. Google Play itself still worked and I could install and update apps.
The plot thickens
Around end of last year, Google Play stops working. The store crashes in the same way as Maps and Youtube on open. I'm not sure what I did that crashed it, maybe Xiaomi fucked around with a <12.5 phone and bricked something. Either way, despite all my attempts to use the custom Google apps installer, so it's just borked. Ok. All my apps still work, I just can't update them. If I NEEED an update, I go on apkpure or apkmirror.
There was a really irritating moment last month in which my shitty laundry payment app forcefully bricked all previous versions due to a "bug" and only allowed usage on the latest version. That was about the biggest inconvenience I had. I also had to uninstall my phone games since they could no longer install new content updates.
Maybe this part was my fault but it's still Xiaomi's fault that I ended up like this anyway
The past Monday, Github sent out an email saying all active repo contributors will now required 2FA. I don't choose SMS because my phone reception occasionally just says no and doesn't give me texts and sends calls to voicemails for days. The only other feasible option is installing an authenticator. This is where the fuckup occurs.
I am trying all of these authenticators from apk mirror sites, Authy, Google Auth, Microsoft Auth, and none of them work. They crash as soon as I try to open them. I lament this to a tech-savvy friend, who then suggests Aegis and Aurora Store. Aurora Store is a custom front end for the Google Play Store that installs apps straight from the Google repo. I'm super excited because that means I can now update apps and use things that don't need Google apps!!! Right?? RIGHT???
So I excitedly update all the apps.
Fast forward to yesterday, when I was meeting up with a friend on the north side of town. I open Waze.
Waze crashes on open.
This will not do. I NEEEED a maps application to get to work. I install OsmAnd as a stop-gap measure. By god, that app is a piece of shit. The map route overlay doesn't match the direction arrows on the HUD, and TTS was broken no matter what I did. The routes take forever to recalculate on a wrong turn and isn't intelligent enough to reroute, suggesting uturns for miles and miles. I manage to drive over with great struggle. Never using OsmAnd again.
This is the final straw. I cannot be without a GPS.
The "nuke from orbit" solution that I finally had to try
The time has come to ditch the shitty Chinese ROM altogether and go for the international ROM.
I am a fucking dumbass and messed up this part. I forgot to backup my contacts and texts, even though I remembered to do so. I cancelled that backup halfway through because I'd run out of space. I transfer files on my PC, then go straight to unlocking the bootloader and wiping everything out before initiating backup again. I took a nap in between, causing me to forget my priorities. This is why you never take breaks between very clutch moments. I am now asking everyone for their phone numbers again.
I looked up EU ROMs from xiaomi.eu before but never really understood flashing. Instructions are also all over the place. In both my flashing failures, I got stuck on the MIUI boot screen. I stayed up until 4am dealing with the soft bricks.
- Unlock the bootloader using instructions here. The official tool is here. Unlocking the bootloader requires a Xiaomi account and waiting for 168 hours. DO NOT IMMEDIATELY UNLOCK AFTER 168 HOURS, MAKE SURE EVERYTHING IS BACKED UP FIRST. Some real bullshit here. I did this part a long time ago when looking into EU ROMs but put it off, so I didn't have to do this part.
- Someone made a really sweet custom v2 flash tool that didn't work for flashing the custom rom, but was really convenient for flashing a stock ROM to unbrick the boot screen stall. Use it for unbricking. It should've worked with TWRP (I keep writing it as TWERP derp) but the new version updates caused the automated stuff to fail.
- Set up ADB from with this guide and use Naked Universal Drivers.
- Download TWRP from this link. It's a custom TWRP made by some Chinese person that works better for MI8. For non-MI8, find the right official images from this list. The right model can be verified by download ADB tools and running
fastboot getvar product
. I used the official TWRP image for dipper (the MI8 codename) and it kinda bricked on me. Hard to say, maybe I did something wrong with the official image. - Download the Xiaomi EU 12.5 release from this link. The file from Sourgeforge should be for the corresponding phone model.
- I REPEAT, BACK THINGS UP BEFORE UNLOCKING THE BOOTLOADER.
The next part is after the bootloader has been unlocked and will potentially brick the phone. I failed flashing the custom ROM twice before succeeding. Credit to this video for giving the right TWRP procedure, which I will transcribe here to save time:
- Get into Xiaomi fastboot by holding down Vol - and Power at the same time. It'll be right when you see a bunny comrade tinkering with an Android. Connect the phone to the computer. There might be a prompt on phone about an RSA fingerprint, accept it.
- In the adb tools directory, run
fastboot devices
and confirm your phone with the right serial number is listed. - Run
fastboot flash recovery twrp.img
. Replacetwrp.img
with whatever the name of the twrp file is. - Run
fastboot boot twrp.img
. This will make the phone boot into TWRP. - In the TWRP main menu, select Wipe > Format Data. Type
yes
into the scary looking prompt, and let it format. Go Back. - In the main menu, pick Reboot > Recovery.
- After a reboot, in the main menu, pick Wipe > Advanced Wipe. Check Data and Cache. Swipe and wipe.
- Go back to the main menu. Select Install.
- There are several ways of transferring the Xiaomi.eu ROM over. If you're still connected to the computer, you can directly transfer the file into the phone storage, then select it from the TWRP folder. You can also plug in a USB drive, then choose Select Storage > The drive > select the file.
- Swipe and flash. This will take a bit, reboot System when done.
- This part will make or break the flash. If it gets stuck, go back into fastboot and use the v2 tool to unbrick it, and repeat. If you get into the start screen, wipe sweat off forehead, the custom ROM is now working!
- The video had a Mi8 SE firmware fix using MiFlashPro. I didn't need this, but reference the video if it's an issue.
Conclusion
My mom went I WANT THIS TOO after I showed her the EU ROM supports Google Play and everything else nice. This is after she just flopped over helplessly with broken Google Play and went "it's fine" even though I said it was possible to flash. She just didn't want to bother with backing everything up to her USB.
She'll probably decline the moment I am ready to physically take her phone and work on unlocking the bootloader, reason being "aiya it's actually fine, I don't need it. I can manage" because she still doesn't want to bother backing files up.
The one thing I didn't do despite some of the tutorials explaining it was rooting with Magisk. Rooting apparently breaks certain banking applications, and it wasn't strictly necessary for flashing custom ROMs. Maybe I'll look into it at a later date.
The second MI9 Lite phone I got for work, that comes with an international ROM and Google Play out of the box, isn't needed now that my main phone has Google Play support again. I could install the work apps on my MI8, but I want to mix my personal stuff with work stuff even less than IT does. I'll probably just leave the MI9 Lite as a barebones work phone.