If you have been part of the Android pool for any time, the chances of you hearing the term “custom ROM” is very high. A few months back, I gave a synopsis of rooting. I told what it was and gave its advantages and disadvantages. You may recall that the ability to flash custom ROMs was among the long list of benefits of rooting your Android phone.
Chances are, if you have heard the term “custom ROM,” you have likely also heard the term “stock ROM.” A stock ROM is the software that ships on your device. It is official, signed software from a phone manufacturer that will either come on the device when you buy it or will come in the form of an update.
Custom ROMs, however, are either altered version of this software or modified versions of Google's stock Android software. Android is an open source project and all of the source code is openly available for anyone to download, tweak, and reproduce. Google indirectly encourages this. If you have already heard of the previous terms, you have also probably heard of CyanogenMod, MIUI, or some other multi-platform, widely supported and praised development teams.
Just as before, I am going to begin with the disadvantages of custom ROMs so that I don't waste the time of the faint of heart, and so you will know just what you are risking. Take the disadvantages seriously. If you do not know what you are doing, you risk turning your shiny, new, Android phone into a very expensive paperweight.
The first and most important drawback to custom ROMs is that you will void your warranty in the processes prior to flashing the ROM. As you may recall, simply rooting your device will void the manufacturer's warranty, and that processes is a prerequisite for flashing a custom ROM.
Secondly, the work required before flashing can be labor intensive and confusing to the first timer. You can't just go diving in to flashing ROMs without knowing what you are doing or why you are doing it. Otherwise, I wouldn't be writing this article. I, on the other hand, had no guide. I had to do a lot of digging on my own just to find out what a lot of this stuff was and why I should or should not be doing it. Like I previously mentioned, you will first need to root your Android device, then you will have to flash a custom recovery. It sounds like a lot of work, and sometimes it is, but it typically isn't too bad. At first it would take me hours just to root. Now I can usually root and have a custom ROM running on my device in half an hour or less, barring I don't run into problems. And trust me, it happens to the best of us.
Unlike rooting, flashing custom ROMs unfortunately comes with a few more side effects and disadvantages. Adding one to the list, you run the risk of bricking your device when flashing a ROM or in the steps leading up to it. The risk of this is pretty low nowadays, but it is still there and anyone who plans on pursuing the ROM flashing world should be made well aware. Also worth mentioning is that most of the time, if something does go wrong, it can be undone or fixed.
Also unlike rooting, you will have to wipe your device. A factory data reset will have to be done prior to the flashing process and you will need to wipe your device's cache as well. Fortunately, there are methods available for backing up most of your applications, and your contacts should already be setup with Google Sync. There is also a way to backup (create a system image) your device in the custom recovery. Therefore, if something does go wrong, you can simply flash the old image back, and pick up where you left off. This is the most useful and most forgotten part of the ROM flashing process. Many times have I flashed a ROM, ran into an issue, and had forgotten to backup the current ROM. I have learned my lesson and aim to save you the trouble of learning the hard way.
Even though many signed and official builds of Android are bug-ridden and filled with glitches, custom software can sometimes make those official builds feel like heaven to a user. Just beware of glitchy software and ready for anything – force closing, random reboots, etc.
The last important disadvantage of custom ROMs is there are usually so many options, it's hard to decide on which one to go with. The solution to this is do your homework. ROMs that aren't widely known are risky and better left for the daring. Also, there is nothing stopping you from trying all of the different ROMs. If you try a ROM that you don't like, reload your backup image or try another.
Now that we have that part out of the way, we can get into the juicy stuff. What is all the hype about? What makes ROM flashing so beneficial to the end user? What is possible when flashing custom ROMs? There are many questions that can be asked and just as many possibilities when using custom software. I'm going to try to cover the most important topics.
The biggest complaint about Android to date is no just fragmentation, but the slow firmware upgrades coming from manufacturers. Official software has to be sent through rigorous testing and numerous levels of approval from the manufacturer and carrier before it reaches users' hands. This can take and usually does take several months.
With custom ROMs, you are the tester. You will find alpha and beta builds of ROMs all through forums across the vast Internet. The obvious benefit to this is, things are constantly changing and being updated. In fact, development for some ROMs – like CyanogenMod – are updated on a daily basis. Cyanogen's team has coined the word “nightlies” for their daily updates, and are for the true ROM flashing enthusiasts. For those not so daring, there are release candidates that are the end result of all of the bug reporting and nightlies leading up to them. These “RC” versions are usually as stable, if not more stable, than official software from manufacturers.
As a testament to how fast the development is for some devices, I was running Gingerbread on my Nexus One and myTouch 4G just days after it was released. Aside from rocking an official Google device, there is no other way to get your hands on the latest software from Google any faster.
Something you will likely notice right away when running a custom ROM is better battery life and/or performance. To remain as simple as possible, developers will cut the “junk” out of the software to free up memory, and they will optimize the (kernel) software to improve battery life. Likewise, a developer with little experience can unintentionally make your battery life magically disappear or will load the ROM down with stuff they feel is important.
With this custom software, the possibilities are endless and reach as far as the developer's skills will allow. For example, I ran Sense UI on my Nexus One for the longest time and I had the Desire HD's Sense 2.0 on my myTouch 4G. As I'm writing this, I'm even considering testing out CyanogenMod 7 (Gingerbread based) on my ThunderBolt...just to see if I can improve the battery life.
Features that aren't normally available on stock phones can also be found on phones running custom software. For instance, saving applications to your SD card was available months prior to Froyo's release. Now that Froyo is on nearly two thirds of Android devices, application storage on an SD card is no big deal. But what about the stock Android Music application? One of the biggest complaints about it is there are no EQ settings. CyanogenMod addresses that by offering an application called DSP Equalizer within its ROM. This is just one example of many.
It's easy to see why the subject of custom ROMs is so popular. It's a gateway to fast updates and can greatly improve the performance and functionality of your device. It also gives you the sense of having complete and total control over your device.
That said, custom software does not come without its disadvantages. There are quite a few. If you can't deal with all the buggy software and random glitches, it may be a safe bet to save that warranty and stick to stock firmware. For those daring enough, the world of custom ROMs is a very fun and adventurous one.
The most important part is knowing your risks. Always follow instructions intently. Deviating from a developer's set of instructions is asking for trouble. If something goes wrong, there is no one to blame but yourself.
If you partake in rooting or flashing custom software, you are doing so at your own discretion. If your device becomes damaged in the process, PhoneDog is not at fault. I am not telling anyone to go root their device or flash a custom ROM, I'm simply educating on what the terms mean and how they can be beneficial. You have been warned.
Beware: Flashing custom ROMs is extremely addictive. In fact, it is so addictive that the term "crack flashing" has been coined by many. It should also serve as a testament to what amazing things go on behind Android's third-party development curtain.
MIUI image courtesy of @WillyYee