“Now that microsd cards of 200GB are available, let’s make sure our devices don’t have slots for them.”
Despite dropping sdcard slots from its Nexus lineup years ago, Google quietly included a feature in Android Marshmallow 6.0 that makes sdcards infinitely more useful. Most of the time, adding an sdcard simply means you have a bunch of extra room for pictures, videos, and (if you’re dedicated enough) a bit more wiggle room into which you can install your apps. The benefits for apps haven’t been quite as cool due to some limitations:
- not all apps support being installed to the sdcard,
- you can’t use widgets of apps installed to the sdcard, and
- apps still require at least some space in internal storage even when they’re installed on a card.
Now, thanks to a feature in Android Marshmallow 6.0, “Adoptable Storage”, adding an sdcard can expand your internal storage. Cool!
SDcard as Internal Storage
If you’re one of the lucky few who has a microsd slot in their Android-powered smartphone or tablet (and it’s also running Android Marshmallow 6.0) when you pop a microsd card in for the first time you’ll be asked if you want to use it as “Portable Storage” or as “Internal Storage”.
If you opt for “Portable Storage”, everything will behave just like it has in the past. Nothing new or exciting there. If you choose “Internal Storage”, that’s where things get really interesting.
The first thing that happens is a process which will reformat and encrypt the card – anything on the card will be lost during this process, so you’ll want to copy anything on the card that you want to keep prior to heading down this road. This process formats the card as an EXT4 drive with 128-bit AES encryption that is mounted as part of the system and set as the preferred storage. You’ll even be prompted to move your data over to it, and, as you’d expect, new data is saved on this “adopted storage” by default.
If you head to the Storage & USB settings you’ll notice that the microsd card isn’t there. What’s more, your internal storage will have increased to approximately the same size as the sdcard’s capacity (minus a little for overhead and formatting and whatnot).
Just don’t take it out. Ever.
Notice that the space is not increased by the size of the sdcard, but to the size of the sdcard. You’re basically swapping out your internal storage (which is typically eMMC, which is fairly quick), with your sdcard (which is typically slower than the built-in storage chip). You’ll be trading speed for capacity. In some cases this is a fair trade.
There is one more interesting tidbit: with a little bit of work, adoptable storage extends beyond just microsd cards. You can technically mount any USB OTG device as adoptable storage. In theory, this would let you have a 1TB hard drive attached via USB OTG. Of course you’d never be able to remove that hard drive, so the uses are very limited – but very interesting.
If you’re interested in forcing “any” storage device connected via USB OTG to become adoptable storage, here’s the command you’ll need to know. We haven’t tried this, so proceed at your own risk.
adb shell sm set-force-adoptable true
Why Google opted to include this “adoptable storage” feature (and neglected talking about it) is likely due to the Android One project. Android One is focused on emerging markets. To cut costs, many of these phones have very limited internal storage (some as low as 4GB storage) – but they usually include a microsd card slot for expansion. In this context, popping in a card and dramatically increasing internal storage makes a lot of sense.