About a month ago, I bought a HTC Wildfire. It’s a budget Android phone, which packs a nice set of features (wifi, gps, …). The pre-installed build of Android, customized with HTC Sense is not bad, but on a device with a relatively weak CPU, it’s a shame to see how HTC is lagging behind on updating to a newer Android version: the phone was running Android 2.1 (Eclair), whilst Android 2.3 (Gingerbread) has already been out for months. Also, some HTC apps and services are unremovable.
This market fragmentation is one of the key problems for Android: Vendors customize and brand Android so extensively that not only the updates lag behind, but the user experience is hampered, and the phone essentially becomes very locked down, leaving the user guessing whether or not he will receive further (security) updates.
Update: This guide was written for WildPuzzleRom originally. Due to the increasing popularity of this guide, I’ve rewritten all steps so they can be applied to pretty much any great rom out there for the HTC Wildfire, like Openfire or the recent Cyanogen.
This weekend, I put on my cape of recklessness and installed a custom ROM on my device, in order to get more out of my hardware. As a first-timer, this can be a pretty damn rollercoaster ride. Here’s how it went. Let’s Boogie. (Read More)
- 18/11: More info on Revolutionary tool
- 08/07: Rooting methods now seperated
- 19/06: AlphaRev Root method added
- 25/05: Typo fixes, rewritten some sections
- 02/11: Rewritten steps 1-4 to make them more general
1. Rooting your Wildfire
The first thing you have to do before you can go experimenting with custom ROM’s is rooting your device, essentially giving you, the user, access to pretty much anything on the device – and thus allowing you to swap ROM’s, kernels, … The term “rooting” reveals the actual inner workings of Android: the super-user on Linux systems is called root, and Android uses the Linux kernel. You need the charged phone, the micro-USB cable that came with it and a Windows or Linux computer. I haven’t tried it on a Mac, but other users are reporting success too.
I’ve split up the rooting part of the guide in two sections: rooting a Wildfire which is still running 2.1 (Eclair, the Android version which it shipped with originally), or Wildfires which have been shipped/auto-updated to 2.2 (Froyo).
1.1: Rooting the original HTC ROM (Android 2.1 – Eclair)
The original HTC ROM (based on Android 2.1) can be rooted with the excellent Unrevoked tool. Just plug in your phone and make sure USB debugging is enabled (settings -> applications -> developer options). Your phone will warn you that it is enabled when you connect it to your computer.
- Depending on your OS:
- Linux: On my Ubuntu (Maverick Meerkat 10.10) laptop, the phone was recognized immediately. I had to run the Unrevoked tool as root, though. Just navigate to where you downloaded the tool and run sudo ./reflash in console.
Windows: installing HBOOT USB drivers is required, as detailed on the Unrevoked help page.
Note: 64 bit versions of Windows can be “quirky” with Unrevoked. Some systems may – or will only – work with BOTH the HTC and HBOOT USB drivers installed. The HTC drivers are installed with the HTC Sync application, which can be downloaded from HTC’s website. If Unrevoked fails (‘stalls” or “hangs”) part way through on a 64-bit Windows version, don’t freak out, just run it again. You may need two, three, or more attempts, but it eventually gets the job done. Note that you should resist the temptation to pull the battery during these attempts.
- Don’t touch the phone during the reflash, even if it takes a long time. It took about 3-4 minutes on my device, but this may vary. The phone might reboot several times during the reflash.
- The phone will automatically restart when the process is finished. Unrevoked will have granted you root access to your phone, and installed a recovery tool to your phone’s recovery memory, called ClockWorkMod. From now on, ‘booting into recovery‘ will be possible. Clockworkmod allows some funky stuff, and is used for flashing new ROM’s, making backups an partitioning SD cards. Also, an extra app called Superuser will have appeared in your app drawer. Using this app, you can control which other apps can get root privileges.
- Enjoy the root access!
If you just wanted to have root access to the phone, you can stop here. The apps on the market which require root access will work now. Skip to section 2!
1.2: Rooting newer ROM versions (Android 2.2 – Froyo)
For a long time, HTC Wildfires which shipped or were updated to Froyo (2.2) could not be rooted, due to a new HBOOT version HTC pushed to devices. Luckily, teams AlphaRev and Unrevoked joined forces and released Revolutionary: http://revolutionary.io/ The tool seems to be in a great state right now, so if you’ve updated your phone to 2.2, or your Wildfire came shipped with 2.2, this is probably the best option. All tips and hints I gave in the previous section (don’t touch the phone, be patient, …) are still valid, you’re just using a different tool.
Revolutionary does a twofold process:
- Switching the security flag to S-OFF (giving you full control over the device)
- Flashing the latest ClockWorkRecovery mod (see next section)
2. Nandroid Backup
- Before doing anything, make a backup. We can do this using the installed ClockWorkMod recovery tool – we call these backups Nandroid backups. To access the ClockWorkMod recovery tool, we have to boot the Wildfire in the (now unlocked) recovery mode, which is basicly a lightweight little system that allows system operations.
- Boot the phone by holding down either the circle button or Volume Down button, then press the Power button. This is what we call a cold boot.
- Select Recovery from the menu. (You can navigate the menus with the volume button, and make selections with the round trackpad button).
- Select Nandroid, then Backup.
- ClockworkMod will create a backup of your system (OS, apps, sms’es, …) and save it to the SD card. This basicly means that everything on your phone is backed up, except what’s on the SD card. If you’re planning on repartitioning your SD card and you’ve saved photos, music or other app settings to the SD card, you’ve got to backup them elsewhere. (Note for advanced users: If you’ve moved any applications to the SDcard using either Froyo built-in or an Apps2SD script, they will be backed up too.)
- You can find the backups in sdcard/clockworkmod/backup/(date_time)
- Make sure you transfer the backup to somewhere safe (Computer, Dropbox, …). I just copied all files from the SD card, packed them in a nice tarball and put them away on DropBox! :)
3. Installing a new ROM
- Download the latest version of your ROM. It should be a zip file, varying between 60 Mb / 120 Mb in size, depending on the functionality the ROM offers. You can find a nice overview of current Wildfire ROMs, sorted by release date on the XDA forums. The Every ROM has its own forum thread. The most popular ROMs at the time of writing seem to be CyanogenMod, WildPuzzle and Openfire. Make sure you have a look around the forums for the threads about the ROM you want to install. A lot of these ROM’s are in active development, and their might be last-minute bugs that are handy to know about beforehand.
- Transfer this zip file file to your SD card. Remember where you saved it, it’s easiest if you just put it in the main directory.
- Reboot the phone into Recovery
- Select Wipe / Reset Factory Settings. This will erase your current ROM memory. This makes sure no conflicting settings or apps are left over from the original OS. This is an important step: if you don’t do this, you will most likely experience bugs and glitches!
- Select Install zip from SD card and navigate to where you copied the ROM zip file. Watch out: Do NOT select the similar-looking apply sdcard:update.zip menu item. You have to confirm by selecting the correct ZIP file from a list.
- Select it, and let it install. This will take about 7-8 minutes, but this can vary. Progress is reported on screen. Don’t pull the battery while flashing a new ROM.
- Reboot the phone. Warning: First boot could take up to 12 minutes, during which you will mainly see a black screen. This is because the Android OS is unpacking the new applications. If you are really worried and want to know what’s going on, you can connect to the phone using the Android Debug Bridge, which can be found in the Google Android SDK. This is not harmful, but involves some command-line wizardry and thus is for advanced users only. Just sit back and get a drink, if you followed the guide, your phone’s fine. And besides, you made a Nandroid backup, right? Even if you did screw something up, you can always boot back into ClockworkMod and restore that Nandroid backup, which restore your phone to the exact state it was.
4. (Optional) Creating an EXT partition on the SDCard
Most of the Froyo roms out there allow you to move downloaded applications to your SD card. This will use the built-in Android functionality of moving parts of programs to thet FAT partition, in a (hidden) folder called .android-secure. This frees up some internal phone memory (which is limited). This possibility to do this is limited: an app has to support this, and not all data is moved to the SD card. The good news is that you don’t have to do anything to use this functionality: no partitioning is required. You can skip this section completely if you’re okay with Android’s default apps to SD-functionality.
Some ROMS come with an Apps2SD script, most notably DarkTremor’s script. Check your ROM’s documentation for this. For example: WildPuzzle ROM has thiss cript, Cyanogenmod doesn’t because the script does not meet their code quality requirements. The Darktremor script requires an EXT partition and moves all downloaded apps to that partition completely, freeing up a lot of space on your phone. If you install a new app from the market, it will get installed to this EXT partition as well. (For the more technical peeps: Apps2SD simply symlinks the app’s location to /system/sd/app/(name of the app), where sd is the EXT partition.). An additional advantage of having two partitions is that while you are transferring stuff to the FAT partition, all your apps will be available, since they’re on the EXT partition.
Now we’re going to make an EXT partition (if you want to make use of the functionality described above). WARNING: repartitioning your SD card will erase all your data on it. Note that if you’ve partitioned your SD card before, this step is unnecessary. When the phone is booted, navigate to the Rom Manager application
- Choose Flash ClockworkMod Recovery. This will download and install the latest version of the recovery tool. Since it is such a vital tool, always make sure it’s up to date.
- Select Partition SDCard, pick EXT
- Select the size you want for your partion. (Defaults are OK)
- The phone will reboot and partition your SD Card.
- Boot the phone again – this can take a while, since an A2SD script is now transferring apps to your SD card. Again, have a coffee. It took about 7 minutes on my phone, but this can vary.
5. Done – Party Time!
Voila! It’s a fresh ROM on your Wildfire. You can check your new operating system and kernel version in the software info screen:
6. Overclocking your HTC Wildfire
Most ROM’s come packed with a custom kernel, which allows overclocking. Cyanogenmod 7 has a built-in CPU management tool. In other ROMS, you can set your CPU speed using this application. It is not recommended to clock the kernel to 768 Mhz as in the screenshot below. Any value over 700 Mhz is likely to make your phone unstable. I personally run at 691, and it runs stable. SetCPU also allows you to check your CPU temperature, which is at a steady 32 °C for me.
You can also define profiles in SetCPU. For instance, when my battery gets too hot (> 40°C), the CPU will automatically scale down to a lower clock speed. Also, when the screen is turned off (and no interactive speed is needed), the clock speed also scales down.
Most of the ROM’s for Wildfire are in active development: so there might be problems /bugs along the way. Please refer to your ROM’s forum thread for information. It would be preferred to ask for help in the comments there instead of here.