The main reason I and many others prefer Android phones over iPhones is that Google makes much of Android’s code freely available. Other developers are then free to create versions of Android with less of the parts we don’t like and more of the parts that we do.
But this isn’t the Android experience you get when you first purchase your device. Instead, you have to take matters into your own hands by unlocking your phone’s bootloader and flashing a custom ROM.
This is a technical process that, as an understatement, isn’t for everyone. I have written about Android for years, and I still consider the process an exercise in patience. There are so many points at which everything can and often does go wrong.
Here are some of the major pain points you may run into when you flash an Android ROM.
1. Installing ADB and Fastboot
If you’re familiar with replacing operating systems on your PC, then you’re probably familiar with Linux. That process involves installing Linux to a CD or USB stick, restarting your computer, and pressing the key during boot that enables you to load the alternative OS rather than the one on your hard drive.
The process on Android is much more complicated. You can’t get by using only your phone or tablet; you need a computer as well. Then you need to download specialized software on it.
Specifically, you must have the Android Debug Bridge, better known as ADB. This suite of tools includes a program called Fastboot. ADB talks to your phone when it’s powered on. Fastboot talks to your phone after you reboot into a special mode, helpfully called “Fastboot mode.” Both tools communicate via a USB cable.
Installing ADB is relatively straightforward. You go to Google’s Android developer website and download the appropriate version for your computer. ADB supports Windows, macOS, and Linux.
What’s the Problem?
ADB and Fastboot are both command line tools. Rather than opening an app and clicking a few buttons, you will have to learn how to open the command line and type out what to do.
Opening the command line isn’t a bad thing, but it does increase the amount of technical knowledge needed for the job. Replacing the OS on your computer doesn’t require the command line, but replacing the one on your phone does.
Not only that, since ADB and Fastboot did not come with your computer, you have to direct the command line to the location where you installed ADB. Otherwise your PC will only respond to the commands you type with confusion. You may also need to run commands using administrator privileges.
Note: There are tools out there that can perform much of this heavy lifting for you. These programs do not come from Google or other smartphone manufacturers, nor have I used a custom ROM that instructed me to use such a method. Feel free to share your experience with such apps in the comments.
2. Installing Drivers
Devices that you plug into your computer need special software that tell the two pieces of hardware how to communicate. Windows, macOS, and Linux handle drivers differently. On macOS and Linux, many drivers are baked into the OS, whereas Windows requires you to download drivers separately just as you would an application.
What’s the Problem?
It’s hard to know when you have a driver problem. Neither ADB nor Fastboot will tell you so directly. But if you enter a command and nothing happens, chances are you have a driver issue.
Driver issues can be difficult to squash. When I most recently installed a custom ROM, I had no problem getting ADB to recognize my device. When I rebooted into Fastboot mode, Fastboot recognized my device as well.
Yet when I entered Fastboot commands, nothing would happen. Even though Fastboot could see my device, it couldn’t tell the phone to do anything. Most online guides will tell you that if Fastboot can see your device, you have functioning drivers. You can thus imagine my frustration as I eventually worked out that, yes, my problems were driver-related.
Online instructions will generally tell you that ADB is easier to use on macOS or Linux than on Windows. Yet I’ve consistently had to get my hands on Windows in order to finish the job. Linux may have the drivers to communicate with my phone, but for whatever reason, ADB and Fastboot still have problems. But when I install the drivers provided for Windows, this tends to work just fine. (I have never tried using a Mac.)
3. Unlocking the Bootloader
A bootloader is the part of your phone that determines which operating system to boot. By default, the bootloader will only start the OS that the manufacturer provided. And it comes locked.
You must unlock the bootloader before you can tell your phone to load an alternative OS, which is what you’re doing when you install a custom ROM.
What’s the Problem?
Not every Android phone has an unlockable bootloader. Many—if not most—don’t. Among those that do, you have to be careful which model you buy. Your safest bet is to buy the carrier-unlocked version of the device.
Carrier versions are a gamble. In the US, GSM models from AT&T and T-Mobile are more likely to have support than CDMA devices from Sprint and Verizon. But this isn’t a hard and fast rule.
Google’s phones are the safest bet. Pixel devices, and the Nexus line before them, are relatively easy to unlock. Sony is another good option. The company tells you how to unlock its devices, offers source code, and provides the necessary drivers for many of its devices.
The process of unlocking the bootloader varies with the manufacturer. With Google’s phones, it’s just a matter of entering the correct command. With other brands, you may need to request an unlock code to enter alongside the command. Sending the request usually involves visiting a website, and while the response is usually instant, this isn’t always the case.
4. Using a Custom Recovery
After you unlock the bootloader, it’s time to actually start installing your custom ROM.
Most smartphones come with what’s known as a recovery. This is the part of the phone you load to repair a broken OS. You can wipe the device from here, returning the system back to new.
A custom recovery offers more options. You can completely back up all the software on your phone so that you can restore the device precisely to how it is now. You can also erase the old OS and install a new one, a process known as flashing.
What’s the Problem?
Custom recoveries are not available for every phone. Though if your phone has custom ROM support, more than likely there’s a compatible custom recovery as well.
Depending on your device, you may not be able to install a custom recovery. If that’s the case, look into temporarily booting a custom recovery without erasing the one your phone currently has.
If you’re having trouble installing or booting a custom recovery, then you probably have driver issues.
As for That Custom ROM…
Once you’ve got a custom recovery up and running, the process is pretty straightforward from that point. There’s still the possibility of errors, but they’re less likely, and most of the heavy lifting is behind you.
Thankfully the steps above are typically one time affairs. If you installed a custom recovery, you no longer need your PC to flash new OSes. Though if your phone required you to temporarily boot the recovery, then you will need keep ADB and Fastboot handy on your computer.
Some custom ROMs are rock-solid stable. Others are a buggy mess. So depending on your circumstances, you may not be out of the woods yet. You may decide that a custom ROM just isn’t worth the effort.