31747Increasing internal app storage space in Android with an external SD card
- Aug 19, 2014I mentioned in another thread that I acquired an Android tablet. It's
a low end device, and the scarce resource is application storage. It
has a 787MB app storage area, and a 1GB internal flash partition seen
as an SD card. When you install apps they go to internal app storage.
*Some* apps can be relocated to the internal sdcard. Whether they can
depends on the app: they must be structured to permit that usage. And
when you do, the entire app isn't moved. Apps have an executable,
internal data, and libraries. Part of the executable will remain in
app storage, even if the rest gets moved to the card.
My device has a microSD card slot, and I put a 32GB card (the claimed
maximum size it supports) into it. That's fine for data. It's where
my large collection of eBooks is stored, as well as videos, audio
files, and images. The apps that display them can be told where to
look on the card. But the external card can't be used as is for apps
It *is* possible to use the external card for that, but is requires hacking.
First, you *must* be root. This cannot be done on an unrooted device.
Second, you must repartition the external card. The issue is that SD
cards come formatted as FAT32. FAT does not support permissions or
other attributes required to do this, because there is no place in the
FAT file system to store the required data. You need to create a
second partition on the card, and format it with the Linux ext file
system. Possible choices are ext2, ext3, or ext4. Ext3 is ext2 with
support for journaling, and ext4 adds support for extents. I used
ext4, but I believe the others would work as well.
The partitioning can be done from Linux with GPartEd, from a GPartEd
Live CD, or with a Windows tool like the freeware MiniTool Partition
Manager. (I used MiniTool for convenience.)
I allocated a 2GB partition for this, formatted ext4. You also need
to mark the partition as primary, and change the partition ID to
indicate it has a Linux file system. At thet point, you can put the
card in the device, and reboot the device. When it boots, Android
will see and be able to use the new partition.
Third, you must put apps on the external card. I used a freeware app
called Link2SD from the Play Store. There is also an open source app
called Mounts2SD that does the same sort of thing.
When you run Link2SD, it displays a list of apps on your device and
where they reside. Select an app in internal storage, and there will
be a screen where you can either use the built-in app2SD function to
move it to the internal card, or the Create Link function. Create
Link moves the app from internal storage to the Linux partition on the
external card, and creates symbolic links in the root file system
pointing to the new location, so Android will see and use them as
though they were internal storage.
Apps that have already been relocated to the internal card can't be
linked that way, but you *can* link the app's *data*. For instance, I
was able to install AndOpen Office, a beta Android port of Apache Open
Office. It's *huge*. It's a 90MB download, and requires well over
200MB when installed. It installs to the internal card automatically.
I couldn't move it to internal storage because there wasn't enough. I
*could* link it's data. That freed about 80MB of internal storage.
Overall, I've been quite pleased. Before repartitioning the card and
using apps to SD, I was at a point where I was removing things to make
room, and had updates to some big apps like Google Sheets fail because
there wasn't enough space to do the upgrade. Google apps tend to be
large, and most an't be moved to the internal card. In particular,
Chrome, Docs, and Sheets must be in internal storage. With Links2SD,
I could move them to the external card, and everything worked as
I'm playing it cautious. I'm *not* moving stuff to the external card
listed as a System Application. I want the device to still boot and
run, even if the external card doesn't happen to be in it, and I'm
still learning which parts are critical and really need to stay where
they are. But I've been able to successfully install and use far more
than I could have before doing this, and worked around the biggest
- Next post in topic >>