There are tons of great reasons to root your Android phone, but once you do, you'll likely be overwhelmed with all the custom ROM options out there. Here's how to go about finding—and installing—the one that fits your needs.
What's a ROM?
One of the best things about the openness of the Android platform is that if you're unhappy with the stock OS, you can install one of many modified versions of Android (called ROMs) on your device. The downside is that there are so many developers and different Android devices out there that the custom ROM scene can be very difficult to navigate. We're here to help the whole process seem a bit more manageable.
We briefly discussed using an app called ROM Manager in our Droid rooting tutorial, but today we're going to dig a bit deeper into the kind of ROMs that are available, how to pick the right one for you, and how to install new ROMs on your rooted Android device.
This guide assumes you've already rooted your device. Thus, if you haven't, be sure to do that first—most newer devices, like the Evo and the Droid Incredible (among others) have easy, one-click rooting solutions available. If you're not so lucky, you may have to figure out how to do it the long way.
The Three Most Popular Types of ROMs
If you're familiar with Linux, choosing the right ROM is similar to finding the right Linux distribution. Each version of the OS has a specific goal in mind, and as such differs quite a bit from the others. Which one you choose is dependent on your priorities and how you use the device.
The most popular types of ROM's come in three different flavors: ROMs that port future versions of Android to you're device (when they aren't yet officially available), ROMs that add new features beyond the stock OS, and ROMs that focus on speed and stability. These aren't the only three categories of custom ROMs, nor are they hard and fast rules, but they offer good guidelines as to what's out there. Generally, you can pick a ROM fairly easily if you know which of these three categories contains the features most important to you.
1) Future Versions of Android
Unless you're on the Nexus One, it usually takes a while for your phone's manufacturer to prepare the latest and greatest version of Android for your device. At the time of this writing, for example, Android 2.2 "Froyo" (the most up-to-date, stable Android OS) is available and has been open sourced, but most manufacturers haven't released updates for their devices yet. Luckily, since the Froyo source code became available, pretty much all ROMs out there are Froyo-based now (you'll know because they'll say they're based on the latest version of the Android Open Source Project, or AOSP). But before the source code of a big update is released, it's up to kindly developers to create ROMs based on the early releases in this category alone. Once the source is available, nearly every category of ROM will use the future version. Photo by nh824.
For the purpose of explanation, however, let's take a trip back to the time before the Froyo source code was available. When Froyo first came to the Nexus One, many developers took that version or other Froyo leaks and and created ROMs for other phones, for those that wanted the newest version as soon as possible. They were the only ROMs based on Froyo at the time—the ROMs in the categories below may have contained a few Froyo features, but most developers don't base their ROMs on Froyo until the source code is available. Thus, if you want the newest stock version of Android as soon as it comes out, these are the ROMs to go with. They're usually the least stable ROMs of the bunch, however, so once the code's been open sourced, you're better off going with something from the "speed and stability" category (since it'll still be based on the newest version). Once the next release of Android comes out (codenamed "Gingerbread"), this category of ROM will be most people's first shot at the new release.
2) ROMs That Add New Features
Many ROMs seek to add more features to your phone that aren't available in the stock OS. Usually these are things like extra settings (seen in the screenshot above), or little conveniences like making the "sound off" lock screen slide put your phone on vibrate instead, or letting you skip music tracks with the volume buttons. Sometimes these ROMs will also contain things outright missing from the stock version, like FLAC support. While feature-adding ROMs are still built for speed and stability, they may not be quite as fast or as stable as those in the third category (though they're often still be better than the stock ROM). In most cases, the most popular ROM in this category is CyanogenMod, although devices without CyanogenMod ports have similar ROMs that achieve the same goals (such as the Fresh ROM, available for the Evo).
Note that when I say ROMs add extra features, I do not mean features like tethering, overclocking, and other larger, more publicized features. Most of these features make it to Android devices through separate apps instead of being built-in. Many ROMs (both in this category and in others) may pre-install them, but you can, naturally, add a lot of feature-adding applications to a rooted phone (through the Android Market) without installing a custom ROM.
3) ROMs That Focus Only on Speed and Stability
Some ROMs, such as OpenDesire on the Desire, Baked Snack on the Evo, or Bugless Beast on the Droid, are less focused on tweaking the OS for features and more focused on bringing as much speed, stability, and battery life to your phone as possible. Thus, if you have rooted mainly for this reason (or because you wanted to add larger, app-based features such as wireless tethering), then this type of ROM is the one for you. They may sometimes lag a bit behind in terms of adding the newest features, but they're usually the fastest and most stable around. Often they also remove the bloat many manufacturers put on their phones, such as extra apps or user interfaces (such as HTC's Sense and Motorola's MotoBlur).
Note that all ROMs will probably say that they focus on speed and stability, but this particular group focuses only on these things, and will usually say that they contain no extra tweaks as a result, so look for that as opposed to the words "built for speed and stability" when you search in the next step.
How to Find and Install Custom ROMs
We briefly discussed how to install a custom ROM in our Droid rooting tutorial, but below I'm going to delve a bit deeper into the ins and outs of the process of picking, backing up, and flashing your ROM. Reminder: Your phone should already be rooted before you proceed.
Your Recovery Image
Your phone's recovery image is is the system from which you can flash new ROMs and themes, make and restore backups (called "nandroid" backups), wipe caches, and perform other tasks. It's essentially an Android rooter's best friend. To access it, you usually need to boot up your phone while holding down one or two external buttons (such as the volume button, or a button on the phone's physical keyboard, if applicable). You'll have to look up the button combination for your specific phone on Google, by searching something like
htc evo recovery mode (replacing
htc evo with your specific phone, of course).
There are a few different custom recovery images out there that make hacking easier than the stock recovery image does. We're going to use one called ClockworkMod, since it comes with ROM Manager and is easy to use. To start, install ROM Manager from the Market (the free version is usually suitable, although you may find later that you want to upgrade to the pay version, which has more ROMs, themes, and overclocking kernels). Start the app, hit the "Flash ClockworkMod Recovery" button at the top of the main menu, and confirm your phone's model. You'll see a progress bar at the top of the screen while it flashes. When it's finished, you're ready to download and install a new ROM.
Finding the Right ROM
The problem with the ROM scene is that most ROMs don't have any kind of official web site; they're usually just posted on forums (which makes them a bit more difficult to search for). There aren't many comprehensive ROM databases on the net, but I did find this list at TheUnlockr, which is pretty good. Just click on your phone's model and you'll be presented with a fairly well-maintained list of the popular ROMs available for your phone (some phones, like the Droid, don't have a very populated list yet, but most do).
If you like, you can open up ROM Manager at this point and hit "Download ROM" to see which ROMs are available through the app. These are usually the most popular, and are good guidelines as to which ones you should read up on. Click on a few of the links at TheUnlockr's database and see if you can figure out which category it belongs to. Unfortunately most ROMs aren't going to come out and clearly identify as fitting into one of the categories we laid out above, but often they will say at the beginning whether they have added extra features to the ROM or whether they were built only for stability. You can also take a look at the changelog to see if extra features have been added or whether it's a bunch of under-the-hood tweaks and extra apps like Wireless Tether.
Once you've found one or more ROMs that sound good, it's mostly trial and error from here. You might have to test drive more than one to get a feel for which ones you like best, but that's the fun part of it all. Note also, that even if a ROM isn't listed in ROM Manager but it sounds really good, you can still download it to your phone's SD card and install it using ROM Manager's "install from SD card" option, so don't let ROM Manager's list limit you if you don't like anything it has, even though it is a good guideline of what's popular.
Note: In some cases, CyanogenMod is the only popular ROM available for your device. In these cases, even if you're looking only for speed and stability, I recommend you try it out—while Cyanogen definitely falls into the "features" category of ROMs, it is by far one of the most popular and widely worked-on cross-device ROMs out there, and there's a reason for it. Also, the newest version is incredibly fast and stable from my experience, far more than older versions—so even if that's your goal, you may find yourself happy with it.
Install Your New ROM
Installing a new ROM (more commonly known as "flashing") is very easy with ROM Manager. Just go back to the "Download ROM" section (or, if you're installing a ROM from your SD card, go to "Install ROM from SD card" and pick your ROM). It will download, if applicable, and then give you this prompt:
Always, always, always back up your existing ROM before flashing something new. Then, if something goes wrong, you can always restore to your latest backup, either through ROM Manager (by going to "Manage and Restore backups" on the main menu) or by booting into recovery mode and choosing "nandroid".
Generally, you'll want to "Wipe Data and Cache" if you're moving from a ROM based on one Android version to the next (i.e. a 2.1-based ROM to a 2.2-based ROM). You'll also want to check the main download page of the ROM you're installing (which you can find through TheUnlockr) to see if they recommend wiping for that particular version. "Wipe Data and Cache" basically means that all your settings will be returned to stock—If you weren't running a Froyo build beforehand, you'll have to re-download all your apps, as well as rearrange your home screens and reconfigure all your custom settings every time you wipe. In the end, you can always try not wiping and see what happens—if you flash a ROM and have problems, it's pretty easy to restore from your backup and try again.
Enjoy Your New ROM
At this point, your phone will reboot into recovery mode, flash the ROM, and you can explore all the new features available to you (or just bask in the glory of speed and stability). You can do a bit more with ROM Manager, like install extra themes and kernels, which we discussed in our Droid rooting tutorial. Remember that a good part of picking the right ROM is trial and error, so don't be afraid to flash something else, even if you like the first one you picked—you might be surprised how much more you like others. Besides, even if you don't, you can always restore from your backup and be none the more inconvenienced.
Got any of your own tips for sifting through the wide world of Android ROMs? Share them in the comments.