Once you’ve rooted your phone you’ll probably want to install a custom ROM to take full advantage of the new gateway you’ve opened in to phone modding.

Requirements

  1. A rooted Desire

Choosing A ROM
If you’ve already found a ROM you want to install then skip down to the “Installing the ROM” section.

I use XDA-Developers to browse and download ROMs.  There’s a massive selection there all created and customised by various developers.
Just visit the Desire Development section to find a ROM

There’s plenty of ROMs to choose from, each with their strengths and weaknesses.  In order to pick a good ROM there’s a few things to consider:

  • Developer – ROMs are developed usually by individuals, some are created by teams (such as CyanogenMod).  There’s a few dev’s that are well known and have decent reputation, here’s a few examples:
    1. richardtrip – developer of the DeFrost ROM
    2. AdamG – developer of the OpenDesire ROM
    3. uDK – released the leaked Froyo for Desire
    4. Cyanogen – well known for the CyanogenMod series (but currently no stable version for the Desire)
  • Features – what’s included with the ROM.  Here’s a few things to look out for:
    1. HTC Sense – quite a few ROMs don’t actually have HTC Sense.  They run Vanilla Android, which is Android without HTC’s Sense User Interface, and HTC’s applications.  I quite like Vanilla Android, but if you need Sense then make sure the ROM you choose has it.  If you’re not familiar with Vanilla Android then there’s no harm in installing a vanilla ROM to try it out.
    2. A2SD – Apps to SD card feature which means you can install apps to your SD and not have to worry about free space on your phone.  Although Froyo brings A2SD to the Desire anyway, I still managed to run out of space using it (it stores part of the app on the phone still).  As a workaround I switched to the unofficial A2SD method which stores the full app on your SD card though requires an initial setup stage where you create a partition on your SD card to store the apps.
    3. Cache to SD AKA dalvik2sd – This relates to the unofficial A2SD mentioned above.  If you have a fast SD card (class 4 or 6) then it might be worth looking out for this feature too.  If you’re still on a Class 2 like me then it’s probably better if you get a ROM without this.
    4. Custom Kernels – some ROMs will have a custom kernel which features UV (Undervolting) and/or OC (Overclocking).  From my limited understanding, UV causes less voltage to be provided to the processor and therefore increases battery life, whereas OC increases the maximum number of CPU cycles and therefore makes the phone run a little bit faster.  I prefer to stick with the stock kernel in terms of OC/UV.  Additionally, some kernels add support for things like ext3/ext4 partitions, Wireless N and volume hacks.
    5. Theming – some ROMs have exactly the same functionality as other ROMs, but simply look different.  Dev’s have created skinned versions of both Vanilla ROMs and of HTC Sense ROMs.  If you want an alternate look then a themed ROM might be worth looking out for.
    6. Extras – there’s a lot of other customisations developers choose to make too.  Usually the dev will list all the features and modifications in the first post of the article (assuming you’re using XDA) so you can have a look and see if it’s something you like!
  • Updates and Issues-have a look at the topic to see if there’s been many updates to the ROM.  Good developers maintain their ROM and actively fix any problems that occur.  Unfortunately, there’s a number of ROMs where the developer simply wanted their 5 minutes of fame, and then didn’t bother updating the ROM any more even though it has several issues.
    At the top of quite a few ROM topics, the developer will mention and issues that the ROM has so that you’re aware of them before installing.  You can also read through the topic to see if users are reported any other bugs too.  If it seems unstable then it might be worth holding off that ROM for a while.

Installing a ROM

  1. MAKE A BACKUP OF EVERYTHING FIRST.  If you don’t know how have a look at my tutorial here.
    There’s also a backup method in ROM Manager called “Backup current ROM” which I suggest running at least once too.
  2. Download the ROM file from the topic on XDA.  Certain ROMs such as the HTC Sense Froyo’s also need a radio file, if that’s the case then download that too
  3. Connect your Desire to your computer in Disk Drive mode
  4. Copy the ROM file (should be a zip file) and radio (if you need one) to the SD card
  5. Unmount your phone – Eject and change mode to Charge Only
  6. Reboot into recovery using one of these methods:
    • If you have adb install just open Command Prompt/Terminal and type: adb shell reboot recovery
    • If you have ROM Manager installed just choose the “Reboot into Recovery” option
    • Otherwise, turn off your phone -> Hold down Volume Down and Power to boot into hboot -> use the Volume Down key to select “Recovery” and then press the Power button to select it
  7. Once in recovery use your trackpad to scroll down to install zip from sdcard
  8. Choose choose zip from sdcard
  9. Select the ROM to install – your ROM will begin to install
  10. Once installed press the back button a couple of times to go back to the main screen of Clockwork Recovery
  11. Choose reboot system now
  12. If your ROM needs a new radio installing then check if there’s any specific steps in the ROM topic, otherwise just repeat steps 6-9 but select the radio zip file instead of the ROM in step 8
  13. Your phone will now restart and attempt to boot into the custom ROM

FAQs

  1. My phone gets stuck at the boot screen, help!
    Just go back into recovery and select the wipe data/factory reset option.  Then restart your phone.  If the problem persists have a look in the ROM topic because it may just be a faulty version of the ROM.
  2. How Do I Create An Ext Partition for A2SD?
    This is only needed if you’re using the unofficial A2SD script.  If you want to use Froyo’s built-in version then you don’t need to do anything.
    You’ll need 1) AmonRA recovery port: link and 2) UnrEVOked again
    Using the root guide you used previously and get to the point where you have to run UnrEVOked – but DON’T CONNECT YOUR PHONE yet
    Go on File -> Custom Recovery, and select the AmonRA file you just downloaded (e.g. recovery-RA-desire-v1.7.0.1-R5.img)
    Now connect your phone and let UnrEVOked do it’s thing
    You’ll end up in recovery mode, but now with a different recovery image
    Scroll down to Partition SD Card
    Select Partition SD
    Press Trackball to confirm
    Set the swap size to 0
    Set the ext-2 size to any size you want – this is where your apps will be stored.  I’ve found 2GB way more than adequate but it’s down to personal preference.
    Fat32-size should be remainer.  This is your normal storage space for everything that’s normally on your SD card (what you see when you connect in Disk Drive)
    Press the trackball and your SD card will be partitioned.   When you restart your phone the A2SD script should automatically copy all your apps to the new ext2 partition, and installl any future apps to there too!