April 24, 2014 7:13am
It’s no accident that no Nexus devices since the Nexus One have included microSD cards. Google has been slowly chipping away at the usefulness (and viability) of using external storage within Android, both as a means to increase security, and a way to improve user experience.
With the two latest and great Android devices in the Galaxy S5 and One M8 including microSD slots — the former a given, the latter a surprise — we have come to a tipping point in the life of SD cards on the platform.
Today, most high-end Android devices come standard with either 32GB of internal storage standard, or offer secondary (and often prohibitively expensive) options for more internal storage. This is a good thing: recently Android versions, plus OEM and carrier pre-installs, often take up 5GB, reducing a user’s usable space out of the box from 16GB to around 11GB. Samsung was most famously guilty of this in last year’s GS4, and prompted a backlash from users complaining they weren’t getting what they paid for.
Leaving behind for a moment the reality that 16 million bits is not actually 16 gigaBYTES of space — and that hard drive manufacturers have been guilty of this deception for years — should Android’s microSD support die once and for all?
“The SD card needs to go away. It’s a nightmare…”
“The SD card needs to go away. It’s a nightmare for developers. There’s too much variability here. SD Cards can be slow, resulting in poor app performance. They can come and go, or be swapped, and that results in unpredictable behavior if an app was expecting an SD card. One contiguous block of data needs to become the standard here (with different OEM SKUs for more/less storage), as it has been on iOS since the first iPhone.”
The words of Koushik Dutta, aka Koush, rang true when I read them in an interview he did with Android Police last week. Google has been trying to make Android considerably more accessible to the average (read: non-techie) smartphone user, and doing so means plugging the holes that have heretofore been the cause of many performance and security issues.
We went over the changes made to microSD card support in Android 4.4, but here’s a quick recap: Google has made it impossible for developers to store content outside of a single pre-determined folder. That means that apps that relied on storing content in multiple places prior to KitKat have had to change their methods, or remove SD support entirely. While apps can store their own content in that folder, according to the new rules it will be deleted when the app is uninstalled. Apps like third-party cameras that stored photos on the microSD card would be forced to remove that content if the app was uninstalled; there are no such restrictions to writing to internal storage.
The restriction to storing app content in a single folder on external storage has actually existed since Honeycomb, but Google only began enforcing it after releasing Android 4.4. According to the AOSP site, the change is as follows: “The WRITE_EXTERNAL_STORAGE permission must only grant write access to the primary external storage on a device. Apps must not be allowed to write to secondary external storage devices, except in their package-specific directories as allowed by synthesized permissions.”
Dividing a monster
The biggest market affected by this was, of course, Samsung users. HTC had been sporadic in adding external storage to its devices — only entry and mid-range devices used them until recently — and Sony, which offers microSD slots in almost every device, has much lower market penetration.
Samsung was likely forced to adopt Google’s new microSD limits to get approval for its software — every OEM goes through a Compatibility Suite test to determine compliance with Google’s core Android framework. The SD card is still user-accessible, of course, and non-app folders can be written to with other methods, but offloading core app assets to an SD card is now much more limited.
Technical jargon aside, this enforcement change is no accident; Google is looking to make Android more secure, but also appear more secure to the outside world. The company knows it cannot prevent OEMs like Samsung from installing microSD slots, but severely limiting the functionality will do two things: encouraging OEMs to add more internal storage; or, cut down on the size of the core OS.
Android is complicated. It’s so because the file system, and the way that apps were given leeway to write all over the internal and external storage, were flexible. External storage — the ability to buy a $50 card and dump thousands of songs and hundreds of hours of video — is an attractive proposition, but it comes with a usability cost. Google isn’t trying to obfuscate the file system completely, but in order to secure Android for the next billion people, and ensure that OEMs and app developers utilize external storage in prescribed, predictable ways, these enforcement changes were deemed necessary.
The changes have annoyed a lot of hardcore Android users, but the move to cloud storage, streaming music and video, and devices with larger internal storage — 32GB is becoming increasingly common on high-end products — will alleviate some of this frustration. The rest will merely have to get used to the changes, or figure out ways around it.