Android
is great, but sometimes, the version you get with your phone—whether
its vanilla Android or something like Samsung's TouchWiz—leaves a bit
to be desired. Here's how to install a new version of Android (or ROM)
on your device for an even better Android experience.

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), but once you get the hang of it, it's not too difficult.

Note: We originally wrote this guide in 2010, but things have changed quite a bit, so we figured it's time to revisit the process. Many of you Android
vets already know how to do this, but hopefully newcomers will find this
guide valuable—and maybe even you veterans will learn a thing or two. Let's begin!

Step One: Unlock Your Bootloader and Flash a Custom Recovery

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, we can't go through this step in detail here, because it's different for every phone! So, I highly recommend checking out our 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 or ClockworkMod), 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, we'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. We recommend using Titanium Backup.

In an ideal world, your Android's apps, their settings, and your system settings would…
Read more Read more

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, 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.

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 we did back when we made our 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, we
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.
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

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 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 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.

Android (Rooted): If you root your phone and install a new ROM, the first thing you may notice is…
Read more Read more

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!