Loading ...
Sorry, an error occurred while loading the content.

31747Increasing internal app storage space in Android with an external SD card

Expand Messages
  • dmccunney
    Aug 19, 2014
      I 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
      system limitation.
    • Show all 8 messages in this topic