HOW TO: Force Apps to SD (Without Rooting) On Froyo

Several readers have recently reported that they’ve managed to run out of free space, even with the Froyo implementation of Apps2SD.  The way Google implemented it was poor to start with, but what makes it worse is that many apps in the Market still haven’t been updated to allow installation to SD card.

This guide shows you how to force all applications to be installed to your SD card.

Requirements

  1. Phone running Froyo
  2. ADB installed – how to

Instructions

  1. Ensure you have debugging enabled on your phone (Settings > Applications > Development > USB Debugging > Turn On)
  2. Connect your phone to USB
  3. Open Command Prompt/Terminal
  4. Type: adb shell pm setInstallLocation 2
  5. Press Enter
  6. That’s it!

FAQs

  1. My widgets keep disappearing, help!
    To prevent widgets from being removed, you’ll have to move their associated application back onto phone memory – to do this see FAQ #2
  2. How do I move certain apps back onto phone memory?
    You can move any application onto phone memory by going to Settings > Applications > Manage Applications > On SD card, select the app you want and press Move to Phone
  3. How can I revert to the original settings?
    Just open Command Prompt/Terminal and type: adb shell pm setInstallLocation 0
  4. Any other hidden commands?
    There’s one more to force all apps to install to phone memory, but I doubt you’ll ever want to use it: adb shell pm setInstallLocation

HOW TO: Transfer MicroSD Card Contents (including Apps2ext)

Today I received my 16GB MicroSD to replace my now full 8GB.  Normally to transfer contents it’s quite straightforward – just copy everything to computer then back onto the SD card (or from SD to SD if you’ve got a card reader).  However, if you’ve got a rooted phone running apps2sd (also known as Apps2Ext) then there’s slightly more work involved to make sure that you end up transferring all your apps too.  The method below describes how I managed it, and under that I’ve listed a few alternatives…

Requirements

  1. Rooted phone
  2. SD card with ext partition
  3. ADB installed – how to

Instructions

  1. Make sure you’ve still got your old SD card in
  2. Create a new folder on your computer called SD Card Backup
  3. Create 2 subfolders, one called FAT and another called EXT
  4. Connect your phone to computer and set to Disk Drive mode
  5. Copy all your SD card contents (FAT partition) into the FAT folder
  6. Open Command Prompt/Terminal on your computer
  7. Type: cd<space>
    Make sure you use a space character, don’t type <space> and don’t press Enter yet!
  8. Drag and Drop the EXT folder into your command window, and you’ll notice that the full path to your EXT directory appears
  9. Press Enter
  10. Set your phone USB connection to Charge Only
  11. Type: adb pull /sd-ext/app .
    Don’t forget that “.“!
    Press Enter
  12. Wait while all your apps are copied into your EXT folder
  13. Once copied, insert your new SD card and use the same method you previously used to partition your new SD card as you want
    I use the Amon RA recovery, flashed using Unrevoked.  My partitions are: 4GB ext, 32MB swap (not really needed) and the rest as FAT
  14. Connect your phone via USB again
  15. In the command window, type: adb push . /sd-ext/app/
  16. Wait whilst all your apps are copied back to your ext partition
  17. Copy all your FAT files back onto the FAT partition

Alternate Methods

  1. Use Linux.  Mounting your SD card in Linux will mount your ext partition too.  It’s then a simple case of just copy and pasting your files from old SD to computer, then computer to new SD
  2. Titanium Backup.  You can use Titanium Backup’s Batch feature to backup all the apps to the phones Fat partition, then copy the backups to new SD and do a batch restore
  3. MyBackupPro – similar to Titanium Backup, MyBackupPro allows you to backup all apps and their data, then restore them.

Why My Method?

I chose doing it the adb way because it doesn’t involve copying everything onto the SD card first – otherwise you’re waiting for everything to be backed up to SD, then to computer, then back to SD and then restoring using Titanium/MyBackupPro.  It’s also good to have a copy of your apps saved on your computer just in case something goes wrong with your phone or SD card.  If you already have adb installed, then it’s really quick to just run the adb command and grab all your apps.