How to root your HTC Desire and install Android 2.3 (Gingerbread)

Step-by-step guide

There are various reasons to do this, including:

  • Needing root to run certain apps. This includes taking backups, removing unwanted pre-installed apps, and installing a fix for the tiny (140 MB) internal storage on the HTC Desire.
  • Wanting an upgrade to Android 2.3 or higher. This is not available officially.

Isn’t this explained elsewhere online? Yes, but many guides are out-of-date or include unhelpful advice. I wasn’t able to find everything I needed in one place.

This post is 80% there:

This will wipe your phone including apps and data.


As well as an HTC Desire you need a Windows PC connected to the Internet and a micro-USB cable for your phone.

The custom ROM process is a bit quicker if you have a USB reader for your micro SD card.


On your PC:

  • Download and install HTC Sync. Then uninstall the HTC Sync software itself, leaving the HTC drivers in place.
  • Download and install the HTC fastboot drivers mentioned on the Revolutionary documentation.

Is it necessary to install the Android SDK for this process – using adb shell? I don’t think so. Described on this post.

On your phone:

  • Enable USB debugging.
  • Enable installing non-Market apps.

Root and custom recovery

This is a two step process: we use Revolutionary to gain S-OFF on the phone, then flashing a root zip file which gains you root. Revolutionary does not get you root by itself.

HBOOT version / erase size of 20,000 or 40,000. As we’re using Revolutionary and ClockWorkMod (CWM) does this apply? I think not.

From boot screen:

Check if PVT version is PVT4. If so check erase size.

Install Terminal Emulator from Market, then

cat /proc/mtd

Check if 20000 or 40000. If 20000 or not PVT4, we’ll use ClockWorkMod.

Check HBOOT version, this must be lower than 1.06.

On your PC:

  • Turn off your anti-virus software temporarily.
  • Download Revolutionary from and the custom root zip file mentioned on their documentation page.
  • Connect the phone. Put the custom root zip file on the SD card.
  • Start Revolutionary. It will guide you through the process.
  • You need to get a beta key for Revolutionary – the program gives the details about your phone to generate one on the Revolutionary site.
  • The phone will restart a few times and Revolutionary will update you on progress. It’s automatic, but keep an eye on it.
  • As a final step Revolutionary asks if you want to install a custom recovery – CWM. Say ‘yes’ to this.

You now have S-OFF on the phone.

On the phone:

  • Switch off the phone, and boot into HBOOT by holding ‘volume down’ and pressing the power button.
  • The boot screen should say -REVOLUTIONARY- at the top and mention S-OFF in the next line.
  • Choose Recovery from the menu.
  • Select ‘Install zip from sdcard’ then ‘Choose zip from sdcard’.
  • Choose your root zip file, should be named
  • Power off the phone from the CWM menu.

You now have an HTC desire with root and a custom recovery.

Custom ROM

We will use CWM to partition the SD card then install a custom ROM.

There are some dire warnings online about not partitioning an SD card with CWM, these apply to old versions of CWM and can be ignored with the current version.

This process will wipe the SD card. Copy the contents of it onto your computer first if you want to keep them.

Partition the SD card

Goal is to provide two partitions on your phone:

  • An ext4-formatted partition of 1 or 2 GB on your SD card that the phone will use as internal storage.
  • The rest of the card as a fat32-formatted partition the phone will use as regular SD card storage.

The only complication here is the ext4 partition must come second on the card, the fat32 partition must come first. CWM will handle this for us.

On the phone:

  • Boot into HBOOT by powering off and holding ‘volume down’ and the power button.
  • Go into Recovery → Advanced → Partition SD card.
  • Set the sd-ext partition to be 1 GB.
  • You don’t need a swap partition but setting one of 32 MB will not hurt anything.
  • The partitioning and formatting will take a while. Leave it be.
  • When this is done power off the phone

Installing a custom ROM

Take out the SD card and connect to your Windows PC.

Download your custom ROM of choice. There are many available for the Desire so it depends on what features you want.

I am using the SuperNova ROM which is very good. It provides Gingerbread and HTC Sense and a fairly ‘stock’ experience. Importantly, The ROM has a stable Data2SD installed that provides ample internal storage using your SD card.

Download the latest SuperNova and put it on your SD card. SuperNova instructions are here.

Quick version:

  • Shut down your phone and reboot to HBOOT.

Select Recovery, then:

  • Wipe data/factory reset
  • Install zip from sdcard → choose zip from sdcard → pick the SuperNova file.

Question: is it required to wipe cache and/or dalvik cache? Think it doesn’t hurt at the first install of SuperNova but should never be done when upgrading.

SuperNova is a big file so this process takes a while. It provides updates as it goes. Once it’s finished power off.

At first boot:

  • Allow the phone to boot, then answer all the questions asked except skip the Google account setup. Check About → Software shows the build as SuperNova.
  • Don’t restore data or apps yet. Reboot the phone.
  • At this point Data2SD runs during boot. When the phone has finished booting up, check the internal storage – it should be 900+ MB.

New Radio

Not the Bikini Kill song. The radio is software on the phone that allows you to make phone calls and use mobile Internet.

There seem to be incompatibilities between different Android releases, different custom ROMs, and different radio versions.

Radios are available from Mo Firouz’s site.

Best approach is to leave your radio alone and check if everything works with your new ROM.

  • If it does not, install the most recent radio release. SuperNova recommend you use this – version
  • If this does not work then downgrade to version recommended by Mo Firouz. This worked for me on Gingerbread when my current radio and the newest radio didn’t work.

Flashing the radio

This is complex. The radio as you download it cannot be loaded directly using CWM as they are only distributed in an old and incompatible format. Ignore the steps on the download page above.

You can flash the radio using fastboot. This is a hassle – there must be a better way, surely?

Guide to ADB and Fastboot for Windows.

On the PC:

  • First install the Android SDK. This will take a while as the downloads are large files.
  • Download and install the HTC fastboot drivers mentioned in the Revolutionary documentation.
  • Download your radio file and extract the radio.img file from it.
  • Reboot to HBOOT then select Fastboot from the menu.
  • Connect the phone using USB. Your phone screen should update to say ‘FASTBOOT USB’.
  • At this point you can issue commands using the ADB shell on your Windows computer.
  • Open a shell in Windows using cmd.exe. Navigate to the folder containing your radio.img file.
  • Note: online guides mention setting the system PATH variable. Don’t worry about this, you can just run the fastboot program directly.
  • Find fastboot.exe – it will be somewhere in the Android SDK folder. On my 64-bit Windows 7 machine, it’s:
c:\Program Files (x86)\Android\android-sdk\platform-tools\fastboot.exe
  • Flash the radio using this fastboot command:
c:\Program Files (x86)\Android\android-sdk\platform-tools\fastboot.exe flash radio radio.img
  • Finally reboot the phone:
c:\Program Files (x86)\Android\android-sdk\platform-tools\fastboot.exe reboot

Photo credit

HTC Desire‘ by Flickr user Matthias Penke, license CC BY-NC-ND.

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

29 thoughts on “How to root your HTC Desire and install Android 2.3 (Gingerbread)

    1. Hi. No, you just need the HTC drivers not the HTC Sync software itself. Installing using the HTC Sync installer is a simple way of getting the drivers but you can remove HTC Sync afterwards.

  1. Hi Andrew, thanks for all the useful info! I’ve managed to follow all steps to and including “Select ‘Install zip from sdcard” tfrom the Revolutionary recovery menu, but all that happens next is a blank/black screen with “REVOLUTIONARY” written in blue across the middle. I cant “choose zip from sdcard”. Is the phone taking time to process this command? I notice that when I press the power button, it takes me immediately back to the revolutionary recovery menu. Same thing happens when I try to select any menu item, including “reboot system now” and “power off”. I can confirm the file is located on the root directory of the phone. To do anything on the phone, I have to take the battery out to reboot. Any ideas???? Regards, Clay.

    1. when you get to install zip from sd card, the power button is no longer okay, use your okay button (not sure what it’s really called, the one underneath the screen, between menu and back)

      i was stuck at that exact bit.

  2. hi andrew been following for guide and i hve s-off on my phone successfully but i cant seem to find ‘’ file.i have downloaded the revolutionary twice and i still cant find it.did i miss a step?am lost here.need help. thanks

    1. do you mean you cant find where to downloaded from or you cant find it in the list after choosing ‘Choose zip from sdcard’?

  3. @saias thank you for your concern and your reply.i couldnt find where to download it from i thought it was a part of the rvolutionary bad.i found it i just had to read over the was right there. i am now s-off and rooted. thank you so much.
    however i want to know if i can have gingerbread just by installing supernova,and avoiding the radio n flashing radio steps?those are a bit complicated steps for me.

  4. thank you, merci, gracias 😉

    while doing the steps, i was like, “so what’s next” and the answer was the next line 😉

  5. Gr8 article i have ever found on net regarding htc rooting / flashing

    thank you so much for putting this informative page

  6. Thank you for this guide.

    I’ve followed it to the letter and managed to install this new custom rom. Thankfully, the radio appears to be working without having to flash it as I’m able to make and receive calls as well as browse online.

    I have run into a problem though. When trying to log back into my Google accounts, both market and gmail say that my username and passwords do not match. I’ve checked and double checked and can see no reason why this is the case.

    I’ve cleared the cache on the market app and attempted to re-enter my password, but to no avail. Has anyone encountered a similar issue?

  7. In addition to the above, I’ve logged into gmail via the browser with the same details and all is fine

  8. Afternoon,

    Firstly thanks for the helpful instructions – superb.

    This was my first time rooting and managed to install everything all OK. The only problem is after rebooting a few times at the end my internal storage is showing as 38MB, not 900 as said above?

    My sd card is 15GB and FYI my internet/phone calls work fine without the Radio installation 🙂

    1. Ignore the above… just as i sent this and rebooted for a 4th time its not at 800+mb 😀

      Yay o/

  9. Big thanks for tutorial – helped me a lot. Can receive calls, but my mobile network is still not running after trying 3 different versions of radio. Flashing went all right, tho. :S N’ i’m using AuraxTremeGinger(Sense 1.9/2.1(Gingerbread))
    Should i try a different ROM?

  10. Gr8 Article…I was totally pissed of on googling around for this.Finally its done.
    I would like to Request you to add a article on rooting Desire HD A9191.My HTC has all the crap from some Orange Brand.I really want to gain root access on it.It’s Officialy Updated to Android 2.3.5 and Sense 3.0.Plz Help

  11. Please, I need a help!
    After doing the procedure described above, everything is working OK besides the ability to read and send SMS messages. When I’m trying to read or send an SMS, I receive an error like that: “…unable to manage your messages …storage is full…”
    Clearing the messages and contacts cache doesn’t help.
    So how get back the ability to use messages?

    Thanks in advance

  12. Worked like a charm, on Desire bravo, PVT4 and erase size 40000 – CWM recovery worked perfect! Been on froyo for 2 years, will try supernova out for a while then maybe try oxygen! I couldn’t understand any of it at first but kept reading over it again and again and found a good video on youtube of someone using revolutionary to s-off and install CWM recovery and root.Thanks so much, the best description on the internet.

  13. i try to copy the downloaded ROM onto the sd card but it doesnt copy..i tried the super nova and another one..what can be the problem?

    1. Did you copy the zip file, what do you mean? Anyway since doing this I’ve chucked supernova rom (lots lagging issues) and switched to oxygen 2.3.2 – and it’s flawless. I love it!

  14. Big thanks for this. I was about to throw away my desire A8181 but now I think I’ll keep it a few more years!
    I had the same problem as David, but after a few more restarts than him (he says four but I think my phone needed about 15 or 20) it finally showed the 900 plus Mb of internal storage.

  15. Hi, I am new to the Android rooting the world and have been doing considerable reading to upgrade the software to overcome internal memory issues. I have had the phone 2 years now and generally happy with the overall size.

    The things I have done:
    Factory Reset
    Removed HTC Sync
    I have tried the Revolution method buy keep getting stuck on “Error Is your firmware too new”
    I have also tried to download a terminal emulator from the market…..however unsuccessful on every occasion.

    Please help!

    I have a Desire A8181
    Android Version
    Baseband Version
    Kernel Version
    Build Number
    2.29.405.14 CL345208 release-keys
    Software Number

    Bravo PVT4 SHIP S-ON
    H-BOOT 0.93.0001
    AUG 2010

  16. Please help! I did everything according to instructions, but got stuck on the last step, where I reboot the device, the blue light flashes but htc brand remains constant and the phone is not booting

Comments are closed.