Iterated time and time again, one of the most widely-known advantages of Android is the ability to load varying versions of tweaked software on your phone. If the stock software doesn't suit your needs or if a manufacturer's skinned software just doesn't sit well with your nerves, you have the ability to gain root access, flash an alternative recovery image and flash new ROMs until your heart is content.
However, it's not always that simple.
Many buy an Android device thinking everything will be just peachy and rooting will be easy. But more often than not, you're going to run into snags and other hangups. These things can range from something that will set you back just a couple minutes to a persistent problem that just will not go away.
Matthew Miller of ZDNet explained that after he rooted his Galaxy Nexus and loaded MoDaCo's custom ROM on the device, he began to experience problems that he didn't have before. His Nexus, which had been imported and was being used on T-Mobile, kept dropping connection, requiring Miller to take out his SIM card to restore connectivity to make a call. After consulting with his colleague, it was brought to his attention that the ROM he used was an old version of the ROM, which uses an older baseband version.
Miller's problem is a common one and an easy fix. All he had to do to resolve his issue was flash the latest version of the ROM and all was well. I, too, have encountered a few small problems with the ROM I'm using now. Before, when I was using the stock Nexus software (Android 4.0.2), everything was buttery smooth and worked almost flawlessly. However, after loading up the IML74K ROM, I've been having issues with latency between pushing the power button and the device turning on. Sometimes the device turns on immediately. Other times it might take 2-3 seconds for the display to power on, which forces me to press the button again, effectively turning the display back off. There is also a lag in opening the app drawer that wasn't there before.
ROMs come in all forms: alphas, betas, release candidates and stable builds. Depending on how old the device you have is and the kind of development support it has mustered over that time, you might find yourself rooted with no reliable ROMs to flash. Anything before a release candidate, and you can bet on problems like intermittent lag, crazy bugs where the Wi-Fi might not work again until you reboot the device and pull the SIM card or random reboots.
These are small problems, little glitches in the code of ROMs themselves that will ultimately be fixed in time with future updates and more stable build releases. You come to expect hiccups like these. But there are obviously larger problems that can stand in the way of you having the device you want with the software you want.
Unlocked bootloaders became particularly popular in 2010, especially after the launch of the DROID X. If the bootloader was tampered with, the phone would intentionally get stuck in a boot loop until it was restored to stock. Workarounds were made, but it still made flashing ROMs quite the chore. As OEMs are becoming a bit more lenient with third-party development and modders, they're opening the gates and, thankfully, offering unlockable bootloaders. So bootloaders are gradually becoming a non-issue.
Rooting, however, can be a process that might take five minutes, or it can sometimes take an hour or more. Depending on how locked-down the phone is or how the developer has decided to distribute the rooting method, you may have to manually root by pushing files to the phone via command prompt or through a one-click method. Personally, I'm the type of person that prefers gaining root access the old fashioned way, just for safe measure.
But there are a lot of things that can go wrong in the process of rooting. If you don't know what you're doing (even if you do sometimes), you might not know what to do or when to it. The files you're using may be outdated for the version of software that is on your phone. The drivers on your Windows PC might not want to cooperate. Or even the Android Debug Bridge (ADB) can be finicky at times.
Everything you need to know about gaining root and flashing a ROM is basic knowledge and not all that difficult to pick up from scratch. I taught myself everything I know over the course of a few hours and many failed attempts back when I bought my CDMA HTC Hero. I have now rooted and flashed ROMs on over 70 or so devices, yet I still run into snags all the time. For instance, when rooting my Galaxy Nexus, I had just updated to version 4.0.2 and I believe the exploit used in the boot image (which allows you to push the Superuser file to the system directory to gain root access) had been patched. No matter what caused the problem, ADB would not allow root access; therefore, I could not root my Nexus using that method. I had to take a step back and find another way.
Custom ROMs and rooting are not for everyone, and they can sometimes be dangerous to your device. One wrong step at the wrong time, or one wrong file flashed to the wrong directory could lead to a bricked device. However small the risk, it's still a risk. (Note that if you do root or mod your phone and something goes wrong, you are no longer under manufacturer warranty. And PhoneDog is not responsible for any damages that may occur. I'm not telling you to go root or ROM your phone. If you root, you are doing so at your own risk.)
The moral of the story is that you should always be patient, do your research and read the directions a few times before taking on a project. If you don't know how to retrace your steps, what each step of the process is doing or how to improvise another way, you might want to ask for help. Better yet, you might want to consider sticking to a stock device. If you want custom software bad enough, do the research, account for missteps beforehand and prepare for some crazy bugs and glitches along the way.
By the way, share your Android rooting and flashing horror stories in the comments below.