Moving Your ‘Non-Movable’ Android Apps to an SD Card
Bookmark and Share

android_ssd_122211.gif
Print
by Rob Williams on December 21, 2011 in External Storage, Mobile

Have an Android device that’s quickly running out of space due to limited internal memory? Have a large collection of apps that refuse to move over to your SD card? If either of these is true, then you need to know about a simple tweak that can be done to forcibly move over many apps to your SD card – all without rooting.

A nice feature that most Android devices offer is a microSD (or SD) slot, and nicer still is the fact that the Android OS allows you to move most apps over to external storage to help free up space on the main device. For those with 16GB+ phones or tablets, this benefit might not be evident, but for those with older devices, it’s a life-saver.

The phone I’m using is HTC’s Legend, which in its default configuration leaves a mere 160MB free to the user for apps and other things. That’s no joke. While I am still pondering upgrading to a newer phone, this one continues to serve me well, but with a storage limitation like that, I have made it a point to move over all apps to a microSD card to avoid space issues. It’s not hard to burn through a 160MB, let me tell you.

If you’re an Android user who has moved apps over to the external storage, you’re likely aware that there are limitations. Some software is considered to be integral and can’t be moved, and then there is other software like Facebook or Google Maps which you might not even use that can’t be moved without rooting the device.

Complicating things even further, when developers publish their apps, they can design them in such a way that they can’t be moved over to an SD card. This is what some would call a dumb move, but the reason it’s done is because phone storage is going to be faster than external storage more often than not. Even still though, having a choice would be nice.

Android - Moving Apps from Phone to microSD

For those games and other tools that don’t inherently allow you to move them to an SD card, there are solutions – and they don’t require rooting. Instead, you’ll need to download the Android development kit, change the default install destination on your phone, move your apps over, and then revert back to stock. If it sounds complicated, it isn’t.

There are a couple of things to bare in mind before diving into this though, and those are important. While using this technique will allow you to move over widgets and OS tools, don’t do it. After a phone boots, the SD card is not immediately mounted, and as such, if your widgets or other important software is there, you’re not going to have access right away. Further, even after the storage is mounted, you might run into an issue where widgets are bugged because of the configuration. So I can’t stress this enough:

Apps Not to be Moved to SD Card

  • Widgets – no matter how menial in usefulness or design.
  • System tools – many might not operate as intended without being on the phone’s storage.
  • Important apps – you don’t want to risk an important app becoming inaccessible when you need it.

I should also mention that as I have no experience up to this point with Android 4.0 (Ice Cream Sandwich), I am not certain that these methods would work. However, Android by design hasn’t changed much with regards to system tools, so chances are they would.

Step 1: Install Android SDK

Installing software to perform a tweak like what we’re going to do isn’t ideal, but overall, this SDK is rather lightweight. You’ll have to go here to grab it, making sure to download the ‘installer_r16-windows.exe’ for the sake of ease. The .zip archive can be chosen instead if you’d prefer to not install anything. To run the SDK, Java is required, so that might also have to be downloaded.

With the SDK installed or extracted to the desktop, and Java installed, you can run the ‘SDK Manager’ to see the application:

Android - Moving Apps from Phone to microSD

Because the tool we need isn’t included with the SDK by default, you need to click the ‘Android SDK Platform-tools’ option and then click ‘Install Packages’. This will take a few minutes to complete, but once done, we can get to tweaking.

Step 2: Setting Up Your Phone

I’m not 100% certain on which options need to be enabled in order for this to work, but there’s no harm in touching all the bases and making sure it will “just work”. ‘USB debugging’ assuredly needs to be enabled, as does ‘Allow mock locations’. For the connection type, I use ‘Disk drive’ which has never caused me an issue.

Android - Moving Apps from Phone to microSD Android - Moving Apps from Phone to microSD

If you don’t like leaving these settings checked, you are able to revert them back after you copy over what you need to the microSD card. I personally leave them enabled all the time as I’ve yet to find an issue with it.

Step 3: Running the Tweak

With the software above installed and the phone prepped, you’re able to load up a command prompt in Windows and go to the install folder in order to run the tool we need. By default, the install folder will be found under the Program Files (x86) folder. The full path for me was:

C:\Program Files (x86)\Android\android-sdk\platform-tools\

Note: If this folder doesn’t exist, look here instead: 

C:\Users\(Your Username)\AppData\Local\Android\android-sdk\platform-tools\

You can navigate here with the ‘cd’ tool. Prefacing the path above with ‘cd ‘ (note the space, no quotes in actual command) will bring you straight there, as you can see in the shot below.

Android - Moving Apps from Phone to microSD

If your phone is not being picked up, you might need to install some drivers. For any Android phone you have, starting here would be a good idea.

Here are the commands that need to be run:

adb devices
Probes Android devices connected to the PC. Do this first to assure that the phone is being detected.

adb shell pm getInstallLocation
Alternate (ICS+): adb shell pm get-install-location
This results in a numerical value to state where the default install location is (0: phone, 2: external).

adb shell pm setInstallLocation 2
Alternate (ICS+): adb shell pm set-install-location 2
This sets the default install location to the external storage.

Note: Thanks to commenter Ajith R Nair for pointing out the alternate commands. 

Once the last command is set, you can run the ‘getInstallLocation’ command again to verify that it went into effect, and then you can unplug your phone and get on with moving some apps.

Step 4: Moving Your Apps to an SD Card

Below is an example of a game where the developer disabled the ability to move the game to an SD card, before and after. As you can see, while the option to move to an SD card was faded out without this tweak, it was lit up afterwards. Don’t mind the odd clock changes here, as I did a lot of this in the reverse order.

Android - Moving Apps from Phone to microSD Android - Moving Apps from Phone to microSD

Figuring out which apps can be moved and which can’t is easily the most tedious part of using Android, but fortunately apps exist to make the chore a lot easier to stomach. One solution I’ve been using is called “App 2 SD“, as it’s both free and intuitive (though not that pretty, in my opinion). Here’s another before and after example:

Android - Moving Apps from Phone to microSD Android - Moving Apps from Phone to microSD

As you can see, using this tweak suddenly allows me to move over many apps to my SD card, freeing up valuable space. As mentioned earlier, I emplore you to not copy over things like widgets as it will result in some headaches. Some system tools might be fine to be moved over, but I’d be careful there also.

Once you have moved over everything that you need to, I’d highly recommend reverting the tweak by connecting your phone and setting the default location back to 0. This will avoid any potential headaches, some of which I experienced over the past week of using this tweak. All-in-all though, this tweak is an easy way to free up some space on your phone, all for free and without rooting.

Discuss this article in our forums!

Have a comment you wish to make on this article? Recommendations? Criticism? Feel free to head over to our related thread and put your words to our virtual paper! There is no requirement to register in order to respond to these threads, but it sure doesn’t hurt!


  • http://www.facebook.com/darin.goins Darin Goins

    I installed the SDK program. After install I go to the CD prompt and enter the information as you show C:Program Files (x86)Androidandroid-sdkplatform-tools and the file is not found.

    • http://techgage.com/ Rob Williams

      It seems that since this article was published, Google either moved the install location or gave users the ability to install it outside of their Program Files. You might want to look here instead:

      C:UsersYour UsernameAppDataLocalAndroidandroid-sdkplatform-tools

  • Priyash Jain

    It really works…Great tweak…Now wont have to buy a new phone…Can enjoy everything on my android…

    • http://www.facebook.com/rishi.shukla Rishi Shukla

      it is usefull facebook apps?

    • Tom Torbeyns

      Do you have an Android 4.0

  • Guest

    thanks Rob it really worked,
    but there is some correction in android 4.0.4 ICS , the syntax is wrong

    use
    ‘adb shell pm get-install-location’ instead of ‘adb shell pm getInstallLocation’

    and ‘adb shell pm get-install-location’ instead of “adb shell pm setInstallLocation”

  • http://twitter.com/ajith_rn Ajith R Nair

    thanks Rob it really worked,
    but there is some correction in android 4.0.4 ICS , the syntax is wrong

    use
    ‘adb shell pm get-install-location’ instead of ‘adb shell pm getInstallLocation’

    and ‘adb shell pm set-install-location 2′ instead of “adb shell pm setInstallLocation 2″

    • http://techgage.com/ Rob Williams

      This must have been updated not long after this article went live, because I did in fact have ICS’ SDK installed. I’ll update the information here. Thanks a bunch!

      • Ayyash

        i have a problem when i try to the third command{adb shell pm set-install-location 2} it give me nothing **** android 4.0.4********

        • http://www.facebook.com/deathspawner Rob Williams

          Does the “get” version of that command work? You might want to try the pre-ICS version of the command even though you’re using ICS:

          adb shell pm setInstallLocation 2

  • Jaikrat Singh Tariyal

    how to move default FB app to SD card. I have done all above mentioned things but still not able to move FB to SD card.

    • http://techgage.com/ Rob Williams

      As the article mentions, certain apps cannot be moved. That includes Facebook and some Google services. You likely could if you rooted your phone, but success may vary.

      • Pat Sonnek

        But Facebook is the problem. It takes more of my phones memory than any other app. Being able to move any app but facebook is just a bandaid.

        • http://techgage.com/ Rob Williams

          I agree, but it’s better than nothing. You can blame Android for that one, or whoever decides to make Facebook mandatory. It’s a further insult that Facebook on Android truly sucks as an app.

  • Pablo Ahumada

    Hi

    I have 2.3.6 and I have installed 2.3.3 and it works fine, but WhatsApp dont send or receive messages. Works with Facebook ?

    Please any help

    • http://techgage.com/ Rob Williams

      If you experience issues like that after an app is moved to the SD card, it’s recommended to move it back to the phone. Some apps can exhibit odd behavior when moved when they’re not meant to be. It’s the reason widgets should always be on the phone itself, because the performance has to be good and access, immediate.

  • Pete D

    Awesome article! very helpful indeed. Thanks Rob. Saved me a lot of time having this page here.

  • http://www.facebook.com/Slater.Nexus Muhammad Ahmed AboElfotouh

    Please… First, my mobile is Sony Ericsson Xperia arc S, and I’m using Windows 8. I downloaded that adt-bundle-windows-x86. When I open it I get 2 folders, eclipse & sdk. When I open eclipse then the file eclipse, I just get this http://img17.imageshack.us/img17/8286/sdki.jpg and in sdk/platform-tools I just have this http://img191.imageshack.us/img191/5152/sdkzx.jpg by the way I can not find C:Program Files (x86)Android nor C:Users(Your Username)AppData. Please I need help to be able to move the apps to my SD card, that’s horrible I can’t install anymore apps nor even update the current apps. Thanks!

    • http://techgage.com/ Rob Williams

      I am not sure what Eclipse is for, but the second screenshot shows the “adb.exe” application that’s needed for this. So you’ll need to open up a command-prompt and navigate to that folder (cd “C:Muhammadadt-bundle-windows-x86sdkplatform-tools”) and then perform the steps mentioned above. Good luck!

      • http://www.facebook.com/Slater.Nexus Muhammad Ahmed AboElfotouh

        Well, IT WORKS… Really thanks so much, but I have to say, not ALL the apps move, some still can’t be moved, and they take much space as Facebook, OfficeSuite, Adobe Reader! You must create a new station, and THANKS SO MUCH!

        • http://techgage.com/ Rob Williams

          It sucks about not being able to move everything, especially since some apps like Facebook take up so much space. Glad you got it to work!

          • http://www.facebook.com/Slater.Nexus Muhammad Ahmed AboElfotouh

            My phone is not ROOTED… How can I root it??? I wanna take screenshoots and so, and, simple question please, what’s the meaning of ROOT??? Is it useful or better be unrooted???

          • http://techgage.com/ Rob Williams

            Rooting a phone means gaining access to the underbelly of the software – files that you normally can’t. The process of rooting is different for each phone, so your best bet is to simply Google the phone name and put “root” at the end. A bunch of results should pop up.

  • Megan Lau

    when i get to the coding it said that file is not found and that it is not recognize as internal or extern command.

    i save the adt-bundle-window to my desktop so it is easy access

    this is what i put: C:UsersMeganDesktopadt-bundle-windowssdkplatform-tools

    however it doesnt work

    PLEASE HELP :)

    • http://techgage.com/ Rob Williams

      Inside that “platform-tools” folder, is there an “adb” file? Your error means you’re not in the proper location, so with the command-prompt open, type in “cd Desktop” without quotes and then “cd adt-bundle-windows” and so on up until the last folder. Alternatively you can type a portion of the folder name and hit tab for it to autocomplete it. If you’re in the platform-tools folder, the adb command should work.

  • Gilad

    I owe you my life… :-P

    • http://techgage.com/ Rob Williams

      In lieu of life, we also accept pageviews!

  • Abraham

    Hi Rob
    I am Robbed of my peace and sleep.
    Your Troubleshooting was a success but……go through the screenshots and plz reverse engineer my sleep and peace.
    Thanks In advance

    • http://techgage.com/ Rob Williams

      It appears that things are working like they should, so the fact you have no apps to move simply seems to mean that the apps you’re trying to move HAVE to remain on the device (like Google Maps, Facebook, et cetera). To forcibly move those apps you’ll likely need to root the device (and even then I’m not sure it’ll work).

      • Abraham

        Ur response is highly appreciated.
        But sadly I have already rooted the phone. Moreover before rooting with the same apps I had 55% free memory now it has reduced to 43% & still counting low.

        • http://techgage.com/ Rob Williams

          If you happen to have a LOT of apps installed, I’d recommend taking a look at the ones you don’t use too often and get rid of them. Even when you move over apps, some remnants are left on the device that have to be there, usually taking up about 10% of the entire size. So when you have a -lot- of apps installed, it can still fill your phone quick even if you move most of them.

  • Abraham

    Using xperia sk17i

  • http://www.facebook.com/jymbrittain Jym Brittain

    I’ve tried this tweak on my LG Optimus (LG 55). when I issue the setInstallLocation command I get “[1] Killed pm setInstallLocation 2″ When I issue the getInstallLocation command after that it hasnt changed from 0[auto]. Any advice?

    • http://techgage.com/ Rob Williams

      You may want to try doing this on another PC; your issue -may- be the result of how Windows is handling the USB device. And on that note, make sure your phone is in the standard storage USB mode when plugged in, not charge.

      • http://www.facebook.com/jymbrittain Jym Brittain

        It was in storage mode. I’ve tried it on a Win7 and a Win XP box. Same results – [1] Killed pm setInstallLocation 2.

        • http://techgage.com/ Rob Williams

          This might be a stupid question, but did you install the official drivers for the phone, or just let Windows take care of it?

          http://www.lg.com/us/support/mobile-support

          You might have a phone that just refuses to allow this to work. I’ve seen it happen with one other phone, but it’s not common. The fact you get a result back at all tells me you’re doing it correctly. The next step I’d recommend is uninstalling the SDK you have (using the UI) and installing the one that matches your phone’s Android phone exactly.

          Reference: http://techgage.com/articles/software/android_moving_to_sd_card/android_sdcard_01.png

          If you did happen to have the exact version, maybe remove it and update to the latest and see if that treats you better.

          • http://www.facebook.com/jymbrittain Jym Brittain

            I’ve followed your advice… I have a phone that just refuses to allow this to work, darn it

          • http://techgage.com/ Rob Williams

            If you’re desperate enough, you might want to try changing the USB mode to something else to see if it helps at all. The killed error leads me to believe that it simply can’t write to the setting to the device like it should. Other than that, I am really not sure what could help :(

  • http://www.facebook.com/lauraolivier88 Laura Olivier

    My drivers are up to date, but it still won’t pick up my device. Something has worked on my phone however which gives me the option to move to sd card but when I do, I get prompted saying there isn’t enough memory….I have a 16gb sd card…plenty of memory!

    • http://www.facebook.com/deathspawner Rob Williams

      Have you tried changing the USB mode on the phone to something else, to see if it’d be picked up? Essentially, if you can plug in your phone and browse its storage from within the OS, that’s when this trick should work. If you can do that and somehow the software still doesn’t manage to pick up the device, I’d recommend trying it on a different PC.

  • http://www.facebook.com/sharon.vonlumich Sharon von Lumich

    I have tried to do this. I had loads of trouble actually installing the adt bundle…
    But I finally managed, Now I’m not able to give my computer the prompts. Whenever and however I refer to the folder in which the adt is, the computer says this is an invalid promt and the folder cannot be found. I have also tried your solution with AppData, but this is where I get stuck. Could you help me out on this one?

    • http://www.facebook.com/deathspawner Rob Williams

      Just to make sure, the command is “adb”, not “adt”. It seems like you’re not in the correct folder though. If you type in “dir” and don’t see adb, then you’re definitely in the wrong folder. It could be that the SDK installed to a different location than you’re expecting, so you may want to Ctrl + F and search your entire PC for adb.exe, then that should help you find the correct location to go in the command-prompt.

  • http://www.facebook.com/JBurkePE Jason Burke

    I have a Verizon SCH-I200 running 4.0.4. I downloaded and executed the SDK with no trouble, but when initially running adb.exe, the list of devices was empty (even in debugging mode). I switched the USB mode to SUA (Software Upgrade Assistant), ran the autoinstall, unplugged the USB, then reinserted, selecting the regular media device. That allowed for the full connectivity. Just to be sure, I then rebooted the phone and ran App2SD.

    Despite all this, the “Move to SD” button simply does not exist on my system. The first part of this may help someone who has connectivity problems, but it appears that 4.0.4 simply doesn’t allow this in an unrooted phone. For comparison, I also have a Galaxy S2 with 4.0.3, and it has moved applications in the native manager without trouble from the beginning.

    • http://techgage.com/ Rob Williams

      As mentioned in the article, there are certain things that -cannot- be moved, as their functions are built right into the OS. At the forefront is Facebook and Google Maps. Are those the programs you’re trying to move?

  • http://www.facebook.com/rishi.shukla Rishi Shukla

    this is useful for Facebook apps?

  • http://www.facebook.com/hareesh.menon.94 Hareesh Menon

    Life Saver.. Thanks a lot.. Neat Tweak

  • http://www.facebook.com/Tarekabouzayd Tarek Abou Zayd

    Thanks alot for the great tweak. In fact i have a problem with my Samsung S Duos, it is running ICS but the move to sd card button is not visible even though sd card is mounted. Could you please help? Thanks in advance.

    • http://www.facebook.com/deathspawner Rob Williams

      What app are you trying to move? As noted in the article, some apps cannot be moved even after this tweak (Facebook, Google Maps and some other Google apps).

      • http://www.facebook.com/Tarekabouzayd Tarek Abou Zayd

        I tried so many apps but he problem is the move to sd card button does not even exist.

        • http://www.facebook.com/deathspawner Rob Williams

          I looked that phone up and found the “S7562″ model, which has 4GB of internal storage. That’s not your phone? If your phone doesn’t have a Move to SD button like in this picture (even blacked out), it really does seem like your phone’s ROM restricted that ability for some reason. That’s not typical. At that point you’d likely have to root your phone and replace its entire ROM, but I’m unfortunately not the best person to go to for that.

          • http://www.facebook.com/Tarekabouzayd Tarek Abou Zayd

            Unfortunately that’s my phone, i will try to contact Samsung Technical Support, may be there is a solution other than rooting. Thanks alot for your help and immediate response.

          • http://www.facebook.com/deathspawner Rob Williams

            Good luck with it! Sounds like something is a bit off if you’re unable to even see that button. I’ve never encountered that before.

          • Karan Thakkar

            Did you check with Samsung Technical staff? I am using the same phone and encountered the same problem.

  • Ivan

    can some one help me ? i’ve downloaded the program instaled and I’ve set up mi divice to here good but when I tryed to open the adb file it opends just for a secund and then automatikli closees it selve . pls help me chuz i have only 5 apps and I’ve got onli 5 mb free space

    • http://www.facebook.com/deathspawner Rob Williams

      You need to open a command-line as the article suggests. Hit Ctrl + R to open up a run line, and type in “cmd” without quotes and enter. Then follow all of the steps in the Step 3 section above.

  • http://www.facebook.com/razanjafry Razan Ali

    How revert the tweak the default location back to 0.

  • http://www.facebook.com/razanjafry Razan Ali

    entering adb in the command box Open thousands of file what to do… have no idea please help?????

    • http://www.facebook.com/deathspawner Rob Williams

      Are you certain that you’re accessing adb in the way this guide shows? You might want to try this out on another PC. adb shouldn’t access any files, only your phone. It certainly shouldn’t list thousands of anything.

  • http://www.facebook.com/tokkeboy Tom Torbeyns

    Does it work with the S3 mini? (New to it, my space is already full)

    • http://www.facebook.com/tokkeboy Tom Torbeyns

      (It’s Android 4.0 or later I guess…)

      • http://www.facebook.com/deathspawner Rob Williams

        The steps in this article could be used for all versions of Android, to my knowledge. I’ve successfully done this to 2.x and 4.x devices.

  • http://www.facebook.com/pia.magnusson1 Pia Magnusson

    Thanks for this, it really works! Those of you who doesn’t have a “move to sd” button just choose move to internal memory, since you have changed the default installation to “external” your app will end up on the sd card anyway. Brilliant!

  • LWW

    Nice one, mate.

  • LWW

    Quite a beautiful little trick you got here.
    But I have a minor problem here, be glad if you could help: a few apps like Facebook, Maps, Adobe Reader, Play Store, YouTube still cannot be moved. Is there a workaround?
    PS: All the apps mentioned above came installed with the phone. Just saying in case that changes things.

    • http://www.facebook.com/deathspawner Rob Williams

      From the article: “Some software is considered to be integral and can’t be moved, and then there is other software like Facebook or Google Maps which you might not even use that can’t be moved without rooting the device.”

      • LWW

        Oops, sorry. Read that as ”can be moved w/o rooting”. Thank you.

  • http://www.facebook.com/henric.lindborg Henric Lindborg

    I am running a Sony Ericsson Xperia Arc and I just can´t get this to work. When I run the adb devices command it doesn´t list my device. It is properly connected and I have enabled usb debugging mode. Grateful for hints and solutions!

    • http://www.facebook.com/deathspawner Rob Williams

      I’d try a different USB mode, or disable debugging. Though I’d say that if you could access the data on the phone when you plug it in, it SHOULD work. In the worst case you could try a different PC.

  • Evans Kipro

    My htc legend cannot take pictures indicating ‘cannot be saved on SD card due to insufficient file permissions.” When i restart the phone the problem is temporarily solved only for it to emerge again.please assist

    • http://www.facebook.com/deathspawner Rob Williams

      Is the device set to its default storage location?

      adb shell pm setInstallLocation 0

      I did this article using the HTC Legend and had no issues with photos.

  • http://www.facebook.com/mads.hedegaard2 Mads Hedegaard

    Arrgh. Was so exited to be able to do this. But no. My Samsung Xcover, gingerbread 2.3.6 gets the message from SDK when on the cmd that I have no permission to set the install location to 2 ???

    • http://www.facebook.com/deathspawner Rob Williams

      You might want to look into rooting the phone. That should clear that permission issue up. Also make sure that your microSD card is actually functioning If it isn’t, I could see that error occurring.

  • Haley Buck

    Hey Rob. I have an LG Escape and i’m running 4.0.4.The install location is now set to 2, but the apps still save internally. help?

    • http://www.facebook.com/deathspawner Rob Williams

      Here’s a potentially dumb question: is the microSD card functional? You might want to test out storage location 3 to see if it exists, or possibly 1. It really should work as 2 though.

  • http://www.facebook.com/chauncy.kent Chauncy Kent

    I almost can’t believe this worked. This is about the 5th method I’ve tried and finally it did what it said it did. Great tweak! I was able to move Facebook, Google Voice, and Google Play Services on my Samsung dart and now I’ve got almost 40 MB free! It doesn’t sound like much, but it’s more than I’ve had in over a year.

    • http://www.facebook.com/deathspawner Rob Williams

      Cheers, I am glad it worked!

  • http://www.facebook.com/mohsin.shahxad Mohsin Shahzad

    Well I will say this method is perfect. As it worked for my Huawei Ascend Y201 Pro ICS 4.0.3 perfectly with no issues. Only the default google apps and launchers are not moveable but even i am able to move facebook and twitter like apps which always annoy me by their size and data gaining size.
    Thanks to the author

    • http://www.facebook.com/deathspawner Rob Williams

      I’m glad the article helped!