Indotechboy — The new Android 6 (code: Marshmallow) is out now can be found spreading on newest Android devices. Even the Android 7 (code: Nougat) is also has been stable for used now. The updated of Android Operating System (OS) is sure will give it some changes and new features.
One of the changes made in Android OS starting from Marshmallow version is the external SD Card behaviour. Well I can tell a little bit about Android Marshmallow and Android Nougat because I had tried the CyanogenMod 13 ROM which running Android 6.0 Marshmallow and CyanogenMod 14.1 ROM which running Android 7.1 Nougat. Thanks to the developer of the ROM's I can taste those updated Android OS on my Samsung Galaxy V Android smartphone.
The external SD Card naming or directory has changed, different from previous Android version from /storage/extSdCard/ to /storage/XXXX-XXXX/, where XXXX-XXXX is some combination of numbers and letters. But it's not the main issue here, the main issue is the external SD Card is not anymore freely writable like it was. If you want a full write / access to external SD Card on Android 6.0 Marshmallow and up now, you have to do "Format as internal" in the external SD Card in the Settings.
The preference to format external SD Card as internal also is given when you first boot your Android device. The formatted as internal external SD Card will gain your Android device ability to move application to the external SD Card and the full write / access for every application of course.
Be cautious because formatting external SD Card as internal will erase whole of it's files like music, movies, etc, so don't forget to backup your external SD Card content first. The negative effect why I don't want to do it, is because the formatted external SD Card will become ONLY WORK for the Android device.
If you choose not to format your external SD Card as internal in Android 6 Marshmallow, your external SD Card will still functionable but the application ONLY have write access to their own /storage/XXXX-XXXX/Android/data/"my.package.name" directory by default.
If an app demand a write access outside of it's "Android/data/..." directory, the app must have a setting to open document storage then you must select the external SD Card root. The problem is, not every application have implemented it yet. Even I had a hard time using some root application like Titanium Backup or Helium on CyanogenMod 13 ROM.
Fortunately, there is an easy method to make our external SD Card on Android 6.0 Marshmallow and up become full writable using an Xposed Module called XinternalSD. I have tried it on my Samsung Galaxy V Android phone running CyanogenMod 13 (CM13) ROM. By enabling the XinternalSD module in Xposed, my external SD Card become freely writable at any directory and any application.
XinternalSD has been tested on my Samsung Galaxy V Android smartphone running Android 6.0 Marshmallow, CyanogenMod 13 (CM13) ROM and it could solve the following problem on the following Android applications I have tested:
- UC Browser, now I can set the download directory to /storage/XXXX-XXXX/ANYWHEREIWANT/.
- Helium, now the delete and make backup to external SD Card (/storage/XXXX-XXXX/carbon/) is working properly.
- Titanium Backup, now I can set the backup folder to /storage/XXXX-XXXX/ANYWHEREIWANT/.
- And other applications...
Steps to make external SD Card become full writable on Android 6.0 Marshmallow without need to format it as internal, using XinternalSD
Note that this only make the external SD Card full writable so every application could write and read freely to the external SD Card without need any additional permission, and will not retrieve the ability to move application to external SD Card:
- Backup, if you feel need it.
- Xposed Framework Installed. See: Xposed Framework Installer for every Android version.
- Latest XinternalSD module.
- Download and install latest version of XinternalSD.
- Activate the XinternalSD module on Xposed.
- Open the XinternalSD app, make sure the option "Custom path to internal SD card" and "Full access to external SD card" is checked.
- Now reboot your Android device and test it yourself...