Pwn Your Phone
Once your phone is rooted, you need to make sure you have a recovery system that supports custom, unsigned ROMs. The system recovery is a part of the Android device that acts a little like the system BIOS of a computer system. Most times, when you root a phone, a custom recovery program is flashed too. That isn't always the case, however, so it's important to make sure you have a recovery program flashed onto your system that supports custom ROMs. The most popular recovery program by far is ClockworkMod, available at http://www.clockworkmod.com. It can be very challenging to flash ClockworkMod onto your rooted phone by hand, so I highly recommend the program Rom Manager from the Google Play store. The free version of Rom Manager includes the ability to flash a custom recovery program, so unless you run into problems using Rom Manager, it's hard to find a reason to use any other method. If you want a one-stop method for installing complete ROMs, the paid version of Rom Manager can make that process painless too. If you don't want to shell out the dough, however, using ClockworkMod to install ROMs is dead simple.
Before You Begin
You've read the warnings, but you've seen CyanogenMod in action, and you really think a custom ROM is for you. Before I talk about flashing, let's quickly look at the pros and cons.
Custom ROM—the Pros:
Most custom ROMs are compiled for specific devices and often are optimized for better battery life or faster performance.
Custom ROMs eliminate all the pre-installed applications your carrier forces you to keep on your device.
If you want to tweak the look of your phone, most ROMs support elaborate customizations.
If a rooted phone gets you geek cred, a custom ROM makes you a guru.
Custom ROM—the Cons:
Installing a custom ROM almost always is tricky.
If you're not comfortable with troubleshooting, installing software on your computer or pulling out some hair, custom firmware may not be for you.
Although it's rare nowadays, it's still possible to brick your phone.
You almost assuredly will lose your carrier's support if something goes wrong; carriers won't help and will have no pity.
Cross Your Is and Dot Your Ts
If you still want to install custom firmware, go to the Web site to get the ROM. Again, I really like CyanogenMod (http://www.cyanogenmod.com). Once you locate the specific ROM file for your exact device (remember, even the Samsung Galaxy S2 has several different models, all needing different ROMs), put the zip file on the root of your SD card. Then, make sure it's the correct ROM. Yes, I realize I keep saying that, but fixing a phone that won't boot due to flashing an incompatible ROM can be very frustrating. Anyway, once you have the zipped ROM on your SD card, boot the device into recovery mode. Most phones have a certain method for booting into recovery mode, usually consisting of holding down certain buttons while booting. But, because you already have Rom Manager installed, simply choose "reboot into recovery" from the menu (Figure 2), and your phone or tablet should reboot directly into ClockworkMod.
Figure 2. Rom Manager is a great tool, and one of the few apps I buy without hesitation.
Once ClockworkMod is loaded, navigate the menus using some combinations of buttons on your phone. Often volume up/down will traverse the menus, and the home button will select. Depending on your device and the version of ClockworkMod, you may have other buttons or the touchscreen with which to navigate. Before you flash your new ROM, you need to make a backup! Thankfully, ClockworkMod has the backup feature built in, and in the event of a failure, as long as you can reboot into recovery mode, you should be able to restore your phone to the backup.
Now that you have a backup (you do have a backup, right?), navigate the ClockworkMod menu to find the "install zip from sdcard" option, and locate the ROM file you saved onto your SD card. You'll get the option of whether to wipe the data directory, and often with brand-new ROMs, it's a good idea to get a fresh start.
After your Android device is flashed, it will reboot and, hopefully, load the custom ROM you flashed from your SD card. If something goes wrong, you'll need to go back to the forums and try to find someone who had a similar problem or even post a question yourself. (I urge you to search long and hard before posting though. I've never had a problem that was unique to my setup, and it seems someone always has made a similar mistake and posted about it.)
If everything went well, you now should have a pretty great Android system without all the bundled apps your carrier originally installed. You've also made it so that if you go to your carrier for support, the customer service rep will laugh at you and possibly accuse you of doing horribly nefarious things by installing a custom ROM. The advantages outweigh the disadvantages for many folks, so if you have a few spare hours and a willingness to put your beloved Android device at risk, rooting and installing custom firmware can be a great way to breathe new life into a tired phone.
In closing, although most devices available require the bootloader to be unlocked (that is, rooted) in order to gain access to the underlying system, there are a few limited exceptions. If you want an Android tablet with root access out of the box, and a vendor who thinks custom ROMs are a great idea, check out the review of ZaReason's ZaTab in the September 2012 issue of Linux Journal. ZaReason doesn't try to lock you out of your own device, and that deserves praise (http://www.zareason.com).
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...