Geek 101: Demystifying custom Android ROMs
If you've sniffed around blogs or articles about mobile phones, you've probably seen mention of "custom ROMs" or "mods." What do they do for a phone? As with rooting, a ton of information is out there; it's far from cohesive, however, and it's spread out all over the Internet. But look no further: We'll walk you through everything you need to know about custom ROMs. Tomorrow, we'll run Part II, which covers kernals, choosing the right ROM, and custom themes.
What Is a Custom ROM/Mod?
Let's start with a quick definition: For the purposes of this article, "custom ROM" and "mod" are interchangeable. Both refer to an already-existing piece of software that a third party has customized, or modified. In this case, you could install a modified version of Android on your phone in place of the stock version of the mobile OS.
Rooting and Custom Recovery
To install and use custom ROMs, you must root your phone (the Android equivalent of iOS jailbreaking) and have Superuser installed on it. For more, see "Rooting Your Android Phone: FAQ," and look for how-tos on your specific model and its current software version, as rooting methods vary greatly from device to device.
You will also need a custom recovery installed and working. A custom recovery is like the launching pad for the phone's OS. It's also where you can make a full backup of the phone (similar to Time Machine in OSX). If something messes up and you can't even get the phone to boot, usually you can still get back to the custom recovery and revert to one of your backups (more on that later). You likely installed a custom recovery when you rooted your phone, especially if you followed a how-to on a site for custom ROMs (such as Cyanogen); make sure that you have one, though, because this is a step you cannot skip.
Your New Best Friend: ROM Manager
Although you can find several ways to install custom ROMs on a phone, ROM Manager is my method of choice. ROM Manager will install Clockwork Recovery (a custom recovery that works quite well). More than that, though, the app has an extremely intuitive interface for downloading and installing ROMs, creating backups or restoring from them, and even installing themes and alternate kernels. It's an easy way to try out a bunch of different mods to see which one works best for your phone.
ROM Manager is free in the Android Market, but the creators also offer a premium version that has more options and lets you download more ROMs (such as Cyanogen's experimental Nightlies, or Liquid ROMs). You can do everything over the air, which is much more convenient than the manual methods mentioned below. Before you install a mod with ROM Manager, it will ask if you want to use Clockwork to make a full backup. Do so. Each backup will be dated, so you can always go back to older backups if you want. You can--and should--delete older backups if you start running low on space on your SD Card.
Again, it's not entirely cut-and-dried from device to device. To use ROM Manager, folks with the Droid X, Droid 2, or Droid Pro must first use the bootstrap utility (made by the same genius that made ROM Manager). Samsung users must first flash a kernel that is compatible with Clockwork, and so on (a search on the XDA Developers forum will get you headed in the right direction). Since every device is different, do your research on the exact steps for your handset.
In my opinion, one of the most helpful tools out there is the Fix Permissions utility in ROM Manager. Whenever you install a new ROM or update, it's always a good idea to use Fix Permissions. Wait until your apps are all downloaded again (if you've performed a larger upgrade and have wiped) and you're done syncing; then open ROM Manager, scroll down to Utilities, and click Fix Permissions. This procedure can help iron out a lot of force-close issues. It will take around 5 minutes to run, and then it will ask you to reboot the phone, which virtually all custom ROMs allow you to do simply by long-pressing the power button and then selecting Reboot. (No more battery pulls!)
Other Install Methods
You can also download custom ROMs to your computer via the Web, and then use a USB cable to transfer them to the root directory of your phone's SD Card. Afterward, you can boot the phone into recovery--that is, whatever custom recovery you have installed, be it Clockwork, SPRecovery (which was likely installed on your phone when you rooted it), or any other custom recovery. From there you can make a Nandroid backup (a full system/data backup, explained below), and install whatever .zip file you would like (which is how ROMs are packaged).
Note that different recoveries function differently. For example, in SPRecovery the file you are flashing must be named update.zip, which can create some confusion if you want to flash multiple files, whereas Clockwork is a little more flexible. Different phones also boot into recovery differently. For instance, on the Motorola Droid you power on the handset while holding the "x" key. For other devices, you may need to hold the volume-up key. Search forums for your specific device to learn how to put it into recovery before you start installing anything else (try checking the CyanogenMod Wiki's brief partial list, but be sure to dig deeper). You can switch between different recoveries in ROM Manager (by choosing Flash Alternate Recovery), but note that any backups you made in Clockwork won't be compatible with SPRecovery, and vice versa; it's best to pick one and stick with it (and Clockwork works best with ROM Manager).
ROM Manager also has an option labeled Install ROM from SD Card. Using it is very simple: Click that option, and it will take you to the root directory of the SD Card, where you can choose the file to install. It will give you the chance to make a backup and wipe your data and cache, and then it will boot into recovery and install the ROM.
Backing Up and Wiping Data
Always, always, always make a backup before you install a new ROM. In only about 5 minutes, it will take a full snapshot of your current setup as well as your data and settings (a "Nandroid backup"), which you can restore should something go wrong (or if you just don't like the new ROM). You can restore from a backup directly within ROM Manager, or via your custom recovery. Note that a backup is compatible only with the custom recovery that made it--for instance, you need to be in Clockwork recovery in order to install one of your Clockwork backups, and the same is true with SPRecovery. Clockwork creates backups in the /clockworkmod/backup/ directory on the SD Card (which you'll want to remember for deleting old ones). Once the phone is in recovery mode, you can find the backups under the Nandroid option.
Whether you should use 'Wipe Data and Cache' (the other option that ROM Manager will ask you about when you're installing a ROM) depends on a couple of variables. If it is your first time flashing a custom ROM (for example, going from stock Android to CyanogenMod), you should definitely wipe. If you are performing a major upgrade within a ROM (such as going from CyanogenMod 5 to CyanogenMod 6), I highly recommend that you wipe. If you are conducting a small, incremental upgrade (for instance, going from CyanogenMod 6.0 to CyanogenMod 6.1), you probably do not need to wipe, although sometimes it may help the handset's system run more smoothly. Flashing other files (such as flashing a new keyboard file or flashing a custom theme for your ROM) does not require a wipe.
Protecting Apps and Settings
You're probably asking one question right now: "Won't I lose all of my apps and settings if I wipe?" The answer: Not really. When you wipe and install a new ROM, you will see the same setup process you went through when you first got your phone. Once you enter your Google account info, though, not only do your contacts and calendar appointments all start flooding back, but so too do most of the apps you have downloaded (though you may have to open the Market to start this process). It's best to just let your phone sit there, undisturbed, for 10 minutes or so, giving it a chance to redownload and install all of those apps. Some other things, such as your wallpaper and a few (but certainly not all) of your system settings, will be restored, too.
A side note: Because of legal restrictions, some ROMs (including Cyanogen) do not come prepackaged with Google's proprietary apps (Gmail, Calendar, and the like). Again, ROM Manager makes taking care of this problem easy. When you select your ROM for downloading, the utility will ask if you want to install GApps. Check the GApps box, and they will download and install separately.
But...all of the data on your apps is gone! You were just about to beat Angry Birds, and now you have to start over! Worry not, my friend--that's why you should first turn to apps such as Titanium Backup and My Backup Pro.
For root users, either of those two programs can back up all of your apps and their data, storing it on your SD Card. Be aware: You must make the backups before you wipe and install a new ROM. Once your phone is running your new, clean ROM, simply download Titanium Backup or My Backup Pro (whichever one you used) if the app hasn't already been restored to your phone, and it will find your backups on the SD Card. You can then restore the data to the apps you want returned to their previous state. You can also use this approach to install apps again, if they didn't download from the Market.
Note: If you're making a larger change in ROMs (from one ROM to another, or from CyanogenMod 5 to CyanogenMod 6, for example), it's a bad idea to use Titanium to restore the system settings. These systems are liable to be set up very differently from each other, and that can cause a lot of problems. Setting your phone's system up again (restoring ringtones, notification settings, and the like) is a bit of a pain; but considering that your app data will be restored with Titanium, getting things back to how they were before won't take you too long. Don't risk borking up your phone's system.
Stay tuned tomorrow for Part II of our custom-ROMs primer, where we'll cover kernals, choosing the right ROM, and custom themes.