Chinese phones are getting better and better by the day. With manufacturers like OnePlus, and Xiaomi stepping up their game significantly, no longer is China synonymous with garbage quality control, and devices that stop working after a week or two.
In January of 2016, Xiaomi made a controversial announcement, saying that they would begin locking the bootloaders of their phones, in a bid to crack down on modified firmware being shipped on their phones by unauthorised resellers.
The Redmi Note 3
Last November saw the release of the Redmi Note 3, a phone with an extremely impressive spec sheet for an extremely modest price. But this article is not about extolling the virtues of Chinese smartphones, their low-cost revolution, or even an analysis of the cost to performance benefits.
The phone originally launched with a MediaTek processor, which pretty much meant that there would be extremely limited, if any, developer support from the community. Earlier this year, the company put out a refreshed version, which is called the Redmi Note 3 Pro in certain markets, and it sports a Snapdragon 650 processor.
This, coupled with the fact that Xiaomi has actually released the kernel sources for this phone (something they get a lot of flak for not doing), means that there are numerous custom ROMs available for the device, including the ever popular CyanogenMod ROM.
Switching to ROMs
For those who don’t like Xiaomi’s Android offering (called MIUI), or have used stock Android, and just can’t make the change to something that looks and behaves so differently, or plain just don’t want to, or do not want to be left without extremely convenient features like Google Now on Tap, or be left on Android Lollipop when Nougat is out, the existence of these ROMs are a god-send.
I personally love tinkering with things, so much so that I often end up breaking them outright. However, putting them back together again is a great learning experience. Being a power user, my first decision after purchasing this phone was to flash a CyanogenMod build, but I discovered that I couldn’t even flash a custom recovery, because of the locked bootloader.
Using the officially provided unlock tool was an exercise in patience: after waiting two weeks for unlocking permissions, the tool refused to work, getting stuck on the very first stage, saying that it could not match the Mi account on the phone with the one that had unlocking permissions.
Leaving aside the fact that it’s ridiculous for one to need permission from the manufacturer to do anything to a device you’ve bought, the MIUI forums are cancer-inducing, flooded with low effort and even lower quality posts and comments, full of poor English and very liberal sprinklings of exclamation points, and plentifully vague ‘thank you’s.
Is it even possible to flash CyanogenMod on a Redmi Note 3?
The short answer is yes. Though it turns out that I was not the only one experiencing the permission unlocking problem, nobody had any solutions that worked, and the closest I ever got to getting an answer was someone saying that the MIUI team were aware of this, and it would be fixed in an update to the tool. This post was from several months ago, and the tool has not been updated yet.
What I did, step by step
Upon further digging, after wondering if I could still unlock it through fastboot and adb commands, I managed to acquire an unlocked bootloader file. But this was just the start of an extremely long night of flashing and reflashing and wondering if I’d finally managed to brick a phone.
I acquired a stock image from the phone’s firmware download section of the MIUI website, and replaced the bootloader file in there with the one I’d acquired. After putting my phone into Emergency Download mode, I managed to get 30 seconds into the flashing procedure with the company’s MiFlash utility, when it suddenly declared that my brand new 32 gigabyte phone had no storage space available to flash the modified MIUI ROM. To top things off, I was unable to boot up the phone.
I managed to flash the original bootloader back with fastboot commands, and thankfully I was able to boot up the phone again. After multiple attempts to flash the ROM I was met by the same result: a soft-bricked phone that simply would not boot up. As a last ditch effort, I tried to check if my MiFlash utility was out of date, but the all the links kept taking me to the version I already had.
I finally assumed that I’d gotten a bad bootloader file, so I went hunting again, only to find the same thing happening with another one. So I did some more digging, and after wading through several forum posts in Chinese, I found a link to a “beta”, 64-bit version of the MiFlash utility. I’d given up hope on flashing a custom recovery by this point, however I decided to give it a go nonetheless.
After SIX HOURS of gruelling forum diving, and constant soft-bricks, endless bootloops and incredibly vague errors, I’d managed to get my bootloader unlocked.
It was a long night, but in the end it was extremely worthwhile.
However, that’s just me and my one-off experience, and I can get incredibly obstinate in my attempts to make things work. I definitely don’t see the average person who dabbles in custom ROMs sitting through any of the crap I had to go through.
The average cell phone user should probably stay away from this entirely, if they’re not well-versed with swapping ROMs and trying workarounds.
While one can argue that Xiaomi’s decision to lock bootloaders is beneficial to consumers in the West, where people are forced to buy their products through resellers who very often DO flash malware infested bloatware onto phones first, it harms the consumers’ ability to customize their device a whole lot more. And that’s one of the most compelling differentiating features of Android.