When Google introduced us to Android 4.4 KitKat back at the end of October 2013 we were initially a little let down with what seemed to only be a minor update given the complete name change from Jelly Bean to KitKat. Once we started digging, however, we were pretty happy with Google's decisions, changes and additions to our favorite mobile OS. Since the announcement of KitKat we've seen one of the fastest rollouts of any Android update, only rivaled by that of Android 4.3 Jelly Bean, and everyone has been generally pleased with the improvements Android 4.4 KitKat has brought to the table. Among a general tweaking of the user interface KitKat brings a lot of back end changes, and seemingly for the better in most cases. We did start noticing something rather nasty though when Samsung begun the rollout of KitKat to its popular devices: SD card support was completely broken. After the update most users weren't able to do anything with their SD cards at all; no writing to them, no deleting files, no activity of any kind allowed other than reading data, not even if you had almighty root access. This was puzzling at first, but a makeshift solution was quickly found, so long as you possessed root access of course. But the real problem here isn't just getting the issue fixed, it's finding out why this happened in the first place and why none of us were warned ahead of time.
Let's go back to the advancements in Android since 4.3 Jelly Bean, specifically in relation to security. Over the years Android has become incredibly secure compared to what it once was, and that's all thanks to Google changing the general makeup of the OS and how apps ask for permission to do things on the system. When you install an app now Google runs a malware scan to make sure you're not getting infected. When you install something either from the Play Store or otherwise you're greeted with the permissions an app is requesting and can either accept or deny those based on your level of paranoia (or safety depending on your viewpoint). Google even introduced a hidden feature that allows you to pick and choose what permissions a specific app is allowed to use and switch them off on a whim. While all of this is great there was still one gaping hole in Google's strategy: SD cards. No not the general existence of the SD card, that's just silly to think of, rather the ability for any app to write wherever it wanted on an SD card without any kind of restrictions. Often times this just lead to a rather jumbled storage area, with dozens or even hundreds of different folders in seemingly random locations and no easy way to find the data you're looking for if you're trying to clean up your card. Google has attempted to tackle this with Android 4.4 KitKat by requiring apps to not only have permission to write to the SD card, but to only write into specific folders as well.
This change meant that once you upgraded to KitKat your apps mostly stopped working if they were trying to access the SD card at all. Everyone was seemingly caught unawares of the permissions change, and now even simple things like camera apps are nearly unusable if you're trying to save to the SD card. So who's to blame here, really? Well let's start with Google, who changed the way things work in the first place. While Google likely included this change in the documentation for the KitKat developer kit, they certainly haven't made a big enough deal of the situation. How else can you explain so many apps that aren't working right now, especially ones as simple as camera apps that now can't write to the DCIM folder on the SD card? Something clearly is amiss here and it needs to be addressed ASAP. There's a number of support groups on Google from app developers about these problems, and as many devs are unhappy about the change as users. While Google allows apps to write to their "package specific location" on the SD card, writing to another directory is another story entirely, and is much more difficult than it probably needs to be.
Next let's look at OEMs like Samsung who have updated users to KitKat and again haven't warned them that their SD card will effectively become useless after the update. These OEMs have to know this stuff exists, unless of course they've never tested any updates which is preposterous to think about. While the root fix we posted involves just a single line of code to be added to one of the configuration files within the OS, Samsung seems to have not even tried to attempt such a fix, even if it pisses Google off for the time being. While I've heard others say that any OEM who makes such a change to the OS would lose its Google Play certification, I think it's pretty preposterous to think that Google would pull Samsung's certification, the largest Android vendor by far, over something that's a selling point on their devices. Samsung devices have long been one of the few major ones with SD card support, and it's one of the many reasons quite a few people stick with Samsung as their brand of choice. Eliminating this functionality the way it has been done is foolish for both Google and Samsung, and not telling their users before updating is completely disingenuous and downright ridiculous. There's such a hue and cry about this policy change I imagine we'll see something happen in the near future, especially if OEMs like Samsung want to keep that SD card storage as a selling point for their devices.
What can you do for now though? Well if you've already taken the Android 4.4 KitKat update on your device your only option is to root the device and apply the fix. Outside of that there's generally no way to go back in firmware version to Android 4.3 Jelly Bean to keep the functionality you had. You could also just not update to Android 4.4 KitKat once you receive the update notification, but given the sheer number of features KitKat adds I personally don't think it's worth it to do that. What's the best plan of action here then? Behavior change is pretty much required at this point in order to keep using the SD card as storage until Google either reverses the policy or allows another way to use the SD card for those who don't have root access. You're going to need to store things on your internal memory instead of the SD card, and while I understand that such a thing goes against the entire point of having an SD card in the first place there's not much else to do. The good news is that you can still read from the SD card, and you can still modify anything you'd like after hooking your phone or SD card up to a computer. For the time being it might be best to have your favorite camera app store photos and videos on your internal memory, and from time to time just transfer the stuff over to your SD card or another backup for safe keeping, as you can still view those pictures and videos in your gallery, just not modify the files once they are on the SD card. Until something changes we're pretty much stuck in this unfortunate place, but until then it's just how it is. Those of us who are outraged will push for changes, and given the large community behind Android we expect Google will make those changes in the future.