Well, he's backed the promise up with action and as of this morning, full instructions have been posted.
Paul notes that HTC made it much harder to access key partitions and write any data to them, compared to, say, the Nexus One. This made the process of rooting extremely complicated and left it a quite crippled (he's still working on uncrippling it).
The current set of instructions (29/Apr r3) is below - get ready to do some reading:
Read this whole topic - it contains a ton of useful information as well as the instructions and downloads!
Remember that if you use this guide, you do so entirely at your own risk!
Welcome to my guide on how to root the HTC Desire!
This guide will allow you to root your HTC Desire, provided it has a bootloader version of 0.75 or below. To check this, turn off your device, then turn it back on with the 'back' key held. On the second line in green text you will see HBOOT- and then a number. Provided this is 0.75 or below, this guide should work for you.
O2 Germany devices are currently shipping with a 0.80 bootloader, and as such cannot be rooted using this guide at this time.
Desire rooting protection
Back in the early days of Android, rooting was easy. You had several options - you could flash stuff via the bootloader, you could flash an engineering bootloader, you could use kernel exploits - there were many ways of getting the low level access to your device that - in fairness - I think we as paying customers are entitled to. As time has progressed however, the manufacturers have made things harder and harder. The Desire is not a straightforward phone to root, for many reasons, including...
- a 'perfected bootloader' that doesn't allow flashing or booting of any images (even HTC signed ones)
- a RUU flash process that does not allow downgrading of the bootloader to earlier versions
- a kernel (that as yet does not have publicly available source) that as yet has no known exploits
- a new protection method previously seen on the HTC Tattoo that protects key partitions from having write access. Even with SU access, it is not possible to write to the boot, recovery or system partitions.
In reality, the options for rooting a device this secure are limited. Even if a kernel exploit were found, the key partitions would still be unwritable, rendering su access useless. This was circumvented on the Tattoo very cleverly, using a specific memory address from a confidential Qualcomm datasheet, however this information is not yet available for the Snapdragon chipset used in the Desire (and indeed may never enter the public domain).
And so the root process becomes a process of methodically probing every possible point of exposure on the device, looking for the slightest chink in the armour. I found one and we're putting it to good use! The downside is that it's not as easy or as pretty as rooting a device that is actually DESIGNED to be accessible at the lowest level, such as the Nexus One.
Shame on you HTC for going to such unnecessary lengths (but that's another story for another day).
What this root process provides and does not provide
The root process will...
- flash your device with a new, generic 1.15.405.4 based ROM that has Superuser access
- show you how to enter the recovery image in future, allowing you to flash update zips
The root process will NOT...
- enable you to flash your device with a custom recovery image that can be launched easily by just holding down the volume down button when powering on
- enable you to have write access to the /system partition in normal use of the device
Both of these limitations are being worked on of course.
In order to complete this guide, you need the following...
- a HTC Desire
- a PC
- a microUSB cable
- a microSD card (to be made into a 'goldcard')
- the downloads below
- balls of steel (actually, I just made that up)
To be ready for the guide, download the following items...
Once you have this on your machine, you're ready to start!
Follow through these steps, one by one and at the end of it you'll have a rooted Desire with the latest ROM.
Note: This process will wipe your device and there is currently no option to backup your device ROM before you start.
- Make your microSD card into a goldcard by following these instructions (it's a good idea to back up the contents of your card first!).
- Burn the ISO you downloaded above to a CD and boot it, or boot it in a virtual machine.
- Press enter when prompted to load Linux. When it has loaded, click the little 'monitor' icon at the bottom of the screen to open a terminal window.
- Turn off your HTC desire, then turn it back on with the 'back' button held down. You'll see 'FASTBOOT' written on the screen in a red box. Connect the phone to the computer.
- In the terminal window, enter the following commands:
sudo mkdir /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
- When this step has completed, using the optical trackball, navigate to the 'BOOTLOADER' and then 'RECOVERY' option on the menu, using the volume buttons to move and the power button to select. Then, again in the terminal window, enter the following commands:
- When this has completed, your device should be at the 'recovery' screen. Select the 'wipe' option, then select the option to apply an update zip from sdcard, and select 'rootedupdate.zip'. This will take a little while, so go make a nice cup of tea. When the flash has finished, reboot, and you are DONE!
If you have any issues with the root process, post below, and we'll do our best to help!
If you wish to do so, you can express your appreciation by signing up to a MoDaCo Ad Free or MoDaCo Plus Account using PayPal or Google Checkout, as detailed in this post on MoDaCo. As well as donating to support the work that goes into all the various MoDaCo activites, you get cool stuff like free software (there's some great Android stuff coming too!), an ad free MoDaCo site and of course access to the MoDaCo Online Kitchen. All signups are very much appreciated.
Thanks to ChainsDD for his excellent new Superuser Permissions update and Amon_RA for the recovery image I butchered here.
Here are some optional updates also provided by Paul (such as A2SD for those looking for the ability to install applications to the SD card:
Optional update zips
Apply this updates after rooting by copying to sdcard any applying from the recovery image (entered using the recovery-xxx.sh method).
A2SD - DOWNLOAD / MIRROR
32.36.00.28U_4.06.00.02_2 Radio update (from Asia 1.19.707.6 update) - DOWNLOAD / MIRROR
Chinese Input (HTC_CIME) - DOWNLOAD DO NOT USE ON ORANGE
Arabic Fonts (testing) - DOWNLOAD / MIRROR
Hebrew Fonts (testing) - DOWNLOAD / MIRROR
What can we say after seeing how much work was put into this release?
Huge props to @PaulOBrien and those devs who helped him out.