I’ve had it. I’ve been waiting since November last year for an official firmware update from HTC for my HTC Hero. Since then the update has been postponed numerous times and all the while I see these reports from people using leaked Android 2.1 ROMs. Now, it appears the official update will come in May, but I’m done waiting!

As we speak I’m installing Villainrom 5.22, which appears to be the most popular 2.1 ROM out there. Unfortunately it’s not that straightforward to update your ROM and the necessary information is scattered among several forums and posts. Below is a list of the steps that I did to get 2.1 on my HTC Hero. Basically there are two kinds of updates: flash images and update packages. Flash images have the extension .img and are flashed using the command flash_image from the android shell. To install an update package you put the package as update.zip on the sdcard and reboot the phone into recovery mode. From there you can install the update package.

Flash a new Radio ROM I’ve read somewhere on the XDA Hero forum (sorry, can’t remember the post) that the newer ROMs need a newer Radio ROM as well, so I’ve decided to flash a new radio ROM first. I suggest you make a backup first (step 2+3) and flash the Radio ROM afterwards.

I’ve downloaded version and put it on my sdcard as update.zip using the USB cable and enabling USB mass storage. I’ve shutdown my phone and then, while keeping the home key pressed, turned it on again. My phone booted into the recovery mode, displaying a menu from where I selected flash sdcard:update.zip.

Flash a new Recovery boot loader The first step went well but I really should have created a backup before flashing the new radio. Better late than never, I suppose. I booted into the recovery mode again and selected backup but I instead of a backup I got an error message: error running rom backup. backup not performed. First thought: update the recovery image.

I’ve downloaded recovery-RA-hero-v1.6.2.img and followed the steps in this post, using adb (android debug bridge):

adb shell reboot bootloader
fastboot boot recovery-RA-hero-v1.6.2.img
adb shell mount /sdcard
adb push recovery-RA-hero-v1.6.2.img /sdcard/recovery-RA-hero-v1.6.2.img
adb shell flash_image recovery /sdcard/recovery-RA-hero-v1.6.2.img
adb shell reboot

Make a Nandroid backup Reboot into the (new) recovery mode and selected nand backup. There was also a nand + ext and BART backup options, but I don’t quite know what each does, so I ignored them :-) After backup move all the contents of the sdcard to your PC. (The sdcard will be wiped in the next step.) Note that the nandroid backup does not backup the contents of your sdcard.

Wipe all data From Android version 1.5 to 2.1 is a big step so I followed XDA poster’s advice and wiped all the data from my phone before flashing the new firmware. Boot into recovery (if not already done) and select each of the following options from the recovery menu:

Wipe Data/Factory Reset
Wipe Dalvik cache
Wipe SD

Flash the new ROM I opted to go for the VillainROM 5.2 (aka 5.22) You can get it here. The trick is the same: download the file and put it on the sdcard as update.zip. Then, boot into recovery mode and flash the zip from the sdcard. Reboot. Rinse. Repeat.

This should have done the trick. Note that the first time the phone boots it might take a while for all the components to initialize, so go easy on your phone.

Another great guide is found here.

And I’ve just got word that the official 2.1 has been postponed yet again until June. Now I’m really glad I’ve decided to go for the leaked 2.1.