Some of you may think that the only reason to hack into a smartphone is because you're unhappy with said smartphone. Last week I did exactly this with the HTC Desire, but the truth is I hacked it because I love it.
Rooting an Android phone refers to gaining root permissions on the phone, which in turn gives users access to parts of the phone that are otherwise held back from the general public, mostly so inexperienced users can avoid doing anything to break the software on their handsets.
The reward to match the risks is the ability to install custom firmware on the phone. These tweaked firmware packages, or ROMs, are compiled by independent developers hell-bent on getting the best performance out of their Android phones. Custom ROMs tend to be built on original source code, like an official HTC firmware upgrade, for example, so the resulting ROMs tend to be similar to the standard firmware but with bits added and subtracted as the designer sees fit. This process will also give you access to software before it is officially released, like the new Android 2.2 firmware for the Desire.
The following tutorial is based on my experience, and though the process is mostly easy to follow, you do run the risk of turning your phone into a very sexy paperweight, and even if you are successful, the process will void your warranty. Only proceed with this guide if you feel confident you can complete the task. I suggest you read the entire guide before proceeding with the steps outlined.
Like jailbreaking tools for the iPhone, Unrevoked is a software package that will root your Desire without much input from the users. Windows users need to first install new device drivers on their PC before the software will recognise the phone, but after that, the software will do the rest.
1. Download and install Unrevoked.
2. Follow the guide to installing the USB drivers as per the instructions included in the downloaded ZIP file (Windows users only).
3. Make sure your phone is set to USB Debugging mode. Go to Menu > Settings > Applications > Development, then check the box "USB Debugging".
4. Launch the Unrevoked EXE. Connect your phone and watch the progress messages.
Once Unrevoked has finished it will have installed the Clockwork Recovery mod. This tool is essential for letting you bypass the usual updating routine in Android and allows you to install any custom ROM packaged up as a ZIP file.
Choosing a custom ROM
A screenshot of the XDA Developers forum
This part I leave completely up to you, but I will say that if there's one part of this process that I would define as mildly risky, this is it. Most of the ROMs you'll find are mixed together by some truly brilliant people, but there is a risk that you could find a ROM which is so full of bugs that it could render your phone unusable.
Downloading the ROMs is as easy as selecting the download file from wherever you find it on the web. Make sure you download any other files required or suggested by the ROMs creator, especially updated radio firmware for your phone if you're upgrading from Android 2.1 to Android 2.2. Once downloaded, move all of these files to your phone's SD card.
I've now tested about five or six ROMs on my phone and I found all of them through the XDA Developers forum. I don't want to start a flame war between rival gangs of modders, and I'm aware that there are some other fantastic and extremely active developer communities out there, but for a first-timer like me, the XDA forums were an amazing resource.
Installing a ROM
OK, if you've made it this far then you're nearly out of the woods. This is where the real fun begins. The process for installing a custom ROM is pretty consistent, but be sure you combine this simple guide with the exact instructions as laid out by the ROM's creator. You should have all the ZIP files you need for the installation on the SD memory card in your phone before you begin.
1. Reboot phone in recovery mode. From power off hold down the power and volume down buttons. This will load the phone's boot menu. Use volume down to move the cursor to recovery and press power once to select it. This will launch the Clockwork Mod recovery system.
2. Nandroid backup. This process will create a recovery file in case everything goes pear-shaped when you install your custom ROM.
3. Wipe all data. This is the point of no return (except for the fact that you have your Nandroid backup to fall back on).
4. Reboot, starting again in recovery mode by repeating step 1.
5. Update radio firmware (where applicable). If you're upgrading your firmware from Android 2.1 to Android 2.2 chances are you will need to update the firmware of your radios as well. You should find a download for these files alongside any reputable custom ROM download. To install the firmware choose the "install zip from sdcard" option, then "choose zip from sdcard" in the following menu listing. Find the file where you have stored it on your SD card and select it. Wait for the install to complete then reboot.
6. Install ROM. Once you're again in the recovery menu, move the cursor to the "install zip from sdcard" option. Then select "choose zip from sdcard", browse your phone for the file and select it. The installations of ROMs tends to be fairly fast. Again, once the install completes reboot your phone, but this time just let it boot up normally without holding down any buttons.
This is the part of the guide where I confess to not being an expert in this field. To complete my rooting and ROMing I've followed similar guides from various online forums, and my intention with this article is to collate this information, not expand on it.
I have had a few false-starts with several of the ROMs I have tried to download, as well as managing to totally screw up others by installing extra modifications that weren't intended for the ROM I had installed at the time. The good news is that the errors were all contained and easily reverted. The symptom of these problems was always the same, a boot sequence that never ends, but instead tries to repeat itself over and over, or what is referred to as a "boot loop".
Whenever I found myself in a vicious boot loop I powered down the phone (usually by pulling the battery out) then repeated the steps for installing a ROM, entered recovery mode, wiped all data and reinstalled the ROM. For this reason I'd probably suggest downloading several custom ROM files to your SD card before starting. This way if one is buggy, you can easily install another.