How to move almost all Android apps to SD card (no root required)

[Update – May 2013] To see whether this procedure may work on your phone, check out the new post [Follow up] List of phones that work with “How to move almost all apps to SD card” procedure and comments to this post. Please note that this procedure does NOT work on the best selling Samsung Galaxy S3. [/Update]

[Update – March 2013] To help fellow Android users know whether this procedure will work on their phone, please submit this anonymous form (link: Google Forms) indicating whether it worked for you. Thanks! [/Update]

One of the most anticipated additions to Android 2.2 (aka Froyo) was ability to install applications to SD card, because it helps to free internal memory. When internal phone memory gets full, Android users have two problems: 1) users can’t install any more apps and 2) phone starts working slowly. The slow down is caused by the lower speed of disk write operations to the internal memory (see this post for more information on this topic), but the bottom line is that having low available space in the internal memory is not desirable.

So what should a user do when Android phone is running out of internal memory? Uninstalling rarely used apps is an obvious and easiest solution. Moving apps that support Froyo’s apps2sd feature to SD card is another option. However, for this feature to work developers need to enable apps2sd in their apps and unfortunately many large apps still do not support it.

It turns out there is a hack that lets you move almost any Android app to SD card, even if the app developer did not enable this option. And the best part: obtaining root is not required for this to work. More about this hack below, but first let’s take look at the limitations of the Android apps2sd feature.

Apps2sd limitations

Apps2sd functionality is a step in the right direction. However, the way it is implemented creates some restrictions which you should know about:

  • When an app is moved to SD card, portion of that app still remains in the internal phone memory. On average, you can expect that application’s footprint in the phone memory will be reduced by a factor of 2. Note that for some apps the move will save less than 50%, e.g. Google Earth size in the internal memory reduces from 20.5 MB to 15MB, Adobe Flash Player 10.1 – from 12.4 MB to 8 MB.
  • If you use an app widget on your home screen, this app should not be moved to SD card, because the widget will stop working.
  • Android OS doesn’t have any batch tools to move all movable apps to SD card at once. You will need to manually move one app at a time by going through the list of installed apps in Settings->Applications->Manage Applications.
  • System apps such as Maps and Youtube cannot be moved to SD card using stock firmware on unrooted phone. On some phones Adobe Flash Player is pre-installed as a system app and also cannot be moved. Providers may also install bloatware as system apps, which also cannot be moved on unrooted phone. However, on a rooted phone system apps can be deleted or moved – see FAQ for details.
  • If you re-flash phone’s firmware, some backup applications may not restore your apps to SD card, but will restore them to the phone memory.

Despite these restrictions, moving apps to SD card is a good way to free up internal phone memory and speed up your Android phone.

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.

  1. 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.
  2. After downloading the archive of the SDK, unzip it to any folder and remember its location (let’s call this folder <sdk>).
  3. If you are installing Android SDK on Windows machine, you also need to install USB driver as described in USB driver for Windows section.
  4. Connect the phone using USB cable and do not enable USB storage mode. Go to Settings -> Applications -> Development and enable USB debugging.
  5. Start terminal window on your computer (on Windows: click Start, type “cmd” and press Enter).
  6. In the terminal window, navigate to folder containing file named “adb” (<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).
  7. Type the following lines (case sensitive) in the terminal window and press Enter after each line:
    • adb devices
      • 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 “device not found” error, see Troubleshooting section below.
    • adb shell
      • If you get “cannot find file” error and are using Mac or Linux, instead type: ./adb shell
    • pm set-install-location 2 
      • (If this command doesn’t work try using the “old” command: pm setInstallLocation 2. Thanks to polosco for the tip.)
    • exit
    • Command prompt commands on Windows

      Command prompt commands on Windows

  8. 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 (credit to Michael Scully for the tip).
    • 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

  9. Press hardware Menu button and select Sort by Size.
  10. Tap on each app that is taking significant amount of space and tap Move to SD card button. Press hardware Back button and repeat.
  11. (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
  12. (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).
  13. Enjoy!
Moving Android Adobe Flash player 10.1 to SD card (apps2sd)

Moving Android Adobe Flash player 10.1 to SD card (apps2sd)

Share your experience (optional, but greatly appreciated)

To help fellow Android users know whether this procedure will work on their phone, please submit this form (link: Google Forms) indicating whether it worked for you or not. Once sufficient number of responses is submitted, I will update this post with the results.


  • “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?
    • A: No.
  • Q: Do I need to setup a full development environment (Java, Eclipse) for this to work?
    • A: No.
  • 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: 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 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 by default enables the hack described in this post 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.

Source: XDA-developers.

Related posts

If you enjoyed this post, you can subscribe to the RSS feed or follow via Twitter and Facebook.
This entry was posted in Android, Apps, CyanogenMod, FroYo, Gingerbread, How To. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.


  1. Andrew Martin
    Posted October 18, 2010 at 10:29 am | Permalink

    Excellent information! Thanks.

    Minor finesse point: the phone must be told to choose ‘sync’ as its connection option. (or, at least, my HTC Desire does).

    • Posted October 20, 2010 at 2:58 pm | Permalink

      Andrew, good point, thanks. In other words, the phone should not be mounted as USB storage. I’ll add that to the post.

      • joe ludik
        Posted May 8, 2012 at 11:03 pm | Permalink

        Does this procedure work for android tablets? I cant move my apps on my Acer Iconia A500

    • elvina grace aquisap
      Posted December 26, 2012 at 12:15 am | Permalink

      can i use this instructions to my lenovo a60+? pls give me an answer asap!..thank you..

  2. Marcel
    Posted October 24, 2010 at 4:09 am | Permalink

    Hello Sergey,

    Thanks for this post.
    I have tried it and it works for a lot of applications.
    However I could not move Adobe Flash Player to SD on my HTC Desire.
    The ‘move to SD’ button is greyed out. Same for some other applications like. (e.g. Google Maps)
    On your screendump above. This button is not greyed out.
    How did you manage that?

    • Posted October 24, 2010 at 11:00 pm | Permalink

      Looks like Adobe Flash player is a system app on some phones and can’t be moved. On Nexus One it was not pre-installed, but downloaded from the Android Market, so it’s not a system app.

  3. Afzal Ballim
    Posted October 30, 2010 at 7:37 am | Permalink

    Marcel is not the only one with this problem. My phone (HTC Desire) was upgraded to 2.2 yesterday.

    I used the method described here (and verified the change by using getInstallLocation) and various apps, notable Flash 10.1 and Google Maps, still have “Move to SD” greyed out.

  4. Raj
    Posted October 31, 2010 at 7:46 am | Permalink

    I tried following the all process but i could not manage to transfer any of my application to sd card, can u plz help me
    m using rooted htc desire 2.2

  5. Dim
    Posted November 1, 2010 at 10:40 am | Permalink

    Same as Marcel and Afzal here, HTC Desire stock rom. The procedure did allow some apps to move to SD among those still stuck in the internal memory despite Froyo. But no luck with Flash, Facebook, Maps, Youtube… Might be becazuse those apps which were part of the HTC / Google bundle in the stock rom.

    • Posted November 13, 2010 at 12:37 am | Permalink

      Maps, Youtube and other pre-installed apps that reside in read-only system/app folder are system apps and they cannot be moved with this method. On Nexus One (T-Mobile USA) Adobe Flash Player 10.1 is not a system app and can be moved, but looks like it’s not the case with HTC Desire. I’ll add this to the list of limitations.

  6. Jay
    Posted November 17, 2010 at 5:37 pm | Permalink

    7. Type following two lines in the terminal window and press Enter after each line:

    pm setInstallLocation 2

    this will not enter – Windows error message – “cannot find “pm”, make sure you typed the name correctly and try again

    • Posted November 20, 2010 at 1:17 pm | Permalink

      Jay, make sure the previous command (adb shell) was executed successfully.

      • Mairu
        Posted April 20, 2013 at 2:17 pm | Permalink

        im having problem with adb shell command
        it says this command doesnt exists
        maybe it is due to that i didnt install usb drivers , i couldnt find them according to the information in link u given in the start.
        i cant open SDK manager in order to download USB driver
        help please

  7. lcq
    Posted January 24, 2011 at 9:02 am | Permalink

    Is this safe ?? And does the SDK support Mac OS X ?? I got a Lg Optimus One (p500)

    • Posted January 24, 2011 at 9:35 am | Permalink

      Yes (you can always move apps back to the phone memory) and yes. Note the fine print: you can’t move system apps and you shouldn’t move apps with widgets.

  8. lcq
    Posted January 25, 2011 at 12:56 am | Permalink

    The command lines don’t work with my Mac. I tried in Terminal and in X11 and in both i typed the cd command and that worked but the for the 2 commands,both Terminal and X11 inducated : command not found

  9. lcq
    Posted January 25, 2011 at 8:34 am | Permalink

    It worked now, I didn’t typed the cd command for the tools folder, y took the sdk/platform-tools

  10. Ivi_Vk
    Posted March 31, 2011 at 1:59 am | Permalink

    permission denied! :(

  11. Henk
    Posted April 21, 2011 at 10:43 am | Permalink

    Is it possible to remove Flash player from the Desire as root and reinstall with Market (and on the sd)?

  12. Henk
    Posted April 22, 2011 at 3:24 am | Permalink

    Crap. I did this for Maps and Flash. According to the phone itself, they’re now installed on the SD card. However, I have less space free than before. The entire flash application is on /data/data/com.adobe.flashplayer/lib
    I haven’t found out where Maps is hiding yet but it probably does the same trick.

    Perhaps I can place the file on the SD and create a symbolic link from there to the internal memory?

  13. Posted April 22, 2011 at 12:15 pm | Permalink

    That doesn’t sound right. Does the Flash/Maps show up in settings/apps/application info as located on SD card? What’s the application size shown there? Can you do “move to phone”/”move to SD” from there? Once moved to SD, Maps application (version 5.3.1) without data occupies 3.61MB of internal memory and Flash (version – only 60KB.

  14. Henk
    Posted April 22, 2011 at 12:54 pm | Permalink

    Yes they did show up as on the sd card. Moving them to and from the phone memory didn’t change anything. But now I’ve installed a custom rom (Cyanogen) so we’ll see how long it takes to fill up this time. I’ve found tutorials to change the sizes of the different partitions, so with a smaller rom then stock HTC (about every rom out there) I should be able to make myself enough space.

  15. Posted April 22, 2011 at 1:17 pm | Permalink

    “But now I’ve installed a custom rom (Cyanogen) …” – that’s the way to go. You won’t regret it. And with ROM Manager or nandroid backup you can easily restore and switch between ROMs when trying out things.

  16. Henk
    Posted April 23, 2011 at 2:45 am | Permalink

    Yes but I do miss Sense. Despite its heaviness, it’s miles ahead of CyanogenMod’s standard UI and even LauncherPro in terms of beauty. There are some roms out there with a leaked version of Sense, so I might check those out later.

    • Posted April 23, 2011 at 7:05 am | Permalink

      Yeah, I know people get used to Sense and like it, but if it’s just the UI look (as opposed to better out of the box apps, such as Email, etc), you may get over it. I’m used to plain Android (G1, N1), so when I use Sense my eyes hurt. I think it’s just a matter of habit. Few colorful icons vs Settings\CyanogenMod settings (did you check these out?) – CM7 for me, please :-).

  17. Posted April 23, 2011 at 7:52 am | Permalink

    Hello. Thanks for the tut. Not working for me, however. I cd’d to android/androidSDK/tools and typed: adb shell. I get error msg

    No command ‘adb’ found, did you mean:
    Command ‘cdb’ from package ‘tinycdb’ (main)
    Command ‘gdb’ from package ‘gdb’ (main)
    Command ‘aub’ from package ‘aub’ (universe)
    Command ‘dab’ from package ‘bsdgames’ (universe)
    Command ‘zdb’ from package ‘zfs-fuse’ (universe)
    Command ‘mdb’ from package ‘mono-debugger’ (universe)
    Command ‘tdb’ from package ‘tads2-dev’ (multiverse)
    Command ‘pdb’ from package ‘python’ (main)
    Command ‘jdb’ from package ‘openjdk-6-jdk’ (main)
    Command ‘ab’ from package ‘apache2-utils’ (main)

    What gives?

    • Posted April 23, 2011 at 8:33 am | Permalink

      Do you see file named “adb” in android/androidSDK/tools? If not, cd to android/androidSDK/platform-tools and try running “adb shell” from there. In the recent sdk update, adb file was moved from \tools to \platform-tools. You can also add \platform-tools to your Path and run adb from any directory.

  18. Leafgreen
    Posted May 6, 2011 at 2:21 pm | Permalink

    Hi Sergey,
    I understand that moving apps to sd will speed up the phone when it is low on memory. However, since the sd memory is slower than internal phone memory, then if I am not low on phone memory, will moving apps to sd slow the phone down?

    • Posted May 6, 2011 at 2:51 pm | Permalink

      According to Android developer’s documentation, moving apps to SD card will not slow them down: “There is no effect on the application performance so long as the external storage is mounted on the device. The .apk file is saved on the external storage, but all private user data, databases, optimized .dex files, and extracted native code are saved on the internal device memory.”

      At the same time, if you have, let’s say, 50% or more of internal phone memory free, there’s probably no reason to move apps to SD card.

  19. Firdous
    Posted May 10, 2011 at 5:08 am | Permalink

    :( sorry to ask if its a silly question…

    installed sdk n all is done… but when i run the “adb shell” command it says ERROR: DEVICE NOT FOUND, though its connected to the pc and its charging as well.

    any help..???

  20. Jan Met Dank
    Posted June 2, 2011 at 11:29 am | Permalink

    Firdous, when connecting your Android phone it will prompt ( at least it does at the HTC Desire ) to choose ac connection type.
    Choose the option “HTC Sync” and not “Charge only” nor “Disk Drive” neither “USB tethering”.

    And your device will be found …

  21. Jeff
    Posted June 3, 2011 at 12:54 pm | Permalink

    I’ve followed every step, and it’s not working. I go to the file “adb”, and when I double click it, the command prompt comes up, scrolls through some stuff, then closes. What am I to do?

    • Posted June 11, 2011 at 9:57 am | Permalink

      Jeff, you need to run adb from the terminal window, not from explorer/finder. If you’re using windows, you can launch terminal/command prompt from Start -> Run and then type “cmd” and hit Enter. This will complete step 5.

  22. kanvyas
    Posted June 15, 2011 at 9:31 pm | Permalink

    i have samsung ace.. whenever i run this command it says permission denied.

    • Posted June 23, 2011 at 7:25 am | Permalink

      kanvyas: to resolve “permission denied” error, you need to go to Settings -> Applications -> Development and enable USB debugging. Once you are done with this procedure, don’t forget to disable it.

      • SA
        Posted January 1, 2013 at 1:46 pm | Permalink

        Sergey (or anyone in this comment section that can help),

        I know it’s been awhile since you posted this, but I’m hoping you can help with a problem many people are having here that does’t seem to be addressed in this thread for people using an LG Optimus Slider running Android 2.3.4.

        Firstly, My PC running Windows 7 finds the phone with no problems, so the first command, “adb devices” brings up my phone with no problems. Therefore I’m pretty sure the Android SDK and Java JDK software is installed properly.

        The error comes during the next step. I keep getting either 1 of 2 error messages:
        – I get a “permission denied” message when I type in “adb shell $ pm setInstallLocation 2”
        – I get “[1] Killed pm setInstallLocation 2” message when I type in either “adb shell pm setInstallLocation 2” or when I type in the command as 2 separate prompts:
        > adb shell
        $ pm setInstallLocation 2

        I’m very perplexed and hoping you can help. Also, I do have the phone set to “USB only (Charge Only)” and I do have USB Debugging selected.

        Thanks in advance for any help anyone can provide…

  23. rob
    Posted June 19, 2011 at 9:08 pm | Permalink

    i dont have sync option in my phone using epic 4g

  24. Max
    Posted June 23, 2011 at 6:26 am | Permalink

    hi, pls tell me how to navigate “Navigate to folder containing file named “adb” (updated to reflect move of adb from sdk\tools to sdk\platform-tools in 2.3)” ie Step: 6
    and i’m using Mac OsX

  25. Posted June 23, 2011 at 7:20 am | Permalink

    Max: first start Terminal application (either from the Applications or the dock at the bottom of the screen). Then type “ls” and press Enter to figure out which folder you are in. Then type “cd dir_name” to change the directory (e.g. cd sdk/android-sdk-mac_86/platform-tools). Google “cd” command if you’re lost. Then continue to step 7.

  26. Rohan N
    Posted June 28, 2011 at 1:27 pm | Permalink

    I am facing the same problem as Firdous… When i run the “adb shell” command it says ERROR: DEVICE NOT FOUND, though its connected to the pc (disk drive disabled, USB tethering ON, cant find any sync option)
    Acer liquid e….(not rooted)

    • Posted June 28, 2011 at 1:35 pm | Permalink


      You need to turn USB tethering off and turn USB debugging ON (Settings -> Applications -> Development -> USB debugging).

  27. Davefrombelgium
    Posted June 29, 2011 at 1:46 am | Permalink

    I’m trying to do this from an Archos 101 Tablet …

    I followed all the steps and so far so good, but then after:
    – NOT turning on USB data transfer (when plugging in the USB cable)
    – and turning USB debugging ON
    (there is no “Sync option” like with HTC)

    I also get the device not found error message after typing ‘adb shell’ in the proper dir (through cmd),
    even though I have succesfully installed the USB driver for the device …

  28. Davefrombelgium
    Posted June 29, 2011 at 6:49 am | Permalink

    I found the solution here:

    Unlike what is mentioned on the Archos website the adb_usb.ini file in the .android folder should not contain anything (not even “echo”), except this: 0x0E79
    Then restart adb as mentioned in the link above and it works!

  29. zeff
    Posted July 9, 2011 at 11:45 am | Permalink

    does this hack work with the new and latest gingerbread 2.3.3?

  30. shivakumar
    Posted July 12, 2011 at 4:10 am | Permalink

    Is there any steps we can install APP directly to SD card insted of installing on internal and moving to SD card

    • Posted July 16, 2011 at 10:38 am | Permalink

      shivakumar: if you install CM7 ROM (Cyanogenmod) you can do exactly that. To install CM7, you need to have root privileges. As for the stock, I’ll have to check if that’s possible.

  31. Will Lo
    Posted July 16, 2011 at 9:10 am | Permalink

    Thank you Sergey for the excellent tutorial. Tried it on a Viewpad 7 tablet and it worked like a charm!

  32. Mithil Doshi
    Posted July 20, 2011 at 10:18 am | Permalink

    Hello, I have a few questions. Please help me!

    1) 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.

    Do I need to download the EXE file or the ZIP file? I downloaded the EXE file as it says I need Java JDK. But even after downloading JDK, then installer doesn’t go forward. What should I do?
    Also, you said follow from step 2. As you said, we don’t need to follow step 3 i.e; installing Eclipse so we don’t need to check step 4 and 5, right?

    2) If you are installing Android SDK on Windows machine, you also need to install USB driver as described in USB driver for Windows section.

    I’m using HTC Wildfire S. There are drivers available only for Samsung Nexus S. I don’t think there are any drivers available for HTC Wildfire S. What should I do? Skip it or what?

    3) Start terminal window on your computer.

    By terminal you mean CMD, right?


    I’m so new to this. Please help me! Thank you, sir :)

  33. Posted July 20, 2011 at 10:49 am | Permalink

    1) Just get the zip file and extract it to any folder. You don’t need to follow steps 3 and 4 from the “Installing the SDK” link as you don’t need JDK or Eclipse.
    2) Did you check the HTC website ( If they don’t have the driver, on Windows I would install ADP driver from Google anyway. To verify that “adb” tool sees your phone you need to run “adb devices” command in the terminal (cmd) and see one device listed there. Until you get to this point, step 7 won’t work.
    3) Yes.

  34. Mithil Doshi
    Posted July 20, 2011 at 9:03 pm | Permalink

    Well, for the first time when I connected my phone, it showed “Installing drivers…” So I’m not too sure if my driver is installed or no.

    Also, I cannot find any “driver” downloads on the site. What should I do?

  35. Mithil Doshi
    Posted July 20, 2011 at 9:17 pm | Permalink

    Hello, it shows this when I launched SDK Manager.exe

    What should I do?

  36. Posted July 21, 2011 at 12:54 pm | Permalink

    @Mithil: why are you running SDK Manager? You need to connect the phone using USB, enable “usb debugging” (step 4), then run terminal, and run “adb devices” command to see if your phone is listed in the list of detected devices. If it’s not, then you need to install Windows driver for HTC Wildfire. You can try installing HTC Sync from this link ( – possibly it will install driver as a part of the installation.

  37. Kevin
    Posted July 21, 2011 at 3:28 pm | Permalink

    Hey, thanks for posting this. I keep getting stuck at step 6– I’m not so familiar with using terminal commands in OSX. I did some research to try to get it right, but I keep getting the error that no such folder exists. I even tried dragging the folder directly into the terminal window to ensure that it was right. I’m completely stumped. Any guidance would be greatly appreciated!

  38. Mithil Doshi
    Posted July 22, 2011 at 2:41 am | Permalink

    Well, it didn’t have the adb file. So I searched a little bit and found out that I had to update it via the SDK manager itself.

    It works wonders now. I can install huge games too! Thanks a lot sir 😀

  39. george
    Posted July 29, 2011 at 3:29 am | Permalink

    awesomeness .. had to spend 4 hours on this .. but worth it .. gr8 work guys :)

  40. lucky chauhan
    Posted July 30, 2011 at 9:20 pm | Permalink

    hey mithil i have also wildfire s .please u clear me the steps how i move apps to sd…please need u r help

  41. Kristul
    Posted August 1, 2011 at 10:25 pm | Permalink

    So I’m a little bit confused. I’m still relatively new to playing with Android’s insides, but I still have a general idea of what I’m doing. My only problem is that when I get to step 7, I’m in CMD, and it displays all of the adb commands I CAN do, but after that says “C:\Users\Kristul>” again, so when I put in the adb shell, pm setInstallLocation 2 commands it just says “adb is not a recognized command” blahblahblah. Can anyone please help ?

  42. Bala
    Posted August 10, 2011 at 3:05 am | Permalink

    Awesome!, works like charm.

    Moved lot of apps that are not supported by regular apps2sd functionality, it leaves some portion of the apps in phone memory as mentioned in this article, still it freed lot of memory. My HTC Salsa has 32 MB free space now 😀 (it was 14 MB)

    Many thanks to the Author for this useful post.

  43. Hari
    Posted August 11, 2011 at 6:33 am | Permalink

    Gr8 post!!! Got 20 mb internal memory back on my HTC wildfire S… Thank you so much… :)

  44. Sureshkumar
    Posted August 13, 2011 at 1:44 am | Permalink

    Thanks for the wonderful post. Excellent work,Sergey Povzner . Keep up your Good work.


    V Sureshkumar

  45. Moman Jacobz
    Posted August 13, 2011 at 3:48 pm | Permalink

    Hi, I’ve followed all the steps on my MacBook but when I type in “adb shell’ it comes back with command not found :s what am I missing? Thanks

    • Posted August 13, 2011 at 3:54 pm | Permalink

      1) double check that you are running “adb shell” command from the directory that contains adb file. You need to navigate to \platform-tools directory first (step 6) and then run “adb shell” command.
      2) also double that your device is detected by adb by running “adb devices” command. You should see at least one entry in the list of devices.

  46. Moman Jacobz
    Posted August 13, 2011 at 4:06 pm | Permalink

    Thanks for your quick response!
    I am running it from the platform-tools directory and I can see that the adb file is in there. Even when I try adb devices it says ‘adb: command not found’. :(

    • Posted August 13, 2011 at 4:11 pm | Permalink

      Try running the commands with “./” before adb:
      ./adb devices
      ./adb shell
      That specifically tells OS that the file is in the current directory.

  47. Moman Jacobz
    Posted August 13, 2011 at 4:17 pm | Permalink

    Oh ok.. so ./adb devices comes back with 1 device 😀
    but ./adb shell only gives me a ‘$’, is this what should be expected?

    • Posted August 13, 2011 at 4:31 pm | Permalink

      Yep. Once you see a “$” prompt, you can type “pm setInstallLocation 2”.

      • ZunA
        Posted August 15, 2012 at 10:20 pm | Permalink

        It says permission denied. :/

  48. Moman Jacobz
    Posted August 13, 2011 at 4:40 pm | Permalink

    Ooo it worked 😀 Legend! Thankss

  49. Dev
    Posted August 15, 2011 at 11:19 am | Permalink

    Thanks. Managed to move most of the apps, except a few such as Facebook and Twitter. The option was greyed out in these cases.

    • Posted August 22, 2011 at 10:17 am | Permalink

      @Dev: Facebook and Twitter are often installed by carriers as “system” apps, and therefore they cannot be moved (FAQ).

  50. Isaac
    Posted August 16, 2011 at 9:38 am | Permalink

    Please help me out. I open command prompt like it says in Step 5, but I can’t do step 6. I have Windows 7, I have never used command prompt, so please help me and be descriptive!

  51. richard
    Posted August 18, 2011 at 3:41 am | Permalink

    does this work on HTC tmobile G2 running on GINGERBREAD overtheair update? pls do answer this. im down to 50Mb from my 1.5gb memory huhuhuh ='( or email me at

  52. mocktottel
    Posted August 20, 2011 at 8:04 am | Permalink

    Very nice howto. Works fine. THX

  53. karan arora
    Posted August 22, 2011 at 4:11 am | Permalink

    when i type pm set installlocation 2.
    it gives me three options ,that are
    0 [auto] : let the system decide
    1 [internal]: install in internal device storage
    2[external]:install on external media
    then i choose 2 [external] but it tells me permission denied
    so plzz tell me what to do.

    • Posted August 22, 2011 at 10:15 am | Permalink

      @karan: What phone do you have and which Android version does it run? You should be selecting [external] as you do.
      @richard: I haven’t personally tried this on G2, but it should.

  54. karan arora
    Posted August 26, 2011 at 8:44 am | Permalink

    I have samsung galaxy ace which runs android version 2.2 froyo
    and on typing external it says permission denied

  55. Haroon
    Posted August 31, 2011 at 7:27 am | Permalink

    Would not allow me to install SDK, error message asking to download Java SE development kit, which I did and installed but still the same error message.

  56. Soha
    Posted August 31, 2011 at 7:41 am | Permalink

    hiiii, i’ve HTC wildfire S and i need help plz
    everything works fine till i type adb shelll,it tells me it the following

    adb server is out of date.killing…
    adb server didnt ACK
    *failed to start daemon*

    im new to all this so if u could explain to me plz that would be gr8


  57. Paul
    Posted September 3, 2011 at 1:58 am | Permalink

    Recently I upgraded my HTC Desire from Froyo to Gingerbread (android 2.3.3). Is this procedure also applicable to Gingerbread?

  58. michal
    Posted September 5, 2011 at 2:49 pm | Permalink

    there is no adb any more in SDK. Where shoud I get it?

  59. gaurav gupta
    Posted September 8, 2011 at 12:03 pm | Permalink

    I baught wildfire s one month ago, i was also have this internal memory problem, as you instructed i did all the required,but still when i open sdk manager, first it checks the mobile or google market etc, then it starts downloading of various package, no where i am able to write referred commands, kindly help.

  60. Lettantes
    Posted September 10, 2011 at 2:32 am | Permalink

    I dont understand from step 6 onwards..Please help me :(

  61. Lettantes
    Posted September 10, 2011 at 2:58 am | Permalink

    when i type in “adb devices” there are no devices attached not even one..and when i type adb shell it says error : device not found. help help help :(

  62. Ashish
    Posted September 10, 2011 at 11:24 am | Permalink

    @ I just need to clear out one very small doubt.
    As mentioned earlier…
    for Apps2sd
    “When an app is moved to SD
    card, portion of an app still
    remains in the internal phone

    Does this also applies to this “adb” method? Cuz sdk adb method is moving just parts of apps to sd card not the entire app. or am I doing something wrong? ?

  63. zul
    Posted September 20, 2011 at 8:48 am | Permalink

    oh god! can anyone give me the simples guide for me? im lost! i download the SDK for mac and thats lost.. im lost.. im lostttt… help!

  64. kernel frank
    Posted September 22, 2011 at 2:05 pm | Permalink

    intitally to run the “adb shell” command i first had to modfiy my PATH environment variable. Once i did that i tried to run “adb shell” but then i always get the error “insufficient permission for device”. i ran the command “adb devices” and what i see is ” ??????? no permissions” . i searched on internet and found a solution to this problem here
    but when i tried to apply it whenever i type su …it asks for a password. now i am trying to use this procedure for my samsung galaxy ace and its rooted..and there is no password for it i think …but every time i try with any password it comes as authentication failure…so what should i do please help

6 Trackbacks

  1. […] [Update] Using relatively simple hack, almost all Android apps can be moved to SD card. See this post for more details: How to move all Android apps to SD card. [/Update] […]

  2. By Speed up your Android: free up internal phone storage on September 30, 2010 at 8:31 am

    […] Android to the Masses Skip to content HOMEPHONESAPPSABOUT « How to move all Android apps to SD card […]

  3. By Change Install Location on May 15, 2011 at 10:21 pm

    […] Install Location So i was surfing the web and came across this page : How to move all Android apps to SD card So scroll down to the section under " Moving (almost) all Android apps to SD card " […]

  4. […] […]

  5. By Twitted by SegunOlulana on August 13, 2011 at 12:40 pm

    […] This post was Twitted by SegunOlulana […]

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>