Installing CyanogenMod 7 on your HTC Desire

I am writing this as a guide to others based on what I had to do to succesfully upgrade my own HTC Desire handset from the official FroYo software release to CyanogenMod 7.03. I couldn’t find a simple one-stop-shop guide for the whole process, so I am trying to make one.

This is for the HTC Desire (GSM version), also known as the HTC Bravo. It is not for the HTC Desire HD, HTC Desire Z, HTC Desire S or any other phone. ONLY the HTC Desire.

Before we get started, a word of warning. This may or may not work for you too. This process is not safe. There is no guarantee this will work. There is a strong possibility that your phone will be bricked, destroyed or eaten before, during or after this process. Most importantly, in all probability, THIS WILL VOID YOUR HANDSET WARRANTY. Consider this your fair warning and don’t do it unless you really, really want it. Don’t even think about blaming me when it all goes horribly wrong. I am not responsible for what you do with your handset.

Anyway, with that in mind, this is how I performed the upgrade. Overall, it took me about 90 minutes, but that was because I had to go and find all of these bits of information and make it work together. I imagine that you could do it under an hour using this guide.

I used:

  • An HTC Desire handset running Android 2.2 (FroYo)
  • A standard micro USB cable
  • A PC running Windows

It may be perfectly possible to use a Mac or a PC running Linux to do this, but I haven’t done so and so you’re flat out of luck if you’re hoping to read that here. Suck it up and borrow a Windows PC from a friend for an evening.

1) Back up everything

This software upgrade will remove everything from the phone. Things you might want to back up include your SMS messages, call history and any application-specific data that you wish to keep. You may also want to make a note of the applications you have installed so that you can easily reinstall them all. There are free applications available to help you with all of this. I used SMS Backup & Restore and Call Log Backup & Restore.

It is important to note that the contents of your SD card should not come to any harm during this process, but you might want to back that up to a PC too, just in case.

2) Install the HTC Sync driver on the PC

In order to let your PC communicate with your HTC Desire handset when it is fully turned on and booted up, you need the HTC Sync drivers installed. Seemingly you don’t want the full HTC Sync application though, as this might cause trouble, but I didn’t verify that. I found that the drivers are available on their own to download and install.

3) Install the HBOOT driver on the PC

In order to let your PC communicate with your HTC Desire handset when it is in the boot menu, you need the HBOOT driver installed. You can download the driver here. Unfortunately, there is no installer with these drivers, so you will need to do the following:

  1. Turn off the HTC Desire handset
  2. Hold down the Volume Down key and press and hold the power button. This will boot the phone in to the “HBOOT menu”.
  3. Plug the handset in to the computer via USB. Your computer should now detect a new device but it won’t have the drivers to successfully install it.
  4. On the computer, go to Start, right-click on Computer, click Properties, and select Device Manager. 
  5. Look for the an entry called “Android 1.0” that should have a little yellow triangle next to it.
  6. Right-click on the “Android 1.0” line and select Update driver software.
  7. Select Browse my computer for driver software and locate the directory to which you just expanded the zip file.
  8. Hit Next and continue in the positive through any warnings that come up (e.g. unsigned driver alerts).
  9. Hit Close and verify that you now have an Android Phone category in Device Manager, with something called the Android Bootloader Interface listed inside it.
  10. Use the Volume Up and Volume Down buttons on the handset to select the Reboot option and push the Power button to select. The phone should reboot in to Android as normal and be detected by Windows as an HTC Desire.

We’re done installing the HBOOT driver.

4) ‘Root’ and install a new recovery image

Now for the fun bit. Up until now, no lasting changes have been made to your phone. This is your last opportunity to chicken out. Steps after this may eat your puppies and generally cause misery if they go wrong.

Most of the other guides out there seem to treat this as two separate stages, but these days it can all done automagically using a tool called Unrevoked.

  1. Download the Unrevoked tool for the HTC Desire.
  2. Run the downloaded program – no installation required.
  3. Plug in the handset via USB if it is not already plugged in and make sure it is in Charge Only mode.
  4. Enable USB Debugging mode on the handset by going to Menu » Settings » Applications » Development and ticking the USB Debugging option.
  5. Hopefully Unrevoked will now recognise your device.
  6. Follow the warnings and instructions provided by Unrevoked and let it do its thing.

The phone will reboot multiple times as Unrevoked works its magic. Keep an eye on the Unrevoked screen to see when it’s done. It will tell you near the bottom of the window.

So that’s the phone ‘rooted’ and with a custom recovery image (ClockworkMod) installed.

5) Install CyanogenMod

The final stage is to install the CyanogenMod 7 ROM to the phone. You also need to install the standard Google applications as they are not included in the main CyanogenMod ROM for copyright reasons.

  1. Download the latest stable release of CyanogenMod 7 for the HTC Desire (GSM version) and save it somewhere on your computer.
  2. Download the Google Apps package for CyanogenMod 7 (scroll down to near the bottom of the page for the download link) and save it somewhere on your computer.
  3. Switch your HTC Desire in to USB storage mode so that you can copy files on to the SD card.
  4. Copy both of the downloaded files in to the root directory of the SD card.
  5. Turn off your HTC Desire handset.
  6. Hold down the Volume Down key and then press and hold the power button.
  7. Use the Volume Down key to select Recovery from the menu. Select it using the Power key. The phone should boot in to the ClockworkMod menu.
  8. Although not essential, I recommend backing up your old system ROM image to your SD card. Use the volume controls to navigate to Backup and restore and click the optical trackball to select (many of the other buttons simply turn the screen on and off).
  9. Select Backup by clicking the optical trackball. Your current system image will be backed up to the SD card (so make sure your SD card has enough space).
  10. Once completed, you will be back at the ClockworkMod menu. Navigate to Install zip from sdcard.
  11. On the next menu, navigate and select Choose zip from sdcard.
  12. Navigate and find the Cyanogenmod zip file and select it using the optical trackball.
  13. If you are sure you want to go ahead, navigate to the Yes – Install… option and select it with the optical trackball. CyanogenMod 7 will be installed.
  14. Once you have done that, repeat steps 10 and 11.
  15. Navigate and find the GoogleAps zip file and select it using the optical trackball.
  16. Navigate to the Yes – Install… option and select.
  17. Once completed, use the back button to get back to the root menu of ClockworkMod where you can select Reboot system now.

All being well, the phone will now reboot in to your new CyanogenMod 7 installation. You will need to go through all of the setup procedures like the phone was new and then restore all the data you saved right at the start in step 1, and reinstall all your apps.

That’s it! We’re done. Enjoy your Gingerbread-flavoured goodness! I hope this post has helped you through your upgrade. If something went wrong and your phone’s bricked, tough – you were warned before you started.

I would love to know how you get on and hear what you think of the ROM once you’re running it. Leave a comment!


I put this post together because I found that I had to get information from all over the internet in order to do this upgrade. As a courtesy, here are the pages that I ended up using, and to which you may wish to refer in case of difficulties.

33 replies on “Installing CyanogenMod 7 on your HTC Desire”

I was wondering if you (or anyone else reading this) had tried both the Oxygen ROM ( and CyanogenMod and could provide a comparison of the two.

Although I’ve had my Desire rooted for quite a long time now I only just jumped from the stock 2.2 ROM to Oxygen a few days ago. I’m liking it so far, but I wanted to know if others who have used both think CM is better for any reason.

This is my first foray in to the world of custom ROMs, so I don’t have any means of comparison myself. I’ve heard good things about Oxygen, but when looking around for it, I couldn’t find a central site for it or much in the way of documentation of how to install it, so I plumped for CM7. I agree it would be interesting to hear about other experiences.

I tried 10 – 12 roms in 3 months time but not find anything as good and stable as oxygen 2.3.2. I just didn’t liked the camera it’s bit dark (but I use occasionally so its fine). Other than that there is no problem in oxygen rom everything is damn stable. plus point for installing this rom on oxygen r2 Hboot. It will increase the internal memory to 300 MB and you will not need any scripts to store apps on ext partitions (which makes every phone slow down). Battery life is one whole day with moderate usage. Calls, browsing, SMS, games etc.. Try this rom, you will never feel comfortable on any other rom after Oxygen. I bet 🙂

This is marvellous; I was surprised when I went over to Cyanogen that there wasn’t a well-written how-to guide.

So thanks!

This is a great guide Mark. I managed to install CM7 on my phone before reading this but it took me like 3 evenings of scrolling through websites, wikis and rubbish youtube videos to distill all the info that is nicely laid out above!


I was a total noob to rooting and this guide was very easy for me to follow so thanks a lot. After installing it, my Desire was stuck on the cyanogenmod7 boot screen, doing a quick Google told me I need to simply wipe the device and reflash and boom everything works now 😀 Gotta love the android community, thanks for such a brilliant and easy to follow guide.

I rooted my desire fairly easily, but after installing cyanogenmod 7 , i was unable to get google maps and flash to install even after ticking the relevant boxes in GAPPS. As soon as i try to download them they immediately stop downloading. No maps no flash a complete waste of time. Now i cannot even flash a rom, as everytime i try it tells me to report to the rom manager. lucky i backed it up and can go back to stock. I later find out from the web their are lots of people having problems with Rom Manager and being told not to install it.

Did you follow my guide and then have this trouble, or did you use another technique? When I followed the steps in my guide, Flash worked and all the standard Google apps work fine.

So i decided to try this out on my HTC Desire, which has become slower and more unusable each day, so a few things i encountered on the way which could only be me, but the unrevoked tool didn’t want to load until i had a fresh reboot but like i say that could just be me. So anyway i followed the steps without a hitch did a reset and it boot looped for a while so i decided to go reset and do a clear data and cache and then reset the phone again and it booted up (a sigh of relief that i didn’t brick my phone) I also used the clockworkmod to do a backup of the phone just incase it decided to go south on the new installation, However its fine working really well a few things i was wondering is does anyone have wifi issues, i mean mine just drops out most of the time it could be battery but its in the green. Other than that flash light works bluetooth i haven’t tried phone sms mms dialing numbers etc i have tried. It seems to be alot faster than the froyo i had from when i got the phone so thats a deffinate plus, it is deffinately a new phone i am really enjoying these features the makers had popped in there, no issue with google apps too. So i would have to say just go ahead and grab this its awesome 🙂

Great guide, very easy to follow unlike most. Like Purav I also got stuck on the Cyanogen loading screen repeating, so I want to share the solution I found with anyone having the same issue. After doing some digging around I found some advice that helped me solve the problem. For the latest version of Cyanogen you need to make sure you are using the latest version of clockwork mod which is (it doesn’t come as part of the latest version of unrevoked, do a search for “recovery-clockwork-”, and before you plug your phone in select the custom image from unrevoked).

If when you use unrevoked you get an error message saying it was “unable to root, is your firmware too new?” you need to do a factory reset/data wipe from clockwork mod (and clear all cache), it won’t touch the sd card. Also I’ve read that for the latest version of CM you need to get the latest radio installed for the desire, otherwise you can run stability issues with wifi/camera etc.

I’m very please with the mod, thanks again for the guide!

I just followed the guide and everything seemed to go ok, but when I rebooted, the phone just sits on the cyanogen logo screen. I let it sit for a good 10 minutes but nothing. I’m using an HTC Desire.

Please can someone help me?

Many thanks

It seems the three people above, and now me, have all had the same issue. whilst following the guide, when we finally boot the new system, the loader gets stuck on loop. To avoid this, Hold down the Volume Down key and then press and hold the power button.
Then select to erase data, then reboot. This makes it work fine.

Thanks for the guide, great ROM

Thanks for that nugget Tom. I guess it’s worth noting that I had (coincidentally) done a factory reset a day or so before my upgrade which may have helped.

mrinsaneHi, Unfortunately 4EXT recovery does not work on the wilrdife, so you’ll need to find another recovery to flash. However it can be done without access to your rom. You’ll need to download the Android SDK from google as it contains the fastboot program. Reboot the phone into fastboot (power + vol down, select fastboot), make sure the new recovery.img is in the same directory as fastboot on your pc, and issue the command via terminal fastboot flash recovery yourrecoverynamehere.img If you have any issues drop a message back, or there’s plenty of fastboot tutorials out there.Matt

Thanks, I used your guide and it mostly works if you have older HBOOT. I had the new 1.02.0001 so had to follow another method. I used this guide

instead of your Step 4. Then followed your Step 5. It worked very well and I now have a rooted Desire with a Revolutionary recovery instead of the ClockworkMod recovery with the CM7 and Google apps installed.

I also used Android Flasher instead of the adb instructions to use the SDK to flash the HBOOT

How is Cyanogenmod 7 doing on your Desire/Bravo so far? I know that the ideal build for the model was supposed to be Cyanogenmod 6, probably because of memory concerns. But you’ve taken the plunge, what do you think so far? Does it overstress the phone? Is it stable? Are you having to recharge every 5 hours?

It’s working very well for me on the whole. There has been one occasion where something internal got screwed up due to the phone not shutting itself down before the battery died (the battery is getting old now, so it hits about 14% and just fails, catching the OS by surprise). That needed a full factory reset to get it working again.

But it’s a vast improvement on the base Android 2.2 HTC firmware that was on it before. Battery life is much better than before, with the device probably now able to last 1.5 days of my usage rather than 1 day (although I still charge it nightly). After a clean install, I have about 90-100MB free internal memory which soon gets gobbled up, but I’d say it’s still very usable.

It will be interesting to see whether CyanogenMod 9 will be released for the Desire. There has been talk of targeting the Nexus One, which is essentially the same hardware, so it’s possible.

sanjeebhiI used cwm in my htc wildfire and i used for a day or two. I fleashd a new rom through cwm but then the touchscreen stopped working and was trying to flash new rom but no way I can get into the system to enable usb debugging mode and also going into the recovery shows a htc with a red triangle. I want to install this software 4ext now. Can i install the recovery from computer or any other way but i need to get it working, coz having no touchscreen phone is like a dead man. Please, help me.sanjeeb.

Great guide, Thank You!

If you have upgraded to 2.3.3.
a) If you can’t access bootloader disable fastboot (now in Storage settings)
b) You have to S-off first (best done by using Revolutionary) and root (using SU)
c) If your cmod7 bootscreen is stuck: Enter Clockwork-Recovery -> Wipe User Data -> Reinstall Cmod (as ins Steps 10, 11)

Revolutionary is here:
If you are S-Off you can do ALL THE THINGS (installing ClockworkMR, rooting, etc.)
if you follow this post:

Hope that helps!


Great guide (and helpful additions in comments!) – all went well except camera doesn’t work. Clicking the app icon brings up a frozen black screen. Anyone have a fix?

I just did mine from 2.3.3. Ask Keksi suggests, wipe data before installing the 2 zips to avoid the HTC screen hang on reboot.
Works a treat. I have almost 90mb free on internal drive, and phone is super fast. All apps reinstalled a treat!!
Thanks for this guide.

Thanks Mark for the step by step guide. It was very helpful, even if I am a bit late to the party. I was waiting for my contract to expire before getting rid of the stock HTC ROM on my Desire. I’m posting the problem I had and fix I found, in case it helps someone else.

I was having the same problem as Dale W above, getting the “Error: failed to get root. Is your firmware too new?” error from Unrevoked 3. I tried all the factory resets, removing the SD card, reinstalling the PC drivers, switching anti-virus off etc which were all posted as fixes here and elsewhere – nothing seemed to get it working.

In the end I got it to install the Clockwork Recovery image by using an older version of Unrevoked (3.22 rather than 3.32 which is the current version – I don’t know if a newer older version might get round this problem). This rooted the phone at the first time of asking.

[…] Originally Posted by Velocio I put a CM9 on Felicity's Samsung S2. She's loving the slightly extended battery, and that the interface makes more sense to her than Samsung's one. There's nothing special to be aware of, just be sure you put a CM9 stable on there (released last month) rather than one of the nightlies. Cyanogenmod 7 or 9 for the Desire? I know nothing of their versioning.…l_Update_Guide…ur-htc-desire/ […]

Thanks for the guide Mark, very straightforward and made the whole process go smoothly. I was also stuck at boot screen on first reboot after the CM install. Wiped user data and it was fine. (I had factory reset prior as well)

Got it working now and it’s great!

Excellent Guide. but if your doing this in 2013 make sure you use A2SD DarkTremor so you can save apps to your SD card including the Dalvik Cache as modern apps take up far to much room for the Desire’s internal memory.

I tried the steps in your previous acitrle and the drivers did not work. So I downloaded these drivers, and Windows still cannot install them properly. Any suggestions?

I have try to unrevoked but getting error for HTC A8181 2.3.3
Error: Failed to push recovery. Terminating

Anyone can help me…

Thank your for this clear tutorial on how to “root” the Desire (Bravo). It was the first time I did something like rooting my phone and this guide really helped me throught it!
I did however had a few hiccups in the process of rooting my phone.

When I was running Unrevoked, it went quite smoothly until the program was trying “running root”. After a while it gave up and it returned the error: “Failed to get root: firmware to new”. As earlier comments suggested, this error doesn’t pop up in version 3.22 of Unrevoked. (Actually, I hadn’t read the comments at that time, but Google was helpfull as well). I also set my phone to factory default, since I was about to wipe the current ROM anyway.

Installing the ROM from .zip file was really easy and went (almost) without any problems. I recommend to create a special folder on your device to put the file in, since ClockworkMod didn’t recognize the .zip from the root folder. Moving the zip-file to a subfolder did work and I was able to select the file.

After rebooting my device, the Cyanogenmod was looping in it’s bootloading screen. After performing another few searching on Google, I found out that most developers recommend to format the /system folder before installing an other ROM. This can be achieved by booting in ClockwordMod (Power on + volume down > recover) and select ‘mounts and storage’ and select ‘format /system’. This does recuire a reinstall of the Cyanogenmod so I ran through step 5.10 to 5.17 again and after this it worked. I finally got Cyanmogenmod working 🙂

I hope this comment can help other people as well. Thank you Mark, for this clear step by step tutorial.

I just wanted to post my thanks for this blog and also for the helpful comments. My daughter has a new phone and we passed her HTC Desire to a teenager because the specifications are still not bad compared to the current crop of entry level phones. The problem was lack of memory available to apps. And so the solution was to root and install a mod. I searched the net and despite being a computer professional found many pages a bit like watching an episode of a TV series midway through the run. Lots of information but assuming that you have prior knowledge of the back history of the programme.
So Mark’s blog was a godsend. It took us (well me really – but I wanted to involve the young man) about 6 hours over 2 days to complete – mainly due to my thinking I’d abandoned HTC sync leaving only the drivers when sync was still syncing.
As a Christian (should I apologise?) I couldn’t help thinking about the book, Pilgrim’s Progress where the character Pilgrim is assisted on his journey to the heavenly city by companions that he meets along the way.
So Mark’s step by step instructions were wonderful but also the comments on the looping bootloader and the older versions of clockwork and unrevoked and A2SD dark tremor and formatting the system folder. Like Pilgrim there was a slough of despond when we lost Google Play store and couldn’t get it back but reapplying the Google apps zip seemed to eventually do it. And the skateboarding Android logo was a suitable metaphor for the vision of the heavenly city.
So many thanks for the generosity of spirit in posting the blog and to all the ‘companions’ contributing the comments and tips. I certainly couldn’t have done it without you (all). Kudos.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.