It’s been a pretty long time since I haven’t posted anything here, certainly because I actually didn’t have anything important to write. But anyway, today I’d like to share with you a trick I discovered that fixed low internal storage space issues on my Samsung Galaxy S2. Because a few weeks ago I started to experience my first “insufficient storage available” as I didn’t install any new apps or anything, perhaps the apps that were already installed continued to grow by themselves certainly due to cached data or something, using always more storage space over days.
My first thought was to move all my apps to the SD card but I realized once I opened up Android’s apps manager that only a bunch of them could be moved, and those were the lightest ones installed on my phone, max. 10Mb whereas Facebook for example (which is an unmovable app) uses something like 50Mb (and I still don’t understand why). Once I moved all the apps I could, there still wasn’t enough free space anyway so I had to find out a way to move those annoying “unmovable” apps.
The trick is pretty simple, it is actually just a command to run in a terminal emulator on the device itself with root permissions:
# pm setinstallLocation 2 (for Android <4.0)
# pm set-install-location 2 (for Android 4.0+)
Choose which command suits your phone, depending on the Android version it runs.
If you don’t have root permissions on your device, use ADB (included in the Android SDK) in a shell on your computer, the commands may differ on Windows:
$ cd path/to/adb/
$ ./adb devices
$ ./adb shell pm setinstallLocation 2 (for Android <4.0)
$ ./adb shell pm set-install-location 2 (for Android 4.0+)
Please note that you can display the current configuration by entering the following command (thanks Amandilh!):
# pm get-install-location (directly on the phone)
./adb shell pm get-install-location (using ADB)
Voila! Your phone will now install every new app on the SD card and you’re now able to move ANY app to the SD card, enjoy!