Since its release, the Android platform has grown in leaps and bounds, finding its way onto laptops, netbooks, tablets and smartphones. Helped by the momentum of search giant Google, much of Android's popularity is due to its open source nature. Because Android is an open platform, manufacturers have been able to adopt Android with ease and spend more time on developing features - instead of a proprietary operating system. This led to a wide variety of features unique to specific Android models: some had HTC's gorgeous SenseUI, some had Android 2.1's slick Eclair home screen, and lucky Evo 4G users got WiMax.
This division of features drove independent developers to take action, and Android's developer-friendly, open nature made customization possible. Almost as early as Android's first release, developers have been creating custom ROMs to bring additional functionality, improve performance, and increase battery life.
For those who are unfamiliar with the terminology, a cell phone's operating system is referred to as a ROM (which stands for Read Only Memory). It's actually a bit of an antiquated term since smartphones now use flash memory for their operating systems instead of ROM, but the same concept applies.
A custom ROM can bring a wide assortment of improvements to your Android phone. The most common reason to install a custom ROM is to bring Android 2.1 to an older handset model that has not yet had an official 2.1 update, such as the HTC Hero which only just received an official 2.1 update - but has had custom ROMs running 2.1 for six months. Custom ROMs also add features that are not available on official firmware. The most popular features are Apps2SD which allows applications to be installed to the SD card and free internal phone memory, and Wi-Fi tethering which turns your phone into a wireless hotspot. Other improvements include multi-touch browsing (a popular mod for the Motorola Droid), overclocking capabilities, and specialized skins and interfaces.
In order to install a custom ROM, you must first "Root" your device and flash a "Custom Recovery Image." Rooting your phone gives you access to your entire file system, giving you full admin rights. Because the rooting method varies from model to model, and even between software build versions, this is the most difficult part of the custom ROM process. Methods are always being refined and updated, so instead of compiling a giant systematic guide covering every Android phone just to have it become obsolete in a few months, we're going to arm you with the necessary information to find the latest rooting instructions for your phone.
Before embarking on your rooting adventures, take a moment to consider the possible consequences. Generally, rooting your phone will void any manufacturer's warranty attached to it - although there is still debate as to whether or not unrooting it leaves any trace. In addition, making a mistake during the rooting process can potentially "brick" your phone, in other words, permanently breaking it. Keep these caveats in mind, as you are solely responsible for any actions you take.
The easiest way to brick your phone is to flash it with a method or image intended for another device. To avoid this, it's best to know your phone inside and out. Fortunately, most of the information you need to know can be found directly in your phone. Simply hit Menu, go down to "About Phone," and select "Software Information." Take note of all the information - especially the Firmware Version and Software Version, as these denote which version of the official operating system your phone is running. You will also want to know if your phone is GSM or CDMA because some models come in two flavors; flashing a GSM phone with CDMA software or vice-versa is a rather common, and fatal, mistake. If your phone uses a SIM card, it's GSM, otherwise, it's CDMA. You can also look up your carrier to check which network type it uses.
There are two common rooting methods: the more versatile of the two involves downloading the Android SDK and using the included Android Debug Bridge (referred to as ADB). When installed properly, ADB is accessed through the command prompt/terminal on your computer. Guides that use this method will walk you through each command one at a time. Be sure to pay attention to any instructions describing when and how to plug-in/unplug your USB cable to change certain settings on your phone. If you're using the ADB method, you will also most likely have to download a special exploit file, used to achieve root status; as well as a custom recovery image, used to flash your new ROM.
Once the custom recovery image is installed successfully, installing a custom ROM is extremely easy. Once you find a compatible ROM for your device (found at http://forum.xda-developers.com/ or http://androidforums.com/all-things-root/ ), all you have to do is copy the desired ROM, in .zip form, onto the root directory of your phone's SD card. Then boot into recovery mode, accomplished by holding the Home button while turning on your phone. You should see a screen similar to the image below.
In almost all cases, you will want to select the Nandroid Backup option before applying any update option. The Nandroid Backup feature creates a snapshot of your current ROM and saves it to your SD card. This means if anything goes wrong while installing the new ROM, you can always restore your phone to its previous state.
Once the Nandroid Backup is complete, you're ready to start installing your new ROM. Be sure to check for any specific instructions for the ROM you've chosen. Some require you to perform a full wipe of your phone, done with the "wipe data" options. Keep in mind that a full wipe will return your phone to a factory-like condition. All of your settings, data, and apps will be erased (your SIM card and SD card will not be affected).
When you're ready, use the "apply any zip from SD" option and select the ROM file you copied to your SD card. This will begin the flashing process and inform you when it is complete. Once the flash is finished, reboot your phone into your brand new custom ROM.