Here’s the situation: You have a phone with a 32GB internal storage, and you bought a 128GB SD card because you have a massive app collection. You set your SD card as the default storage for app installation – and yet, over time, you notice that your internal storage is nearly full, while your SD card is barely used. What the heck is going on?
Here’s the thing: apps are generally designed to operate from internal storage. App developers can configure them to function from an SD card, but most developers optimize their apps for internal storage due to performance reasons. The read/write speed of internal storage is often much faster than that of an SD card. Thus, even if you’ve designated your SD card as the “default” installation point, the app’s preferences may override yours, per the developer’s design. So, how do you compel apps to install onto the SD card? I’m going to illustrate several methods to achieve this.
Note: Your phone must be rooted. Search Appuals for a guide on how to root your Android phone.
The app method is effective
There is a handful of apps that can forcibly transfer other apps from internal storage to an SD card. Some of these are more successful than others. For instance, certain apps might only move the /cache folder to your SD card, leaving the rest of the app stored internally. These apps function similarly to manually going into Settings > Storage > Apps and tapping the ‘Move to SD Card’ button. In fact, such apps simply serve as a shortcut to this button, wrapped in a GUI.
What you want is an app that actually does the entire job – for this you need Link2SD. However, Link2SD requires that your phone has init.d support.
To check if you have init.d support, you can install Universal Init.D from Play Store.
First, go ahead and install Universal Init.D, launch it, and press the “Test” button. Reboot your phone and launch Universal Init.D again; it will tell you if the test was successful in checking init.d support. If your phone does not have init.d support, you can toggle the “Off/On” button in Universal Init.d to emulate the support you need.
Once you’re done with that, install Link2SD from the Play Store, and launch it. Now press the first button in the top right corner, and filter your apps by Internal storage.
Find an app that you want to move to your SD card and select it. If you’re using Marshmallow, you can ignore the message that says ‘Second partition not found.’ This is because, in Marshmallow and later versions, Android treats the SD card as an extension of the internal storage rather than as a separate device. You should then press the ‘Move to SD card’ button located under the ‘Android App2SD’ menu.
The ADB Method
This method is slightly more technical; it forces your phone to always install apps directly to the SD card, eliminating the need for using an app to transfer them from internal to SD storage. If you’re unfamiliar with the ADB terminal, first read the article ‘How to install ADB on Windows‘.
Once you have ADB all set up, connect your phone to your PC via USB, and launch the ADB terminal on your computer. Now type the following command:
adb shell pm set-install-location 2
To reverse it back to normal, type:
adb shell pm set-install-location 0. If the above command does not work, you may need to completely format your SD card on your PC, then re-insert it into your Android phone, and select it as Portable Storage rather than Internal Storage. However, if your device was previously treating the SD card as an internal storage expansion, you cannot simply format it and switch it over to Portable Storage, without virtually factory resetting your phone as well. This is because, on some Android phones running Marshmallow or higher, the system literally adopts the SD card as an expansion of the internal storage, not as a separate storage device – thus, your SD card will contain a bunch of important system data. Therefore, removing the SD card will cause the Android system to go haywire.