Last update: 18/09/2010 22:00 – To reflect the release of another official OTA update, 2.10.405.2 there is now a new post available here.

Earlier today, HTC released via an OTA update FroYo, Google’s latest release of the Android operating system.  The release however was only targeted at those who purchased their handsets unlocked and devoid of any network operators branding.  Also, owing to possible concerns over bandwidth and server overloading the OTA update is being rolled out slowly so not everyone will have the notification to download just yet. So, that leaves those without an unlocked and unbranded handset left with Éclair (or Android 2.1) missing out on all of the FroYo fun.  However, there is of course a way around this; just follow this guide.

Caveat: As is usual with such things, messing around with the ROM will void your manufacturers warranty so please be aware of this before proceeding, also whilst I have had absolutely not issues to date (and I have flashed the ROM many times now), should you encounter an issue part way through it is possible to brick your phone; so please ensure you understand these instructions before proceeding.  I will not be held liable for any damage you cause to your own handsets. For the purposes of this guide I am assuming like me, that you want to do a fresh install of FroYo and not an upgrade keeping all your current settings and apps in place, I choose to reinstall apps from the market afterwards.  Of course if you want to upgrade instead this should work also, although I have not tested it. This guide assumes that you have HBOOT 0.82 or below, if you have HBOOT 0.83 this method will not work and you will get an Error 140 during the RUU process.

Also worth noting that some of the newest Desires do not have the AMOLED screen anymore, but are shipping with SLCD which also have the 0.83 HBOOT, the update contains the screen driver for the AMOLED screens and not the SLCD screens, so if you follow this guide and perform the update, you’ll be left with a blank screen as the new driver is not compatible (if you have done this by mistake, there is a way back, but the fix is not for novices).  To find out which version of HBOOT you have you’ll need to reboot into FASTBOOT mode, turn your device off and restart with the volume down button pressed.  Also, please DO NOT flash this update if you are currently on Orange UK as the new radio contained within the update will cause you problems, instead you’ll have to wait for the official Orange update or delve into the world of custom ROMS (I recommend heading over to XDA Developers for further information). One final word of warning, by installing the official 2.2 update as in this guide, you will also upgrade your HBOOT version to 0.92 which means that you cannot ‘root’ your phone afterwards; of course this is not an issue if you have no intention of running custom software or messing around further with your device  Root will no doubt follow soon I would imagine.  In the mean time there is now also a way of downgrading your HBOOT, details can be found here.

Essentially, if you want the latest official Desire software as you would get ‘out of the box’ from a shop, this update is for you.  If you want a custom phone with the ability to access root, stop and ensure you fully understand that HBOOT will be upgraded before proceeding.

First of all, you need to complete the following important step:

  • Read the above warning again and make sure you understand it; ensuring that you have the correct HBOOT version as reading some of the comments, some people have followed the guide with an HBOOT of 0.83

Next you need to set up ADB on your PC and ensure that you have the correct version of the USB driver (which if you have already installed HTC Sync, you should have) installed, to do this do the following:

  • Download the latest Android SDK directly from Google by clicking here
  • Extract the SDK .zip file to c:AndroidSDK on your PC
  • On your phone, click Settings>Applications>Development and ensure that USB Debugging is enabled
  • Plug your phone into your PC via a USB cable (ensuring that your phone is on, obviously).  You should now get a popup telling you that new hardware device drivers are being installed; this might take a few moments to complete
  • Open a command prompt and type the following:
    cd [then press Enter]
    cd AndroidSDKtools [then press Enter]
    adb devices [then press Enter]
    you should see a serial number pop up, it’s the serial number of your phone.  If this is the case you can proceed to the next step

Next we need to create a goldcard by doing the following:

  • Copy all of the data on your microSD card to a backup location on your PC
  • Format the microSD to FAT32 format
  • Open a command prompt one again and type the following:
    cd [then press Enter]
    cd AndroidSDKtools [then press Enter]
    adb shell cat /sys/class/mmc_host/mmc1/mmc1:*/cid [then press Enter]
  • You should get a long number something along the lines of 532600bd227d9c0347329407514d5420
  • Goto this page and copy the number in the above step into the box and hit Submit, you’ll then be given another long number
  • Go to this page and enter this new number into the SD Card Serial (CID) field
  • Enter the other details and hit Generate Goldcard
  • Check your email and save the attached goldcard image file to your pc, I usually save it to the desktop as you’ll be needing it shortly
  • Download HxD Hex Editor from here and install
  • Open HxD Hex Editor. If you are using Windows Vista or Windows 7, you must run the application as administrator
  • Go to the Extra menu and select Open Disk.  Under physical disk, select Removable Disk (your microSD card), uncheck Open as Read-only and click OK.  Note that you should select physical disk NOT the logical disk
  • Go to the Extra menu again and select Open Disk Image.  Open the goldcard image that you received by email and saved above
  • You should now have two tabs; one is your removable disk and the other is your goldcard image.  Press OK when prompted for Sector Size (selecting 512 (Hard disks/Floppy disks)) and click OK
  • Click on the goldcard image tab.  Go to the Edit menu, choose Select All then select the Edit menu again and select Copy
  • Click on the Removable Disk tab.  Highlight offset (line) 00000000 to offset (line) 00000170 (including the 00000170 line), then click on the Edit menu and select Paste Write
  • Click on the File menu and select Save, accepting the warning
  • You now have a goldcard

Now that you have your goldcard, you need to download a generic HTC RUU update in order to flash your phone with a generic, unbranded version of Android 2.1

You can download the file from here (1.15.405.3 European), here (1.15.405.4 WWE) or here (1.21.405.2 WWE) – NOTE: Some people are finding that they can flash the 1.21 ROM and then FroYo directly, whilst others are finding that they need to flash the relevant 1.15 ROM first, if you try the 1.21 first and it doesn’t work you’ll get an error so simply re-try with the 1.15 and go from there.

To flash the update, simply run the file you have just downloaded (note: once this file is running it’ll restart your phone in bootloader mode and your PC will attempt to install another driver, it’ll work but the software will time out waiting to recognise your phone as your PC will need to restart to apply the new file.  Simply leave your phone connected and in the bootloader and restart your PC, then run the file again and it’ll work!) – You will now have an unbranded, generic Desire (although in my case I still had the Virgin boot screen curiously).  To double check, go to Menu>Settings>About Phone>Software Information and check that Software Number is 1.15.405.3, 1.15.405.4 or 1.21.405.2 before continuing. Next you need to download the FroYo update file which you can find here [Mirror - the file has already been renamed to update.zip], once you have done this rename the file update.zip and copy it to the root of your microSD.  Turn your phone off then do the following:

  • Turn your phone on whilst holding down the volume down button to enter the HBoot menu
  • Choose the Recovery option by using the volume down button and the power button to select, your phone should then restart in recovery mode where you’ll be greeted with a red triangle and exclamation mark
  • Press and hold the volume up button and press the power button once, then choose to apply update.zip at the next menu
  • The FroYo update will now take place during which time your phone will reboot several times, the whole process takes about 10 minutes
  • Once you have booted up into FroYo and configured your settings, copy your files back onto your microSD card and you are good to go!.

** Looking ahead, I will create a similar walkthrough when Gingerbread is released, if you want to be notified when this is published, please signup to my blog feed via Feedburner to receive email notifications **

A big thanks to Timi for all of his help answering the comments below.  It’s great to see when readers get involved and share their knowledge and expertise.

Downgrading HBOOT and installing custom Froyo ROM

If you have come across this post looking for a way of downgrading your HBOOT and installing a custom Froyo ROM instead of the official OTA ROM as detailed above, I have a post detailing how to do that here.

I hope you find this useful.  Enjoy!

Could this be one of the first actual screenshots of the latest version of Android?  If you believe what you see then it would seem that this screenshot shows us a working Android 2.2 (codenamed Froyo) build on a Nexus One.  It comes at the end of a video which demonstrates the latest mobile version of Flash (Flash 10.1) being demonstrated by one of the Flash developers; the combination appears to work very well and would suggest perhaps that key Adobe employees and developers have been ‘given’ a copy of the latest incarnation of Android to test compatibility.

From the looks of the screenshot, Android 2.2 will bring us an updated Launcher, tutorial and global search box amongst other things.  There are no official details yet but I look forward to hearing more news and the official list of changes from Google when they become available; which presumably will be revealed at Google I/O which starts later this month on May 19th. With Flash 10.1 rumoured to be released in June, I’d hope that Android 2.2 would be available to coincide with this.  No doubt more details will be released soon.

Here’s the video demonstating Flash 10.1, for those wanting to ‘fast forward’ to the Android 2.2 screen, you’ll find it at the very end of the clip. Needless to say I will be keeping my eye on XDA over the coming months. I’m more than happy with Android 2.1 but will for sure, try one of the custom ROMs incorporating Froyo when they become available which shouldn’t be too long if history repeats itself.

Google Earth works great on the Desire, but owing to the problems with the Desire still not fully working with the Market, it’s not available to download as yet.  This problem seemingly is owing to Google not yet updating their databases with the authentication fingerprint for the Desire; talk to HTC and they’ll direct you to Google, talk to Google and you guessed it, they’ll simply not respond.  Not very helpful to be honest and very frustrating to say the least, you’d imagine between the two companies they’d be eager to ensure full functionability to showcase the full potential of what is essentially the flagship Android device here in the UK.  I could understand Google’s slow progress (read: reluctance) if the Desire were directly competing with the Nexus One but of course it isn’t really, they are selling in different markets.

There is of course a way to overcome this, all you’ll need to do is manually install the .apk file onto your Desire, the easiest way to do this is to install it using the HTC Sync software.

The .apk file can be found here (if you are having difficulty I have also put the file into a .ZIP archive here).

Enjoy.

Much kudos must go to Paul over at MoDaCo for becoming the first person to give us root for the Desire.  It’s still early days in terms of ROM development but at least now it gives us the opportunity to start truly customising our devices without the bounds imposed by HTC.  I remember with great fondness the fun I had flashing custom ROMs on my G1 and HD2 (although of course for WM devices it was a different process altogether), at times I would flash everyday just to say I had the latest and greatest; but of course you will soon find the best ROM that suits your particular needs and stick with it.  I wonder how long it will be before we get a proper Cyanogen release for the Desire.  Now there’s something to look forward to.

Before I start with the rooting process itself, there are a few things you should know.

Compatibility

By following the instructions below you will be able to root your HTC Desire, but important, this only applies if you have a bootloader version of 0.75 or below and a ROM version of 1.15.xxx.x or below,  to check this, turn off your Desire and then turn it back on with the back key held.   You need to look at the second line which should be in green text; you’ll see HBOOT followed by a number.  Provided this is 0.75 or below these instructions should work for you.

Root Protection

Previous to the latest incarnations of Android, rooting was easy.  There were several options you could take and many ways of getting the low level access to your device that you wanted.  As with a lot of things though, the manufacturers have become wise to this and engineered ways of making this harder and harder to achieve.  The Desire certainly is not a straightforward phone to root for a number of reasons including:

  • A ‘perfected bootloader’ that doesn’t allow flashing or booting of any images (not even the signed HTC ones)
  • An RUU flash process that does not allow downgrading of the bootloader to earlier versions
  • A kernel that as yet does not have any publically known exploits, made worse by HTC not releasing publically the source code, yet
  • A new protection method previously seen on the HTC Taboo 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

The reality is that the options currently available for rooting the Desire are very limited.  Assuming that a kernel exploit had been found, it would still leave the key partitions unwritable, essentially rendering the SU access useless.  And so, the root process became a process of methodically probing every possible point of exposure, looking for a way in.  This has now been found; the downside being that it is not as simple as rooting a device that is actually designed to be accessible at the lowest level such as the Nexus One (even though the hardware is very similar)

The Root:  What is will and won’t do

The root process currently will:

  • Flash your Desire with a new, generic 1.15.405.4 based ROM that has SU access

The root process will not:

  • Enable you to flash your Desire with a custom image that can be launched by just holding down the volume down key when powering on as in other Android devices
  • Enable you to have write access to the /system partition in normal use

It goes without saying that both of these limitations are being worked on and no doubt will be overcome in due course.  I’ll publish an update once this has happened or you can follow the thread directly over at MoDaCo or XDA.

Prerequisites

To be able to follow these instructions you will need or have access to the following:

  • Your Desire, obviously
  • A computer running Windows, OSX or Linux
  • A microUSB cable
  • A microUSB card (to be made into a gold card which is necessary if your Desire is an operator supplied device such as Orange or T-Mobile; you’ll also need ADB (part of the tools folder of the SDK, available here) and HxD Hex Editor which is available here)
  • The downloads listed below

Downloads

Before making a start on the rooting process, download the following file to your machine.

Caveat:  Rooting your desire could void your warranty, please be aware of this before going any further.  Also, read through all of the steps before you start to ensure that you fully understand what you need to do.  If unsure, stop.  I take no responsibility for any bricked devices as a result of following this guide.  Important also to note that the root process will wipe your device there is currently no option to backup your device ROM before you start; rooting the Desire is still in its early days and is not as simple or comprehensive as say rooting a G1; yet.

So, now that you are ready here are the steps needed to perform root on the desire:

Step 1 – creating a Gold Card (Only need if your Desire is operator supplied)

  • Format the microSD card to FAT32 format
  • Put the microSD card into your Desire and boot
  • Ensure that you have unzipped the SDK, and then open a command prompt to in the location that you extracted it.  Change to the /tools directory
  • Enter the following, then press Enter:
    adb shell cat /sys/class/mmc_host/mmc1/mmc1:*/cid
    You should get a very long number which looks something like 00544d5107943247037c7d22bd003453
  • Visit this page and enter the number then visit this page and enter your reversed number and create your gold card image, which will be emailed to you
  • Open the HxD hex editor (Important to note that if you are using Windows Vista or Windows 7 then you must right click and run as administrator)
  • Go to the Extra menu and select Open Disk.  Under physical disk, select Removable Disk (your microSD card), uncheck Open as Readonly and click OK.  Note you should select the physical disck and not the logical disk, this is important!
  • Go to the Extra menu again and select Open Disk Image, open the gold card image that you should have now received by email
  • Now you will have 2 tabs, one for your removable disk and the other for the gold card image.  Press OK when prompted for Sector Size (selecting 512(Hard disks/Floppy disks)) and click OK
  • Click on the gold card image tab.  Go to the Edit menu and choose Select All, followed by the Edit menu again and then Copy
  • Click on the Removable Disk tab.  Highlight offset (line) 00000000 to offset (line) 00000170, then click the Edit menu again and select Paste Write
  • Click on the File menu and select Save accepting the warning that follows.
  • You now have a gold card!

Step 2 – Rooting

  • Unzip the file that you have downloaded above into directory, then open a command prompt/terminal window at that directory
  • Turn off your Desire, and 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 Desire to your computer
  • In the terminal window, enter the following (as appropriate to the computer you are using!) followed by Enter:
    step1-windows.bat
    ./step1-mac.sh
    ./step1-linux.sh
  • When this step has completed, using the optical trackball, navigate to BOOTLOADER and then RECOVERY in the menu, using the volume buttons to move and the power button to select
  • In the terminal window, enter the following (again, appropriate to the computer you are using) followed by Enter:
    step2-windows.bat
    ./step2-mac.sh
    ./step2-linux.sh
  • Once this has completed, your Desire should be at the recovery screen.  Next select the Wipe option, then select the option to apply an update zip from sdcard.  Select rootedupdate.zip
  • This will now root your Desire but will take a little while so an ideal time to make a cup of tea!
  • When the flash has finished, reboot your Desire and you’ll have root

Enjoy!

Thanks to Paul for finding root, nilezon for his patched windows ADB binary, ChainsDD for his SU permissions update and Amon_RA for the recovery image which has been used in this guide.

After months of speculation and a plethora of inferior apps arriving in the Marketplace, Dropbox have finally released their Dropbox for Android app which is now available for download directly from the Android Market; simply do a search for Dropbox and hit install.

Further details can be found on the Dropbox website or in their blog.

There is of course also respective apps available for the iPhone and iPad with the BlackBerry app said to be following soon, making Dropbox a truly cross platform app; you have to respect the development team for that.

If you’re unsure what Dropbox is then I have outlined it in a previous post, remember also that if you sign up using one of my referral links then you get extra space for free too!

I’m off to download (well, once my Desire has finished charging!).