ExtSD writing FIX (No CWM requires)

Search This thread

dr.ketan

Recognized Developer / Recognized Contributor
It's known that new kitkat base have permission issue using Ext SD card writing. Here is simple application to fix the issue.


- Needs Rooted device

In which condition it is helpful?
-When you are not able to write on ExtSD card
-Fail to copy to ExtSD
-If you keeping backup on titanium and you getting message 'no enough space' while making backup with titanium
or any msg suggestive of fail in writing on ExtSD

PS : If you are not able to read ExtSD card contents, that's different issue and can't solve by this.

How to Use
- Download and Install attached ExtSD Fix.apk as regular apk
-Click app icon from app drawer
-Grant SuperSu permission
-When you get msg 'ExtSD fixed applied' reboot device
-Done. You can uninstall app now.
 
Last edited:

georgegon60

Senior Member
Apr 26, 2011
60
10
Colima
thanks I need this

I'M rebooting. If it doesn't work "I'll be back".


Thanks man!

[Updated]
10/19/2014

Totally working, Now I can erease docs, pics, and music using 3rd app as Astro, etc.

Thanks, Again.
 
Last edited:

Parinibbana

Senior Member
Dec 28, 2013
178
153
ExtSD Fix.apk doesn´t fix the issue on my Note 4, 910C

Thanks Doc,
Working properly with 910C model.

Hello Kadiremrah & Dr. Ketan,

I am also on the Note 4 910C-model, running Dr. Ketan´s ROM, but can´t manage to write on the sd-card. I tried Dr. Ketan´s "ExtSD Fix.apk", as well as the method below.

This is the setting how the platform.xml looks on my device:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
<group gid="media_rw" />
</permission>

I followed the instructions neatly, no typo, rooted, etc. but to no avail. Many months ago I already applied the same SD-card-fix on my previous phone (LG G2) - at that time it worked perfectly.

Here is some further info that I gathered from Root Explorer . Maybe there is something not correct with those settings.
The owner of the "storage/extSdCard"-Folder is: Owner: 0 - root; Group 0 - root
The permissions of the "storage/extSdCard"-Folder are set to: 0771
The permissions for mnt/media_rw are set to: 0700

I tried to set the permissions for mnt/media_rw to 0744, which immediately after the change gets displayed on the Root Explorer properly. But after a reboot it automatically goes back to 0700.

Any ideas what could be wrong here?
I just noticed that in the Note 4, storage/external_SD is called storage/extSdCard instead. Could that be causing the problem?

Kadiremrah, it would be very interesting to compare those settings with your 910C-model.
 
Last edited:

kadiremrah

Senior Member
Aug 21, 2013
447
606
Nigde
My platform.xml

PHP:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
     Copyright (C) 2013 Broadcom Corporation
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
          http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!-- This file is used to define the mappings between lower-level system
     user and group IDs and the higher-level permission names managed
     by the platform.

     Be VERY careful when editing this file!  Mistakes made here can open
     big security holes.
-->
<permissions>

    <!-- ================================================================== -->
    <!-- ================================================================== -->
    <!-- ================================================================== -->

    <!-- The following tags are associating low-level group IDs with
         permission names.  By specifying such a mapping, you are saying
         that any application process granted the given permission will
         also be running with the given group ID attached to its process,
         so it can perform any filesystem (read, write, execute) operations
         allowed for that group. -->

    <permission name="android.permission.BLUETOOTH_ADMIN" >
        <group gid="net_bt_admin" />
    </permission>

    <permission name="android.permission.BLUETOOTH" >
        <group gid="net_bt" />
    </permission>

    <permission name="android.permission.BLUETOOTH_STACK" >
        <group gid="net_bt_stack" />
    </permission>

    <permission name="android.permission.NET_TUNNELING" >
        <group gid="vpn" />
    </permission>

    <permission name="android.permission.SYSTEM_GROUP_INTERNAL" >
        <group gid="system" />
    </permission>

    <permission name="android.permission.INTERNET" >
        <group gid="inet" />
    </permission>

    <permission name="com.sec.android.permission.CAMERA" >
        <group gid="camera" />
    </permission>

    <permission name="android.permission.READ_LOGS" >
        <group gid="log" />
    </permission>

    <permission name="android.permission.READ_EXTERNAL_STORAGE" >
        <group gid="sdcard_r" />
    </permission>

    <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
        <group gid="sdcard_r" />
        <group gid="sdcard_rw" />
        <group gid="media_rw" />
    </permission>

    <permission name="android.permission.ACCESS_ALL_EXTERNAL_STORAGE" >
        <group gid="sdcard_r" />
        <group gid="sdcard_rw" />
        <group gid="sdcard_all" />
    </permission>

    <permission name="android.permission.WRITE_MEDIA_STORAGE" >
        <group gid="media_rw" />
    </permission>

    <permission name="android.permission.ACCESS_MTP" >
        <group gid="mtp" />
    </permission>

    <permission name="android.permission.NET_ADMIN" >
        <group gid="net_admin" />
    </permission>

    <!-- The group that /cache belongs to, linked to the permission
         set on the applications that can access /cache -->
    <permission name="android.permission.ACCESS_CACHE_FILESYSTEM" >
        <group gid="cache" />
    </permission>

    <!-- RW permissions to any system resources owned by group 'diag'.
         This is for carrier and manufacture diagnostics tools that must be
         installable from the framework. Be careful. -->
    <permission name="android.permission.DIAGNOSTIC" >
        <group gid="input" />
        <group gid="diag" />
    </permission>

    <!-- Group that can read detailed network usage statistics -->
    <permission name="android.permission.READ_NETWORK_USAGE_HISTORY">
        <group gid="net_bw_stats" />
    </permission>

    <!-- Group that can modify how network statistics are accounted -->
    <permission name="android.permission.MODIFY_NETWORK_ACCOUNTING">
        <group gid="net_bw_acct" />
    </permission>

    <permission name="android.permission.LOOP_RADIO" >
        <group gid="loop_radio" />
    </permission>

    <!-- The group that releated with VPN -->
    <permission name="android.permission.SAMSUNG_MODIFY_ROUTE" >
        <group gid="net_admin" />
    </permission>

    <permission name="android.permission.SAMSUNG_TUNTAP" >
        <group gid="vpn" />
    </permission>

    <permission name="android.permission.SAMSUNG_MODIFY_IPTABLES" >
        <group gid="net_raw" />
    </permission>

    <!-- The group that releated with VPN -->
    <permission name="com.sec.android.SAMSUNG_MODIFY_ROUTE" >
        <group gid="net_admin" />
    </permission>

    <permission name="com.sec.android.SAMSUNG_TUNTAP" >
        <group gid="vpn" />
    </permission>

    <permission name="com.sec.android.SAMSUNG_MODIFY_IPTABLES" >
        <group gid="net_raw" />
    </permission>

   <!-- The group that releated with URL -->
    <permission name="com.sec.android.SAMSUNG_GET_URL" >
        <group gid="secnetfilter" />
    </permission>
    
    <!-- Group that can use gscaler -->
    <permission name="com.sec.android.permission.USE_GSCALER" >
        <group gid="graphics" />
    </permission>

    <!-- Except for SysScope, DO NOT USE this permission. -->
    <permission name="com.sec.android.app.sysscope.permission.ACCESS_SYSTEM_INFO_SYSSCOPE_ONLY" >
        <group gid="radio" />
    </permission>
	   
	<!-- Group that can use gscaler -->
    <permission name="com.sec.android.permission.USE_CAMERA" >
        <group gid="camera" />
    </permission>

    <!-- ================================================================== -->
    <!-- ================================================================== -->
    <!-- ================================================================== -->

    <!-- The following tags are assigning high-level permissions to specific
         user IDs.  These are used to allow specific core system users to
         perform the given operations with the higher-level framework.  For
         example, we give a wide variety of permissions to the shell user
         since that is the user the adb shell runs under and developers and
         others should have a fairly open environment in which to
         interact with the system. -->

    <assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="media" />
    <assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="media" />
    <assign-permission name="android.permission.WAKE_LOCK" uid="media" />
    <assign-permission name="android.permission.UPDATE_DEVICE_STATS" uid="media" />
    <assign-permission name="android.permission.UPDATE_APP_OPS_STATS" uid="media" />

    <assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="graphics" />

    <!-- This is a list of all the libraries available for application
         code to link against. -->

    <library name="android.test.runner"
            file="/system/framework/android.test.runner.jar" />
    <library name="javax.obex"
            file="/system/framework/javax.obex.jar"/>
<!--
    <library name="javax.btobex"
            file="/system/framework/javax.btobex.jar"/>
-->
</permissions>

Hello Kadiremrah & Dr. Ketan,

I am also on the Note 4 910C-model, running Dr. Ketan´s ROM, but can´t manage to write on the sd-card. I tried Dr. Ketan´s "ExtSD Fix.apk", as well as the method below.

This is the setting how the platform.xml looks on my device:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
<group gid="media_rw" />
</permission>

I followed the instructions neatly, no typo, rooted, etc. but to no avail. Many months ago I already applied the same SD-card-fix on my previous phone (LG G2) - at that time it worked perfectly.

Here is some further info that I gathered from Root Explorer . Maybe there is something not correct with those settings.
The owner of the "storage/extSdCard"-Folder is: Owner: 0 - root; Group 0 - root
The permissions of the "storage/extSdCard"-Folder are set to: 0771
The permissions for mnt/media_rw are set to: 0700

I tried to set the permissions for mnt/media_rw to 0744, which immediately after the change gets displayed on the Root Explorer properly. But after a reboot it automatically goes back to 0700.

Any ideas what could be wrong here?
I just noticed that in the Note 4, storage/external_SD is called storage/extSdCard instead. Could that be causing the problem?

Kadiremrah, it would be very interesting to compare those settings with your 910C-model.
 

Parinibbana

Senior Member
Dec 28, 2013
178
153
Try other SD card bcoz ROM is already prefixed for ext SD writing

Sent from my SM-N910G using xda premium

Spot on, Doc.
I tried another card, works perfectly. Back to the previous one - same problem.
Then I experimented with the mount/unmount-option in the settings. I have to confess I usually take out the card without un-mounting it first. Now I did it properly and voila. It works.

Another thing is that all my backupped apps (via Titanium) refer to storage/external_SD, since this was the way it was called on my previous phone (LG G2). But in the Note 4 the storage-place is called storage/extSdCard.
A number of my apps can´t find the new place. Of course I could just go into their settings and change the sd-card reference. But is there a way to rename the sd-card folder from extSdCard to external_SD? Root Explorer doesn´t let me.

---------- Post added at 09:46 AM ---------- Previous post was at 09:43 AM ----------

Try other SD card bcoz ROM is already prefixed for ext SD writing

Sent from my SM-N910G using xda premium

My platform.xml

PHP:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
     Copyright (C) 2013 Broadcom Corporation
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
          http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!-- This file is used to define the mappings between lower-level system
     user and group IDs and the higher-level permission names managed
     by the platform.

     Be VERY careful when editing this file!  Mistakes made here can open
     big security holes.
-->
<permissions>

    <!-- ================================================================== -->
    <!-- ================================================================== -->
    <!-- ================================================================== -->

    <!-- The following tags are associating low-level group IDs with
         permission names.  By specifying such a mapping, you are saying
         that any application process granted the given permission will
         also be running with the given group ID attached to its process,
         so it can perform any filesystem (read, write, execute) operations
         allowed for that group. -->

    <permission name="android.permission.BLUETOOTH_ADMIN" >
        <group gid="net_bt_admin" />
    </permission>

    <permission name="android.permission.BLUETOOTH" >
        <group gid="net_bt" />
    </permission>

    <permission name="android.permission.BLUETOOTH_STACK" >
        <group gid="net_bt_stack" />
    </permission>

    <permission name="android.permission.NET_TUNNELING" >
        <group gid="vpn" />
    </permission>

    <permission name="android.permission.SYSTEM_GROUP_INTERNAL" >
        <group gid="system" />
    </permission>

    <permission name="android.permission.INTERNET" >
        <group gid="inet" />
    </permission>

    <permission name="com.sec.android.permission.CAMERA" >
        <group gid="camera" />
    </permission>

    <permission name="android.permission.READ_LOGS" >
        <group gid="log" />
    </permission>

    <permission name="android.permission.READ_EXTERNAL_STORAGE" >
        <group gid="sdcard_r" />
    </permission>

    <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
        <group gid="sdcard_r" />
        <group gid="sdcard_rw" />
        <group gid="media_rw" />
    </permission>

    <permission name="android.permission.ACCESS_ALL_EXTERNAL_STORAGE" >
        <group gid="sdcard_r" />
        <group gid="sdcard_rw" />
        <group gid="sdcard_all" />
    </permission>

    <permission name="android.permission.WRITE_MEDIA_STORAGE" >
        <group gid="media_rw" />
    </permission>

    <permission name="android.permission.ACCESS_MTP" >
        <group gid="mtp" />
    </permission>

    <permission name="android.permission.NET_ADMIN" >
        <group gid="net_admin" />
    </permission>

    <!-- The group that /cache belongs to, linked to the permission
         set on the applications that can access /cache -->
    <permission name="android.permission.ACCESS_CACHE_FILESYSTEM" >
        <group gid="cache" />
    </permission>

    <!-- RW permissions to any system resources owned by group 'diag'.
         This is for carrier and manufacture diagnostics tools that must be
         installable from the framework. Be careful. -->
    <permission name="android.permission.DIAGNOSTIC" >
        <group gid="input" />
        <group gid="diag" />
    </permission>

    <!-- Group that can read detailed network usage statistics -->
    <permission name="android.permission.READ_NETWORK_USAGE_HISTORY">
        <group gid="net_bw_stats" />
    </permission>

    <!-- Group that can modify how network statistics are accounted -->
    <permission name="android.permission.MODIFY_NETWORK_ACCOUNTING">
        <group gid="net_bw_acct" />
    </permission>

    <permission name="android.permission.LOOP_RADIO" >
        <group gid="loop_radio" />
    </permission>

    <!-- The group that releated with VPN -->
    <permission name="android.permission.SAMSUNG_MODIFY_ROUTE" >
        <group gid="net_admin" />
    </permission>

    <permission name="android.permission.SAMSUNG_TUNTAP" >
        <group gid="vpn" />
    </permission>

    <permission name="android.permission.SAMSUNG_MODIFY_IPTABLES" >
        <group gid="net_raw" />
    </permission>

    <!-- The group that releated with VPN -->
    <permission name="com.sec.android.SAMSUNG_MODIFY_ROUTE" >
        <group gid="net_admin" />
    </permission>

    <permission name="com.sec.android.SAMSUNG_TUNTAP" >
        <group gid="vpn" />
    </permission>

    <permission name="com.sec.android.SAMSUNG_MODIFY_IPTABLES" >
        <group gid="net_raw" />
    </permission>

   <!-- The group that releated with URL -->
    <permission name="com.sec.android.SAMSUNG_GET_URL" >
        <group gid="secnetfilter" />
    </permission>
    
    <!-- Group that can use gscaler -->
    <permission name="com.sec.android.permission.USE_GSCALER" >
        <group gid="graphics" />
    </permission>

    <!-- Except for SysScope, DO NOT USE this permission. -->
    <permission name="com.sec.android.app.sysscope.permission.ACCESS_SYSTEM_INFO_SYSSCOPE_ONLY" >
        <group gid="radio" />
    </permission>
	   
	<!-- Group that can use gscaler -->
    <permission name="com.sec.android.permission.USE_CAMERA" >
        <group gid="camera" />
    </permission>

    <!-- ================================================================== -->
    <!-- ================================================================== -->
    <!-- ================================================================== -->

    <!-- The following tags are assigning high-level permissions to specific
         user IDs.  These are used to allow specific core system users to
         perform the given operations with the higher-level framework.  For
         example, we give a wide variety of permissions to the shell user
         since that is the user the adb shell runs under and developers and
         others should have a fairly open environment in which to
         interact with the system. -->

    <assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="media" />
    <assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="media" />
    <assign-permission name="android.permission.WAKE_LOCK" uid="media" />
    <assign-permission name="android.permission.UPDATE_DEVICE_STATS" uid="media" />
    <assign-permission name="android.permission.UPDATE_APP_OPS_STATS" uid="media" />

    <assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="graphics" />

    <!-- This is a list of all the libraries available for application
         code to link against. -->

    <library name="android.test.runner"
            file="/system/framework/android.test.runner.jar" />
    <library name="javax.obex"
            file="/system/framework/javax.obex.jar"/>
<!--
    <library name="javax.btobex"
            file="/system/framework/javax.btobex.jar"/>
-->
</permissions>

Thanks Kadiremrah for the platform.xml printout. As suspected, it´s the same as on my device. The problem seems to have to do with the sd-card itself - not the software.
 

Parinibbana

Senior Member
Dec 28, 2013
178
153
Just to keep you guys updated.
In fact, the mount/unmount didn´t turn out to help much after all.

But using another sd-card solved the problem.
 

buljo

Senior Member
Dec 14, 2008
219
33
Norway
www.dsolutions.no
I cant get this to work? im rooted, downloaded the apk, installs fine. but when i click it nothing happens. just grayed out for 2 secs and then nothing. waiting for supersu to ask for permission. but no such luck?

got a SM-N910F
 

buljo

Senior Member
Dec 14, 2008
219
33
Norway
www.dsolutions.no
it actually took like 6minutes before the supersu asked for permission. trying to flash a new stock rom now. phone was acting up lately.. will give this a go with a fresh install and report back.

thanks..
 

Beastn

Senior Member
Jul 19, 2010
54
9
You don't need to be rooted in order to write to the external SD. Most apps create a folder in external_sdAndroid/data/ whatever the app is that's writable.
 

buljo

Senior Member
Dec 14, 2008
219
33
Norway
www.dsolutions.no
Forgot to report back. Did a clean install and this worked beautifully.. Now titanium can write to the SD card. (problem was that xposed and s health was not friends.)
 

izizree

Member
Oct 2, 2010
40
1
Does it include "your memory card was damaged" when i format my mmc it last like a day then it damage again. Will this solution works for my issue?

Sent from my SM-N910C using XDA Premium 4 mobile app
 

mdrobiulhasan

Senior Member
Jan 22, 2015
312
152
United Arab Emirates
extsd card permission

Hi sir
I am using cm12 in my galaxy s2 plus (9105)
But my problem is that when I am going to copy
any file or media to my extad card I can do it
but when I am going to use it I can't.
one media file like mp3 I hear different songs sound
and apk file show me one massage (phrase problem when copy)
like this so please help me to solve
 

Top Liked Posts

  • There are no posts matching your filters.
  • 33
    It's known that new kitkat base have permission issue using Ext SD card writing. Here is simple application to fix the issue.


    - Needs Rooted device

    In which condition it is helpful?
    -When you are not able to write on ExtSD card
    -Fail to copy to ExtSD
    -If you keeping backup on titanium and you getting message 'no enough space' while making backup with titanium
    or any msg suggestive of fail in writing on ExtSD

    PS : If you are not able to read ExtSD card contents, that's different issue and can't solve by this.

    How to Use
    - Download and Install attached ExtSD Fix.apk as regular apk
    -Click app icon from app drawer
    -Grant SuperSu permission
    -When you get msg 'ExtSD fixed applied' reboot device
    -Done. You can uninstall app now.
    1
    Try other SD card bcoz ROM is already prefixed for ext SD writing

    Sent from my SM-N910G using xda premium
    1
    Check supersu app log. If it was rejected then select to forget. Or Uninstall and reinstall app

    Sent from my SM-N910G using xda premium
    1
    Are you crazy? ur mode fu..ed my phone.I cant use mmc and internal memory

    You didn't notice the date on that utility? It was updated on Oct 2014, that's KitKat. Next time you may want to read a bit more careful.