A little while ago, I wrote about how I still love my HTC Desire phone. The hardware is excellent, and still on par with modern day mid-range Android handsets. It does have one tragic design flaw though. With Android 2.3 and HTC’s Sense skin installed, there’s only about 70 MB of internal phone storage left to install apps into. And with apps getting bigger and bigger, this is simply not enough.
The “Apps to SD” feature introduced in “Froyo” helps, but it doesn’t move all parts of the apps to the SD card. I must have spent hours moving apps around and cleaning caches, but I kept having to remove apps I really liked, just to free up space. This weekend, I decided I’d try to find a real long-term solution by fully hacking my phone. I’d been putting that off for months because I basically run half my business from this phone, but it needed to be done. And it worked.
There are tons of detailed tutorials out there about hacking the Desire, so it makes no sense for me to write another one. Instead I’ll try to list the “ingredients” I used. In essence, there are six steps to take. Please note that while these things worked for me, your mileage may vary.
1. Rooting your phone
The first thing you need to do (if you haven’t already) is to “root” your phone. This simply means getting full access to your devices operating system, by making yourself “administrator”. I used Unrevoked, and the process turned out to be really easy.
2. Flashing a custom recovery image
This sounds pretty intimidating, but like the previous step, it’s actually really straightforward. In fact, Unrevoked does this too, so once step one is complete, you’ll be able to hold down the ‘volume down’ button while turning on your phone to boot into “ClockworkMod”. This little piece of software allows you to do all sorts of advanced stuff with your phone, like Flashing custom ROMs.
ClockworkMod has an Android app counterpart called ROM Manager, that lets you initiate most of these actions from within Android. I highly recommend installing it once you’ve used Unrevoked.
3. Creating backups
I wanted to be absolutely sure that I could restore my phone to it’s crippled, but functional state if anything went wrong, so I used ROM Manager to backup the existing ROM (essentially your entire OS and data). I then powered down the phone, took out the SD card, and created an image file copy of it using Linux’s ‘dd’ command.
This way I would be able to first restore the SD card, and then use ClockworkMod to restore the ROM backup stored on it.
4. Partitioning the SD card
Almost all custom ROMs have some sort of mechanism that puts installed apps in a Linux (EXT3 or EXT4 filesystem, cards are usually just FAT32) partition on the SD card if such a partition is available. My laptop runs Linux, so I’m lucky enough to be able to do this straight from my OS. However, ClockworkMod can do this too, and it’s probably the easiest way if you’re on Windows. The option is in the “advanced” menu. Partitioning does completely wipe the card, so please back up your files before you do this.
5. Flash a custom ROM with A2SD support
There are tons of custom ROMs out there for the Desire, and it seems that everyone favors a different one. I decided on “Oxygen” because it’s based directly on Google’s Android code (version 2.3, Gingerbread), and is very efficient and lightweight. There are ROMs that have HTC’s Sense, but I really wanted to free as much room as possible.
Installing the Oxygen ROM through ClockworkMod turned out to be super simple, and it took only minutes for my phone to boot into plain, “senseless” Gingerbread. At this point however, I noticed that there was still only 170 MB available for apps and data. I thought I’d completed all the steps, but it turns out there’s one more.
6. Flashing a custom HBOOT
A HBOOT is like the BIOS on your PC, and from what I gather it controls the boundaries between system and data storage in the phone’s internal memory. I downloaded the Oxygen-specific HBOOT image from AlphaRev, and installed it using the method described right above the FAQ (which again uses ClockworkMod).
I’m pretty sure steps five and six should ideally be reversed, but I’ve not seen any negative effects from completing them in this order. When I rebooted the phone, I found there was over 250 MB of space available (out of 330), and the EXT3 partition on my SD card was used for apps too. I installed all the apps I previously had and still had over 180 MB left.
I’s nice to finally be able to add new apps to my phone again, and I think that with Oxygen installed, my Desire can still compete against all but the highest end smartphones. It’s very responsive and has plenty of room for apps. I still love the 3.7″ AMOLED screen, and the phone’s “pocketability”. I think I’ll keep using it for a while, and perhaps I’ll try a Jelly Bean ROM once they’ve matured.