Android: Installing a Custom ROM

If you have an Android phone and you’re wondering how to unlock, root and install a custom firmware, right out of the box, then this is tutorial for you

What’s a Custom ROM?

A ROM in the context of the Android Ecosystem refers to the Android Operating System (OS). It is usually located on a locked Read-Only (kinda) section of the phone so that Applications won’t accidentally alter its content thereby crashing the Device. ROMs that were created by the manufacturer of the device are called Official ROMs while those created by third party developers are called Custom ROMS

Why Install Custom ROMs?

There are two main reasons for installing a custom ROM:

  1. Improved Features and Customization: Android is an open-source platform. This means that anyone can take its source code and do whatever they want with. This presents an opportunity where Developers can correct/improve whatever they see fit in the OS and this has led to huge innovations in the Android Ecosystem across the board. The Android Team looks at some of these custom ROMs and then implements the really good stuff back to the core Android framework. This is one of the reason’s Android is innovating like crazy whereas iOS is basically the same OS from 2007.
  2. OS Updates: Android’s Open nature is a blessing in many ways but can also be a curse in some ways. Because Manufacturers also have the ability to tweak it as they see fit, They tend to write their own skins and applications to overshadow the core android experience which in many ways causes updates to come slowly (if at all). And even when they do come, their skins are usually just lousy compared to the pure Android Experience enjoyed by Nexus phones.
    Fortunately, the developer community has come in to save the day by porting the original Android source code to these devices and this makes non-nexus devices to not only enjoy the latest versions of Android but also receive timely updates

CAUTION: You should be very careful when rooting or flashing your phone. Make sure that the model numbers on the tutorials you watch or files that you download match the exact Model/Make of your phone. if in doubt, check the box of your phone or check under Settings -> About Phone. Secondly, Follow the instructions exactly Never assume anything. I would prefer you search for videos on how to perform the procedure online and follow it step by step. I damaged my first Android phone (the Galaxy S1) because I assumed that it was GT-19000 whereas it was actually GT-19003. I even ignored the warning not to tick a checkbox that said “Reformat Partition” because I assumed it would work anyway… “What were you THINKING?”… Yeah I know. So I owe it to you to warn you so that you don’t pay the same price. So just be careful. The chances of irreparable damage are low but still possible. That said, if you get it right (especially the rooting part) the rewards are huge.

Let’s Get Started

For the sake of this tutorial, I will use a brand new Galaxy S2 as the Android Device (I’ll be referring to it using its model number GT-I9100) and the Cyanogen Mod 10 (Android 4.1 Jelly Bean) as our custom ROM. The Samsung Galaxy S2 comes with Android 2.3 (Gingerbread) out of the box. All the processes described below are slightly different from device to device but the core idea is the same.  Before we begin, I would like to explain what certain terminologies mean:

Download Mode: You can think of this as “Flashing Mode” where the device is ready to receive a new OS from a connected PC. Most phones use a button combination to get into this mode. It’s effective if the phone becomes unstable or reboots constantly. In the case of the GT-19100, the button combination is POWER + HOME + VOL DOWN. Hold the combination till the phone enters download mode. To leave download mode, just reboot the phone.

Clockwork Mod Recovery: This is a very powerful menu that gives you access to all kinds of phone diagnostic/power tools. It has a special function called Nandroid Backup that allows you to save the EXACT state of your phone (like Virtual Machine Snapshots) in case you really mess things up. We’ll discuss more on later in another post.
To enter this mode for the GT-I9100, You hold the following key combinations POWER + HOME + VOL UP

Firmware Download or Flashing Software: This is a PC application that allows us send a new Firmware/ROM to the device using USB. For it to work, the PC in question must have the USB driver for the device installed. In the case of the GT-19100, it’s an application called Odin.

The process of installing a custom ROM from scratch is divided into two parts

  1. Rooting
  2. ROM installation


Rooting in simple terms is configuring the device so that Applications can have access to core Operating System files. These files are locked by default. There are many ways to root a device make sure you do proper research on your specific device for the method you prefer. Like I said there are lots of videos on this for each device so I suggest you watch some of them. but for our brand new GT19100, we have to first unlock the boot loader by flashing it with a custom rooted firmware. Rooting does three key things for us:

  1. Allows Apps access to core OS files
  2. Installs a security app called “Super User” to allow us manage access to those OS files.
  3. Installs Clockwork Mod Recovery

First, we need to install the USB driver for our device. In this case, it comes with Samsung’s KIES software. It’s similar to iTunes and usually comes in the form of a Mini-CD along with the device. You can also download it from Samsung’s Website. This is to ensure that the phone’s USB drivers are installed otherwise we won’t be able to download the ROM to the phone via USB. Also for safety, remember to always put the phone in USB debug mode for this installation period. You can disable it when your’e done. It’s under Settings->Developer Options-> Enable USB debugging (may not be the same location depending on the version of Android).

Secondly, we download all the things we need here. Note that these are specifically for Samsung. Requirements for devices from other manufacturers may differ. After download, we have the following

  1. Custom Rooted Firmware (CF-Root-SGS2_XX_XEO_LPQ-v5.3-CWM5.tar)
  2. Odin (Odin.exe)
  3. Rooting Application (S2Root.exe)

Step 1: Put the phone in download mode

Step 2: Run Odin on your PC and Connect your phone

Step 3: If Odin detects your phone, then proceed to the next step.

Step 4: Select PDA and browse to the Firmware file (i.e. the file named CF-Root….tar.gz). DO NOT TOUCH ANY OTHER SETTING

Step 5: Click the Start Button. The new firmware will be downloaded and the phone will reboot.

When it’s done, you’ll see a yellow exclamation mark when it’s booting. This means that you are running an altered firmware. After it has booted up, you will also notice a special App called “Super User”. Rooting is Complete!

ROM Installation

ROM installation is pretty much a breeze compared to rooting. Just take the following steps:

  1. Get the latest nightly build of Jelly Bean for the phone (you can get Cyanogenmod 10 ROM at
  2. Get the latest version of Google Apps that corresponds to the Android version of the ROM we want to install (Jelly Bean Gapps
  3. Copy them to the “/Download” folder of the device
  4. Reboot into Clockwork Recovery Menu
  5. Use the Vol UP/Down Buttons to navigate to “wipe data/factory reset”. Then use the POWER button to select it.
  6. Select “Wipe Cache Partition” then Select “yes, wipe cache partition”
  7. Select “Advanced” then select “Wipe the Dalvik cache” and then “yes,wipe dalvik cache”
  8. Select “Install zip from sdcard”
  9. Select “Choose Zip from Internal sdcard” then select “Download/” folder
  10. First Select and install the Cyanogen Mod 10 ROM zip file
  11. Then install the Google Apps Zip file in the same manner
  12. Select “Reboot System Now”

That’s it. You have successfully rooted your phone and Upgraded from Android 2.3 to Android 4.1.

Android 4.1 Jelly Bean Running on a Samsung Galaxy S2

Please let me know if you have questions or observations so that I can use them to improve the article.



About Ody

Web Developer/Programmer and Hardcore Gamer. Mainly interested in the Web and Web Technologies

10 thoughts on “Android: Installing a Custom ROM

  1. i always believe in you.. here is a suggestion that could help. why don’t you consider building a facebook fan page and have people follow you on facebook? That can turn to financial boom for you man. think about it!

    • That’s actually a great idea. The problem is that I have to make out time to come up with great content like this one. And right now, I’m working really hard to start my own company. I love to write and when that takes off, I’ll dive wholly into it, getting a dedicated domain, facebook page, twitter account etc.

  2. Pingback: Android: Installing a Custom ROM – 4.1 | techGenius Blog

  3. Pingback: Chink in the Armor | Tech Genius Blog

  4. Folks
    I’ve Samsung Galaxy s3 t999L (LTE) and I want to update it to kitkat from jellybean 4.3 so what are my options in terms of custom roms? I tried to locate it on Internet but they’ve mentioned stuff bout the non LTE version so I just got confused.
    your help will be appreciated

Leave a Comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s