Monday, June 4, 2012

Custom ROMs For Android Explained - Here Is Why You Want Them

SkyHi @ Monday, June 04, 2012

Introduction

Ever wondered what the whole Android custom ROM scene was about?
What is all this talk of installing "aftermarket", custom upgrades on your phone?
Who needs it? Why do it? Is it safe?
Don't fret - I'm here to explain - the AndroidPolice Academy is now in session.
By the way, the word ROM means Read OnlyMemory, but has migrated in the modding community to mean an actual custom OS image that you install into the ROM area of your phone.
Also, the word kernel essentially means the heart of the OS - it's the barebones operating system components.

Custom ROMs

stock ROM is the version of the phone's operating system that comes with your phone when you buy it.
custom ROM is a fully standalone version of the OS, including the kernel (which makes everything run), apps, services, etc - everything you need to operate the device, except it's customized by someone in some way.
So what does the "customized" part mean? Since Android is open source, developers are free to take stock ROMs, modify them, strip them of garbage, optimize them, add things, and pretty much do whatever their imagination and skills allow.

Why You Want Custom ROMs

Update Frequency

Using a custom ROM usually results in more frequent updates that fix bugs and introduce new features because the developer behind the ROM doesn't have the same procedures and red tape that the manufacturer+carrier combo does.
  • A quality update can be churned faster because it doesn't involve the bureaucracy of 30 different project managers, 15 vice presidents, and 5 dozen marketing departments.
  • A ROM developer usually gains a loyal community which beta tests his updates in real life situations and provide feedback, or even fixes bugs - that's the beauty of open source software.
  • Oh and did I mention that ROMs are usually free and supported by optional donations? If you can't afford to pay for it, you don't have to.
  • Finally, most custom ROMs out there are updateable over the air (OTA) and without reinstalling anything.
Who doesn't love open source after this?

Better Performance And Efficiency

Custom ROMs are oftentimes faster, more efficient, and use less memory because
  • the developer ripped out useless garbage, such as carrier installed apps or
  • the developer optimized the kernel. For example, an undervolted kernel can provide a much better battery life than the stock one.

Upgrading To A Better/Later Version Of Android

You can upgrade to a version of the OS that has not yet been released for your device, or never will be. This is possible in 2 situations:
  • leaked version of the new ROM showed up online, and the developer got on it like the fat kid chasing an ice cream truck. This was exactly the case with Hero and Android 2.1, allowing me to upgrade from 1.5 weeks (months) before the official version was available and ditch the bogged down and slow stock OS.
  • ROM from another phone was ported by the developer to work on yours. For example, G1 and MyTouch 3G users may never see Android 2.1 officially released on their phones, but Cyanogen, one of the most respected Android developers, was recently able to create a custom ROM running 2.1 for those devices. Oh, what a happy day it was for MT3G and G1 owners.

Ability To Install Apps To The SD Card

Most custom ROMs nowadays come with the ability to install applications to the SD card, calledApps2SD (or A2SD).
This is currently not possible on stock ROMs, even in Android 2.1 and is supposedly on Google's TODO list.
If you have run out of space on your phone (which I have repeatedly on my Hero), Apps2SD is a killer feature to have.

About That Rooting Business…

Don't confuse custom ROMs with rooting - they're completely different.
We have explained rooting and its benefits in an article called Rooting Explained + Top 5 Benefits Of Rooting Your Android Phone.

The Downsides Of Custom ROMs

Of course, there are dangers of using custom ROMs which you should be aware of.

Something Could Go Wrong

First of all, something may go wrong with the flashing process (that's the process of installing the ROM) and leave your phone in a bricked state. The chances of this are pretty low nowadays, and most of the time you can restore it back to normal.
Try to go for the ROM that has been tested by time and has lots of positive feedback.

Clean Wipe

In order to install a custom ROM, you need to perform a clean wipe.
This means you will lose all existing data, so you have to back everything up first. Of course, just for this, we have a straightforward tutorial that shows how to back up and restore your entire phone: [Complete Guide] How To Fully Back Up And Restore Your Android Phone Using Nandroid Backup.

Potential Problems

Custom ROMs could have bugs… but then so do the stock ones.
However, in case you do find a bug, you actually have a 2-way channel of reporting it - post in the ROM forum and you will more than likely get an answer back and your bug acknowledged.
Try doing this to your phone manufacturer and see if you can get past the first level of outsourced monkeys, let alone actual developers.

You May Void Your Warranty

It's possible that custom rooting will void your warranty because you will "break the seal" on the boot loader by installing a custom one which on some phones apparently can't be undone (this includes the Nexus One). Because of that, the manufacturer might be able to tell that the phone has had a custom ROM installed and not honor the warranty, in case you need to use it.
Now, in most cases, the benefits of the custom ROM outweigh the possibility of your warranty being denied. I recommend getting a warranty from your carrier and using that in case anything bad happens (that warranty is usually unconditional and covers things like losses and physical damage).

Getting The Right Custom ROM

New phones and ROMs come out all the time, and the scope of this article doesn't cover individual ROMs - but the general approach to finding one is Googling for "YOUR_PHONE_MODEL ROM" or something similar, optionally including the wanted Android version. Try it out - you'll find what you want.

Conclusion

And there you have it - another tutorial is in the can, as Leo Laporte likes to say.
Have you found it useful or got anything to add? Please share in the comments.

REFERENCES