Moving (almost) all Android apps to SD card
To run commands which will enable Move to SD card button for most installed apps, you need to have adb executable on your computer. Adb stands for Android Debug Bridge and is used for Android software development, but it is a very useful tool to have for any advanced Android user. You do not need to have a rooted phone to run adb commands.
To download the latest version of Android SDK (which includes adb executable), follow instructions from step 2 in the Installing the SDK article from the official Android development site. Note: you do not need to install any other software such as Eclipse for this procedure.
After downloading the archive of the SDK, unzip it to any folder and remember its location (let’s call this folder <sdk>).
If you are installing Android SDK on Windows machine, you also need to install USB driver as described in USB driver for Windows section.
Connect the phone using USB cable and do not enable USB storage mode. Go to Settings -> Applications -> Development and enable USB debugging.
Start terminal window on your computer (on Windows: click Start, type “cmd” and press Enter).
In the terminal window, navigate to folder containing file named “adb”:
If using SDK 2.3 or later: navigate to <sdk>\platform-tools folder using this command: cd “full-path-to-sdk-platform-tools” (replace “full-path-to-sdk-platform-tools” with an actual path as shown in the screenshot below).
If using SDK 2.2 or older: navigate to <sdk>\tools folder using this command: cd “full-path-to-sdk-tools”.
Type the following two lines in the terminal window and press Enter after each line:
This checks that the phone is connected and is in the correct mode. You should see one entry in the list of the attached devices.
If you get “cannot find file” error and are using Mac or Linux, instead type: ./adb shell
pm setInstallLocation 2
Command prompt commands on Windows
Now on your phone go to Settings->Applications->Manage Applications.
If you have Android 2.3 or later, click on USB Storage tab (may be called SD card). This tab shows a list of apps that either can be installed to SD card or are already on SD card. The ones that have checkbox on the right side are already moved to SD card.
On Android 2.2 and earlier if you don’s see USB Storage or SD Card tab, click on All tab.
Android USB storage tab
Press hardware Menu button and select Sort by Size.
Tap on each app that is taking significant amount of space and tap Move to SD card button. Press hardware Back button and repeat.
(optional) To change the default installation location for new apps back to the internal phone memory, go back to your terminal window and type:
pm setInstallLocation 0
(important) Go to Settings -> Applications -> Development and disable USB debugging. Leaving USB debugging enabled makes your phone vulnerable (e.g. lock pattern can be reset).
Moving Android Adobe Flash player 10.1 to SD card (apps2sd)
“Device not found” error in step 7. Make sure that the phone is connected and is in the USB debugging mode (step 4). On Windows, this error can also mean the driver is not installed properly. Double check that you followed USB driver for Windows steps. If you still are getting this error, try installing a driver for your manufacturer from this link: Tether “ADB” Driver Installation for Windows.
“Permission denied” error: make sure that you correctly typed commands.
Q: Does my phone need to be rooted for this hack to work?
Q: Do I need to setup a full development environment (Java, Eclipse) for this to work?
Q: I don’t have time for this hack. How can I check which of my installed apps officially support moving to SD card?
Install “App 2 SD” application from Android Market and it will list applications for which developers enabled apps2sd support.
Q: Can I move all apps to SD card in one operation?
A: Using stock firmware, no. If you know a way to do so, please let me know in the comments.
Q: Can I move systems apps such as Maps, Youtube, Adobe Flash Player to SD card?
A: On unrooted phone using stock firmware, no.
Q: Can I delete bloatware apps installed as “system apps” by the carriers?
Yes, but only if you root your device. With a rooted phone you could delete unused system apps, but it gets a bit complicated. Deleting some apps may cause problems with subsequent OS updates, so you should be careful. See this list for Android system apps can be safely removed. Instead of deleting, you can “freeze” unused system apps using Titanium Backup. Freezing an app will remove it from the app drawer and memory and will make sure it is never launched, but it will not free any space in the internal phone storage.
Q: Can I move system apps such as Gmail, Google Maps to SD card on a rooted phone?
A: Thanks to Dominique Tardif for this tip: “You have first to uninstall any updates to the system apps in question. Second, using a rooted file manager, delete the original apk from /system/app (android keeps the system app apart from the updates, the latter being at /data/apps). Once this is done, reboot and reinstall the app from the market. It will be installed as a user app and as such will be movable to the sd card. As an example, my gmail, facebook, maps etc. are all on my sd card now.”
Q: Can I move system apps to SD card if I’m using a custom ROM?
A: Yes. The most popular “aftermarket” Android firmware CyanogenMod puts the absolute minimum of the apps in the system folder. CyanogenMod 7 also includes a hack described above to allow most apps to be movable to SD card. As a result, many Android apps such as Maps, Youtube, Gmail can be moved to SD card on CyanogenMod 7, while they are unmovable to SD in the stock firmware. Note that to install CyanogenMod the phone doesn’t need to be rooted, but bootloader needs to be unlocked.