So my new Xiaomi Redmi Note 4 phone came installed with Xiaomi’s operating system “MIUI”, their variant of Android. MIUI comes with a bunch of custom apps that are useful, helpful, and – given that they are made by a private Chinese company – completely untrustworthy, in my opinion. My goal was to replace the operating system with LineageOS, a vanilla installation of Android.
Here’s how that turned out.
- To update the OS, I had to replace the bootloader with TWRP (“Team Win Recovery Project”), which would let me replace the OS.
- But to do THAT, I had to unlock the bootloader first, which required me to send a request to Xiaomi, wait for their approval, then endure a 72-hour waiting period before their app would unlock my phone.
- Once all that was done, installing LineageOS and the Google Apps (“Open GApps”) was surprisingly easy. My first test was to install a few games and give them a spin. I got Animal Crossing: Pocket Camp from the Google Play Store, and I downloaded QooApp from its web site and used that to get to the Asian store so I could get the Japanese game Uta Macross.
- This worked … partially. Animal Crossing would abruptly quit after about a minute of gameplay, and Uta Macross would give me a generic error message if I tried to get past the splash screen.
- I quickly learned about something called SafetyNet, a Google technology to detect whether a phone’s operating system is secure or has been tampered with. This was put in place because Android phones are very hackable (for good or bad) and companies were wary of allowing the devices on their networks. The theory is that if the phone is locked down, then nobody can put any malware on it. Game companies don’t want people hacking their games (to give themselves millions of credits, for example), so lots of games use SafetyNet too. I ran an app on my phone to report the SafetyNet status, and it failed on something cryptically called “CTS profile match”. I asked on Reddit and the guess was that it didn’t like my unlocked bootloader, but I need that, so, back to the drawing board.
- Next I learned about software named called Magisk which is designed to hide “suspicious” stuff like this from SafetyNet. I installed Magisk and now Animal Crossing worked, but Uta Macross still didn’t, probably because Magisk enabled root access on the phone and Uta Macross didn’t like that.
- But I found an option in Magisk to hide that from apps, so I enabled it and now both games are playing just fine.
The upshot of all this is that, to replace an operating system that I didn’t trust and to get the apps I wanted working with it, I had to install other components that I don’t trust either and break the phone’s security wide open. I am going to treat this phone like an iPod Touch, using it for playing and tinkering only – I would never use it as my primary device or trust it with my personal information or important passwords.
I wondered whether maybe something I installed along the way had already put malware onto my phone. So I installed the free security software Bitdefender, which scanned my system and gave it a clean bill of health. But, how do I know that some malware isn’t successfully hiding itself from Bitdefender?
This makes me appreciate Apple’s iOS “walled garden” even more, where apps are strictly confined to their own spaces and there’s (largely) no way to hack them. I can see the allure of Android’s flexibility and lower prices, but really, I don’t want to have to worry about whether there’s more going on in my phone than I know about.