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. A new ROM can bring you the latest version of Android before your manufacturer does, or it can replace your manufacturer-modded version of Android with a clean, stock version. Or, it can take your existing version and just beef it up with awesome new features—it's up to you.
If you're familiar with Linux, it's sort of similar to installing a different 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. You'll need to unlock your bootloader and flash a custom recovery (more info on that here http://lifehacker.com/5789397/the-always-up-to-date-guide-to-rooting-any-android-phone ), but once you get the hang of it, it's not too difficult.
There are a lot of different ROMs out there, and if you're looking for a place to start, check out the list of the five most popular http://lifehacker.com/5915093/five-best-android-roms . You can also check out this amazing chart http://lifehacker.com/this-database-of-android-roms-helps-you-choose-the-best-1449794780 which compares a ton of ROMs feature-by-feature, which is a great way to find the right one for you. Even if you have a Nexus phone with pure stock Android, ROMs are a great way to add new features and conveniences to Android.
Step One: Unlock Your Bootloader and Flash a Custom Recovery
How to Flash a ROM to Your Android Phone
First, let's clear up some confusion: Contrary to popular belief, you do not actually need to root your phone to flash a ROM—you just need to unlock your bootloader and flash a custom recovery. However, this process usually goes hand-in-hand with rooting—and most custom ROMs come with root access—so what you think of as "rooting your phone" is probably what you're going to have to do first.
Unfortunately, I can't go through this step in detail here, because it's different for every phone! So, I highly recommend checking out the everything root guide to learn a bit more about what's involved, what all the different terms mean, and what to watch out for. Then, search around sites like XDA Developers for instructions on how to unlock the bootloader of your specific phone, which recovery you should use (usually TWRP " http://teamw.in/project/twrp2 " or ClockworkMod " http://www.clockworkmod.com/rommanager "), and how to flash it.
I also recommend rooting your phone during step one, since it'll make the backup process in step two easier—and save you some hassle along the way. A lot of methods and one-click apps will root your phone anyways, so it might be included in the process. Again, this can vary from phone to phone. (If the instructions require you to flash SuperSU.zip, you can refer to step three of this guide for info on how to do that—ironically, it's just like flashing a ROM).
NOTE: Unlocking your bootloader will most likely wipe your phone, and without root access, you won't be able to back up very much. So, save anything you want to keep on your computer—you will have to set up your phone from scratch just this once before continuing.
When you're done, return here and continue to step two for the rest of the ROMming process.
Step Two: Make a Backup of Your System, Apps, and Data
Now that you've got a custom recovery on your phone, the first thing you should do—before you ever make a big change to your system—is back it up. First, i'll make a Nandroid backup, which is basically a image of your current system. That way, if something goes wrong, you can restore your phone to exactly the way it was before you started tweaking. This will save you a lot of hassle if something goes wonky (which, let's be honest, can happen often). To do this:
Reboot your phone and enter recovery mode. This is a bit different on every phone, but usually involves some permutation of pressing the power and volume buttons at the same time.
Head to the "Backup" or "Nandroid" section of your recovery mode. The default settings should be fine. If given the option, give your backup a name that helps you remember what it is (like "Pre-CyanogenMod Backup 01-17-14"). Confirm your backup and let it run.
Wait for the backup to finish. This may take awhile.
I also recommend making a second type of backup: your apps and settings. If you just unlocked your bootloader and wiped your phone, you can skip this step, but any time you flash a ROM in the future, you'll want to back up your apps first, since you may have to wipe your phone before you flash. With a backup, you can easily restore those apps and data after flashing, making the process a lot simpler. I recommend using Titanium Backup ( http://lifehacker.com/5784857/how-to-set-up-a-fully-automated-app-and-settings-backup-on-android ).
This is different from a Nandroid backup because it just backs up the apps themselves, which you can then restore on any ROM you want. Nandroid backups take your entire system as it is, ROM included.
Note that you'll need to be rooted to use Titanium Backup (which is why I recommend you root in step one). To perform a backup in Titanium:
Open Titanium Backup and grant it root permissions if it asks for them. If it experiences any problems with root, it'll tell you right now.
Tap the "Batch" button in the upper right-hand corner (the one that looks like a little checkbox). Scroll down to the "Backup" section and find "Backup All User Apps." Tap the "Run" button. This will back up any apps you've downloaded from the Play Store, and their data. (You can try backing up your system data as well, but I find this usually doesn't work very well).
Wait for it to finish. If you like, you can also sync these to Dropbox as described here http://lifehacker.com/5784857/how-to-set-up-a-fully-automated-app-and-settings-backup-on-android , but you don't have to for this process.
This may seem like a lot of unnecessary backups, but trust me: it's going to save you a lot of time in the long run. Now if something goes wrong, you have a nandroid backup to fall back on and don't have to start from scratch. And, when your ROM flashes successfully, you don't have to start re-downloading and setting up all your apps yourself because you can restore them with Titanium.
Step Three: Download and Flash the ROM of Your Choice
How to Flash a ROM to Your Android Phone
Now comes the fun part: flashing your ROM. First, obviously, you need to find the ROM you want. You may also want to poke around sites like the XDA Developers forums http://forum.xda-developers.com/ to see what's available for your particular phone.
When you've found a ROM you want to try, download it and save it to your phone. It should come in the form of a fairly large ZIP file, so you'll probably want to be on Wi-Fi to download it. You can either download it directly from your phone, or download it on your computer and transfer it over via USB.
To flash your ROM:
Reboot your phone into Recovery mode, just like I did back when I made the Nandroid backup.
Head to the "Install" or "Install ZIP from SD Card" section of your recovery.
Navigate to the ZIP file you downloaded earlier, and select it from the list to flash it.
Wait for the process to complete; it may take a few minutes.
Depending on your situation (see below), you may also need to wipe your data and/or cache. In TWRP, you'll find this under the "Wipe" section, and in ClockworkMod, you'll need to either choose the "Wipe Data/Factory Reset" option or the "Wipe Cache Partition" option. When you're done, you're free to reboot into your new ROM.
So, when should you wipe your data and cache? Here are a few general guidelines:
If you're flashing a ROM different than the one you're currently running, you should wipe data and cache. Essentially, this performs a factory reset on your phone, and you will lose all your data.
If you're flashing a new version of a ROM you're already running, I recommend wiping your data and cache—but you should be able to get away with just wiping the cache, meaning you get to keep all your apps and settings.
Remember, if you backed everything up with Titanium, then doing a factory reset isn't all that bad, since you can just restore most of it. Keep in mind that even if you're just upgrading your existing ROM, factory resets can be helpful http://www.androidcentral.com/getting-bad-battery-life-422-your-verizon-nexus-try-factory-reset . If you only wipe your cache, note that a few apps may run into issues, but reinstalling them or wiping that app's data usually fixes the problem.
When you reboot, you should be in your shiny new ROM, ready to play! But what? There's no Play Store? Read on for the last step of the process...
Step Four: Download and Flash Google Apps
How to Flash a ROM to Your Android Phone
Because Google's apps are not open source, custom ROMs can't bundle Google's apps—like Gmail, Hangouts, or the Play Store—with their ROMs. That means you'll need to download and flash them separately. Luckily, this is pretty easy to do: just head to this page on RootzWiki http://wiki.rootzwiki.com/Google_Apps to find out which ZIP file you need, download it to your phone, and flash it just like you did the ROM in step three. Gapps Manager http://lifehacker.com/gapps-manager-gets-you-the-right-google-apps-for-your-r-1501497103 is also a great app that'll help you find the right package if you're stuck, and you can download the APK from XDA Developers http://forum.xda-developers.com/showthread.php?t=2589167.
Once you've flashed the latest Google Apps package, you should be all set! You'll have a new ROM with tons of settings to play with, the Play Store to download new apps, and—if you made a backup with Titanium—you can now head into Titanium Backup and restore all your apps and their settings. Enjoy!
All thanks to http://lifehacker.com/