1. Home
  2. Mobile
  3. Solve low free space problem on htc desire and nexus one

Solve Low Free Space Problem On HTC Desire And Nexus One

HTC Desire Nexus OneHTC Desire and Nexus One are almost identical when it comes to features and both these Android phones along with many others have one serious limitation – low internal storage. With the following guide, you will be able to make the best of the limited internal memory available, and avoid the dreaded ‘running out of storage’ message while still being able to install and use lots of applications.

Disclaimer: Please follow this guide at your own risk. AddictiveTips will not be liable if your device gets damaged or bricked during the process.

It gets really frustrating when after installing just a few applications on your phone, you get the ‘phone running low on storage’ alert. Some developers have come up with different hacks to rectify this but they often get to be excessively complicated and involve the use of ADB commands, while still not offering a viable solution. From our personal experience, we have come up with a way that just works.

This workaround involves multiple procedures including flashing a custom ROM, setting it to install apps to your SD card by default, manually transferring some apps to the SD card for which the automatic method doesn’t work and even using an advanced method to remove some of the apps that come bundled with your ROM, installed in the /system/app partition which does not let you uninstall or move them by default. While we have already covered most of these procedures individually in other posts, we will compile them in the proper order here, give introduction to each procedure to highlight its importance in the overall process and comment on what works best based on our experience.

By following this method, you will have to sacrifice a few features in case you are using HTC Desire. This is because HTC Phones ship with the HTC Sense UI and fully porting it to custom ROMs has not been successfully accomplished yet. In our experience though, this is a good thing as components the HTC Sense UI take up a lot of internal memory and we always find lighter alternatives that get the job done.

Please note the overall guide works for other devices as well but the resources given here are specific to HTC Desire and Nexus One. If you use another device, you may follow this guide but make sure you use procedures specific to your device. Doing a quick search on our website helps in most cases.

Step 1: Rooting Your Phone

Before you can apply any of these hacks, your phone needs to be rooted. Rooting grants you permission to perform operations on your phone that are otherwise restricted by default.

The easiest way to root your HTC Desire is using the unrevoked method that we have covered before and it has always worked for us without a glitch.

If you are using Nexus One, refer to our guide on how to root Nexus One with one click.

In case of other devices, just search our site for the applicable rooting procedure and apply it.

Step 2: Gaining S-OFF and Unlocking the Bootloader

S stands for security and it is a flag used in Android phones for security purposes. It can have two states: S-ON and S-OFF. Its security level differs for different Android phones. On Nexus One and other handsets that ship with stock Android rather than a manufacturer modified one, it just locks the bootloader and does not let you install a custom ROM while on phones shipping with modified Android OS like HTC phones including HTC Desire, it prevents access to the /system partition despite booting.

If you use an HTC Desire and rooted it with the method in the previous step, you probably have gained S-OFF flag on it already. However, if your radio image is not supported by the unrevoked method, you will need to gain S-OFF using additional steps. Nexus One users should just unlock the bootloader. For other HTC phones, refer to the third link.

Gain S-OFF on HTC Desire GSM

Unlock Nexus One Bootloader

Gain S-Off on HTC Phones

Step 3: Installing A Custom Recovery

The next step is to install a custom ROM to your phone but to be able to do that, your phone requires require a custom recovery installed which lets you perform a lot of maintenance on your device including taking and restoring backups, installing custom ROMs, wiping your phone’s data and cache, managing storage partitions etc. Fortunately, by following steps 1 and 2 of this guide, you have already installed ClockworkMod recovery to your phone which is an excellent choice. In case you missed it for some reason, please install it by following our guide on how to install ClockworkMod Recovery to your Android device.

Step 4: Installing A Custom ROM

Your stock Android ROM is usually quite limited in what it lets you do and the developer community has come up with several alternatives which offer you the freedom to take your device to its limit. Therefore, you should now install a suitable custom ROM on your device.

While the following procedure can in general work on most custom ROMs, we will be using CyanogenMod 6.1.1 because of its excellent features, speed, stability and reliability, and we recommend that you use it as well. Follow this guide to install CyanogenMod 6.1.1 to your phone:

Install CyanogenMod 6.1.1 on HTC Desire, Nexus One and other Android devices

If you choose to use another one, we recommend that you choose one based on CyanogenMod 6.1.1. If for some reason you do not want to use CyanogenMod, make sure the custom ROM you use is based on Android 2.2 or 2.2.1 FroYo or Android 2.3 or 2.3.1 Gingerbread, though at the time of writing this guide, most Gingerbread ROMs available for these devices are not stable or mature enough for us to recommend for daily use.

Once you have installed this ROM to your phone, you have already freed up a lot of storage space on your phone’s internal memory if you are using HTC Desire, any other HTC phone or a phone by some other manufacturer that comes bundled with the manufacturer’s user interface and apps. Nexus One users haven’t gained much in this step as it does not ship with any of those bundled user interfaces or apps, but they have gained a version of Android that is more powerful than the stock version.

Please do not install any apps yet, as you need to do some additional configuration before you do that.

Step 5: Set Applications To Install On SD Card

The next step will be to set your applications to install to your phone’s SD card by default rather than its internal memory. This can be done by following these easy steps:

  • Go to Menu > Settings > CyanogenMod settings > Application settings.
  • Check ‘Allow application moving.
  • Tap ‘Install location’
  • Tap ‘External’.

Now is the time to start installing the applications you will be using, before proceeding to the next step. Don’t worry if you miss out on any apps or choose to install any later, as you can repeat the next steps for them as well anytime after installing them.

After installing the apps, play around with them and see if you get any issues due to them being installed on the SD card. Make a list of apps that give such issues.

Step 6: Move Certain Apps To Internal Memory

CyanogenMod 6.1.1 allows you to install and move all apps to your SD card, regardless of whether they were built to run from it or not. Some apps including launchers, widgets and task managers etc. will not run properly from the SD card while other apps that need to run in the background may give issues when the SD card is mounted for USB storage, as they will not be available till the card is unmounted.

It is recommended that you move these applications to the internal memory: All widgets, launchers, apps that you need running in the background full-time and any other apps that give issues while running from the SD card.

  • Go to Menu > Settings > Applications > Manage applications.
  • Find the application that you need to move to the internal storage and tap on its name.
  • If the app is running, the ‘Force stop’ button will be enabled. Tap on it to stop it from running.
  • Tap ‘Move to phone’.
  • Repeat this step for all the apps you want to move to phone memory. If you can’t find an app in the ‘Downloaded’ tab, go to the ‘All’ tab instead.

Step 7: Uninstall System Apps You Don’t Need

What we did in step 5 worked for all the applications you installed after installing the ROM and moved them to the SD card, but what about the applications that came installed with the ROM? While you can move applications that you have installed to the SD card memory or the internal memory whenever you choose, you can not do that for system apps that came installed with your ROM, without going through some additional steps.

At this stage, you should consider which system apps you will never use, so that you can get rid of them. There are certain system apps that you can uninstall in this step even if you do use them, and later install them yourself. That way, they will be recognized as user-installed apps and you will be able to move them to SD card in the next step.

Once you have decided which system apps you want to remove, follow this guide to get rid of them:

How to manually uninstall Android system apps

Step 8: Move System Apps To SD Card

The system apps that you choose to keep can be moved to your SD card after they have been installed as user apps.

Please proceed with this method at your own risk, as there might be some system apps which require to be run from /system/app and will not run from other locations. Judge based on the importance of the app to the Android system overall. Take QuickOffice and Keyboard for an example – removing QuickOffice from the system apps and installing it as a regular app will have little or no chance of harming your Android installation while moving the location of the Keyboard will definitely mess it up. Judge wisely.

Once you have decided what apps you want to remove as system apps and install as regular ones instead, just follow these steps to install them as user apps, utilizing the tools that you learned about and used in step 7 when uninstalling the system apps.

  • Reboot into recovery and take a nandroid backup before proceeding.
  • Use ‘Root Explorer’ or ‘Super Manager’ to grab the system app’s apk from /system/app and just move that APK to /data/app.
  • Repeat these steps for all the system apps you want to move to the SD card.
  • Reboot your phone, see if the apps works and move the ones that don’t work back to /system/app.
  • Once you are done with moving the apps of your choice to /data/app, go to Menu > Settings > Applications > Manage applications and move them to the SD card the way you moved certain apps to phone memory in Step 6.
  • In case your system apps stop working the way they are supposed to, restore the nandroid backup.

This concludes this guide. We have performed these steps and now have over 24 MB of storage space free on the internal phone memory despite having dozens of apps installed on our HTC Desire.

Want to let us know if this guide helped you? Know a different way that helps you keep sufficient internal memory free on your device? Feel free to leave a comment.


  1. Hey, great guide. Is it possible to integrate your more recent guide “Properly Partition SD Card For App2SD+ Android ROMs” into this one, or is this not possible with CyanogenMod 6.1.1? Thanks again for your great guide!

    • I’m glad you found the guide useful 🙂
      To my (rather limited) knowledge. CyanogenMod does not support App2SD+ yet from what I’ve searched so far. I did come across a complicated workaround somewhere once, but it was more of a hit-and-try one.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.