Monday, January 26, 2015

How to: Unlock external SD Card writing for all apps in Android 4.4 and 5.0

In Android 4.4 "Kitkat" (API 19) Google has changed the default permissions for the external SD Card (usually microSD). Since that Android OS version third-party apps have no more access to write on the SD Card. It's a bit problematic, because now you might not be able to use your favourite Files Manager to move or copy files on the external storage.

Some time ago I wrote a comprehensive guide about the differences between external storage (microSD Card), internal storage (virtual SD Card) as a part of the userdata partition and internal storage (virtual SD Card) as a separate eMMC partition - Virtual SD card on Android.

Now let's get back to our R/W (Read/Write) permission "problem" on the external storage. There are 3 things you need to know before going any further:
  1. This change was made by Google for a security reason. Keep that in mind!
  2. Root access is required to make proper changes on your device.
  3. This method might break OTA updates on your device if you're running stock operating system. I wrote "might" because this trick is based on modifying the /system/etc/permissions/platform.xml file, which isn't frequently updated by phone manufacturers, but most likely it will be updated when next major system update arrives (f.g. KitKat ---> Lollipop).

Procedure
Note: root required!
  1. Start up your device normally and wait for the system to be fully loaded.
  2. Open any files manager of your choice (Root Explorer, ES File Explorer, Total Commander) and make sure it runs with superuser permissions.
  3. Mount your system partition as R/W (Read/Write) to perform any changes.
  4. Navigate to the /system/etc/permissions/ folder and look for the platform.xml.
  5. Copy the platform.xml file into the same location as platform.xml.bak file.
  6. Open the platform.xml file with any text editor on your device and search for the following line:
  7. <permission name="android.permission.WRITE_EXTERNAL_STORAGE">

    It should look like on the picture below:

  8. Now you need to add a 3rd GID (Group ID): <group gid="media_rw" /> and you need to make it looks exactly like on the picture below:
  9. Using Root Explorer or any other Files Manager of your choice make sure that the platform.xml file has proper permissions: Owner R-W | Group R | Others R (0644 rw-r--r--). You can also use adb shell to set permissions with a chmod 0644 /system/etc/permissions/platform.xml command.
  10. Reboot your device and enjoy!
  11. In case of problems with OTA update just remove modified platform.xml and rename platform.xml.bak to its original name.
Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!


For latest news follow Android Revolution HD on popular social platforms: