It turns out that HTC logs application crash info in a file called /data/data/com.android.htcprofile/anr_history.txt. This file can get very big with time. You can safely delete it, reboot and enjoy the reclaimed data space.
I have an HTC Desire phone. I upgraded from my HTC Hero almost as soon as the Desire became available in Sweden. It has served me well for quite some time, but has one major drawback: it has far too little storage space for applications and data.
HTC Desire owners always have to make a choice, because every time they want to install an new app, they must choose which one to uninstall to make room for it. And every day they curse the app developers for not letting them move the application to the SD card. I have lived in this situation for far too long, and a few days ago Adobe tipped the scale by almost doubling the storage requirements for the Flash Player app.
What were my options? Well, it turns out that there are a few:
Minimize the data usage
Just make the apps use less storage space. Here are a few things you can do.
- Move all apps to SD card. It’s easy, just click on “Move to SD card” in the application manager. Unfortunately, the largest applications won’t let you do that, like Flash Player or Facebook. Also, only parts of the application is moved to the SD card, so it still takes up space on the data partition, just not as much.
- Decrease the cache size in the Internet app. Can save you a MB or two.
- Don’t update unnecessary data. There is basically no need to update both the HTC Facebook app and the official one. The same goes for Twitter/Peep.
- Use smaller apps. Soundhound takes less space than Shazam, Moboplayer is smaller than Rockplayer etc.
Unfortunately, this can only help you for so long, since the apps get larger for every update. The data partition will get full sooner or later.
Update the system-installed apps in-place
This is a quite interesting option, which I only discovered just recently. It turns out that Titanium Backup has a neat feature that lets you replace the factory installed apps with their updated ones. Then they won’t take up space on the data partition, since they are installed in the system partition instead.
There are a few drawbacks, of course.
- You need to root your phone. This is however quite simple nowadays, with the Revolutionary tool. A more detailed description is here.
- You need to purchase the Pro version of Titanium Backup, but I think it’s worth every penny.
- You will alter the system partition, which can always be scary.
- The system partition on the Desire is already almost full (about 6MB left on my Froyo), so you can only replace a few of the apps before the system partition is completely full.
In fact, when I tried to move the dreaded Flash Player to the system partition, Titanium Backup did not have sufficient checks to make sure that it fit, and got stuck when trying to install Flash Player. I had to force close Titanium Backup, and ended up with 38KB left on the system partition and Flash Player still in the data partition.
Still, I think this might be a good option for those who only need to regain a few extra MB from the data partition.
Install a ROM with A2SD+
This is by far the most definite solution to the problem. A2SD+ is a way to make Android install the entire applications on the SD card instead of the internal memory.
There are a few drawbacks here as well.
- You need to root your phone.
- You will most probably need to wipe your phone, i.e factory reset. This means losing all your installed applications and their settings. However, if you backup your phone with Titanium Backup before wiping it, you can restore most, if not all, of your apps and settings after the installation of the new ROM.
- For some reason, the guys that assemble those different ROM’s just can’t resist packing tons of “features” into the ROM, like overclocking and silly theming. It is virtually impossible to get a ROM with just the stock Desire Gingerbread Sense with the addition of A2SD+. I’m sure A2SD+ requires changing a lot of the inner workings of Android, but it would still be nice to have as few changes as possible.
- You need to repartition your SD card, adding an ext3 partition. This might not be all that easy for some people.
I finally installed a new ROM
After trying to minimize the data partition usage as described above, I finally decided to take the leap and install a new ROM. After some investigation, I chose the LeeDroid GB ROM. It has Gingerbread with HTC Sense and A2SD+ (plus tons of other features, of course).
I had already rooted and installed Titanium Backup, so I only needed to repartition the SD card before installing the ROM. I backed up the SD card and repartitioned the card with 1 FAT32 partition followed by a 1GB ext3 partition. I have partitioned hard drives many times before, so this was not much of a challenge.
I then entered the recovery mode and installed the ROM ZIP file. It went well, and then I went to installing the radio image. It failed.
Ouch! The error message told me that the scripting system has changed in newer versions of Android, and the official radio image from HTC uses the older system. What to do? I googled a bit for the error message, and the solution seemed to be to use the “fastboot” tool to install the image via ADB. The problem is that the fastboot tool is not part of the standard Android plattform toolkit. I had to either compile it myself, or download a binary from the net. I ended up downloading a fastboot binary from rapidshare. Scary, I know, but at this point I was desperate.
After extracting the image from the radio ZIP file, I managed to flash it using the fastboot tool. Finally, I could wipe the phone and restart it. It worked! It took some time for it to boot the first time, but I could see that it was working by watching the logging in real time using the “adb logcat” tool.
I spent some time restoring the applications and setting using Titanium Backup, and now it feels like I have a new phone! I can install and update applications much faster now, probably thanks to my Class 6 SD card, and I can install as many applications as I want, since they are installed on the SD card, which has 1GB space for apps and data. Praise the lord!!!
Now I can also enjoy some Gingerbread goodies. Coming from Froyo, it didn’t feel like much of an improvement, but the user interface is still somewhat nicer. But then again, I didn’t do all this work to get Gingerbread on my Desire. I did it to be able to use my Desire at all. Now I can finally install the applications I want without worrying about taking up too much space. And I can survive for a bit longer until I can get my hands on a Nexus Prime.