ExtSD writing FIX (No CWM requires) - Galaxy Note 4 Themes and Apps

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.

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.

Thanks Doc , Works Perfectly

Thanks that's great.
I'll try it soon.

Working on Exynos N910C
Thanks Doc,
Working properly with 910C model.

ExtSD Fix.apk doesn´t fix the issue on my Note 4, 910C
kadiremrah said:
Thanks Doc,
Working properly with 910C model.
Click to expand...
Click to collapse
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.

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>
Parinibbana said:
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.
Click to expand...
Click to collapse

dr.ketan said:
Try other SD card bcoz ROM is already prefixed for ext SD writing
Sent from my SM-N910G using xda premium
Click to expand...
Click to collapse
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 ----------
dr.ketan said:
Try other SD card bcoz ROM is already prefixed for ext SD writing
Sent from my SM-N910G using xda premium
Click to expand...
Click to collapse
kadiremrah said:
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>
Click to expand...
Click to collapse
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.

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.

Parinibbana said:
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.
Click to expand...
Click to collapse
Expected. I have very first told you to try another SD card as ROM already prefixed for this.

dr.ketan said:
Expected. I have very first told you to try another SD card as ROM already prefixed for this.
Click to expand...
Click to collapse
Sādhu, sādhu, sādhu.
With Mettā,
AD

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

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

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..

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.

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.)

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

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

Does it work with MM?

Related

-Permission Denial: receiving Intent- with C2DM

Hi,
I want to use the C2DM, but I always get follwoing Error:
Code:
10-05 02:10:40.394: WARN/ActivityManager(11985): Permission Denial: receiving Intent { act=com.google.android.c2dm.intent.REGISTRATION cat=[mobile.app] (has extras) } to mobile.app requires mobile.app.permission.C2D_MESSAGE due to sender com.google.android.gsf (uid 10046)
Here is my Manifest.xml:
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mobile.app"
android:versionName="0.1"
android:versionCode="1">
<uses-sdk android:minSdkVersion="10" />
<!-- Only this application can receive the messages and registration result -->
<permission android:name="com.google.android.c2dm.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="mobile.app.permission.C2D_MESSAGE" />
<!-- This app has permission to register and receive message -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- Send the registration id to the server -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
<!-- Only C2DM servers can send messages for the app. If permission is not set - any other app can generate it -->
<receiver android:name=".C2DMReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<!-- Receive the actual message -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="mobile.app" />
</intent-filter>
<!-- Receive the registration id -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="mobile.app" />
</intent-filter>
</receiver>
</application>
</manifest>
Anyone an idea?
thanks!
Questions or Problems Should Not Be Posted in the Development Forum
Please Post in the Correct Forums
Moving to Q&A

[Q] Email apps force close

Hi, if this is the wrong place to post this, then feel free to move it.
I have an interesting problem with my device. All email apps force close when checking my email, meaning that I can see my inbox, however when I select the email, it force closes. This happens on the stock email app, Gmail app, and the Hotmail app. If I turn off the wifi before going into the email, it doesn't crash.
Does anyone have any ideas? If you need logs, how and what to attache?
Thanks!
Please use the Q&A Forum for questions Thanks
Moving to Q&A
Thanks! Do you have any ideas?
try unstalling and reinstalling. sometimes they get messed up. after that if it still i guess your next best bet would be a factory reset. do a backup first of course
Thanks for the reply.
I tried your suggestions, however it still doesn't work. I think it's missing something related to the wifi permissions, because it only happens when wifi is enabled. How can I verify this? How can I upload logs?
Thanks for the expected quick response.
Traced Source of force closes...
I think I traced the source of the force closes. The logs I've seen, crash after a java security exception, ACCESS. WIFI. STATE, so from what I understand, the apps crash because of missing wifi permissions. I do have android.hardware.wifi in the permission folder, however it's possible that it doesn't give permission to all uids s? Can someone look through the attached text and see if this is indeed the problem, and what's the solution?
Thanks.
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
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.INTERNET" >
<group gid="inet" />
</permission>
<permission name="android.permission.CAMERA" >
<group gid="camera" />
</permission>
<permission name="android.permission.READ_LOGS" >
<group gid="log" />
</permission>
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</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>
<!-- ================================================================== -->
<!-- ================================================================== -->
<!-- ================================================================== -->
<!-- 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. -->
<!-- Standard permissions granted to the shell. -->
<assign-permission name="android.permission.WRITE_EXTERNAL_STORAGE" uid="shell" />
<assign-permission name="android.permission.SEND_SMS" uid="shell" />
<assign-permission name="android.permission.CALL_PHONE" uid="shell" />
<assign-permission name="android.permission.READ_CONTACTS" uid="shell" />
<assign-permission name="android.permission.WRITE_CONTACTS" uid="shell" />
<assign-permission name="android.permission.READ_CALENDAR" uid="shell" />
<assign-permission name="android.permission.WRITE_CALENDAR" uid="shell" />
<assign-permission name="android.permission.READ_USER_DICTIONARY" uid="shell" />
<assign-permission name="android.permission.WRITE_USER_DICTIONARY" uid="shell" />
<assign-permission name="android.permission.ACCESS_FINE_LOCATION" uid="shell" />
<assign-permission name="android.permission.ACCESS_COARSE_LOCATION" uid="shell" />
<assign-permission name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" uid="shell" />
<assign-permission name="android.permission.ACCESS_NETWORK_STATE" uid="shell" />
<assign-permission name="android.permission.ACCESS_WIFI_STATE" uid="shell" />
<assign-permission name="android.permission.BLUETOOTH" uid="shell" />
<!-- System tool permissions granted to the shell. -->
<assign-permission name="android.permission.GET_TASKS" uid="shell" />
<assign-permission name="android.permission.CHANGE_CONFIGURATION" uid="shell" />
<assign-permission name="android.permission.REORDER_TASKS" uid="shell" />
<assign-permission name="android.permission.SET_ANIMATION_SCALE" uid="shell" />
<assign-permission name="android.permission.SET_PREFERRED_APPLICATIONS" uid="shell" />
<assign-permission name="android.permission.WRITE_SETTINGS" uid="shell" />
<assign-permission name="android.permission.WRITE_SECURE_SETTINGS" uid="shell" />
<assign-permission name="android.permission.BROADCAST_STICKY" uid="shell" />
<!-- Development tool permissions granted to the shell. -->
<assign-permission name="android.permission.SET_DEBUG_APP" uid="shell" />
<assign-permission name="android.permission.SET_PROCESS_LIMIT" uid="shell" />
<assign-permission name="android.permission.SET_ALWAYS_FINISH" uid="shell" />
<assign-permission name="android.permission.DUMP" uid="shell" />
<assign-permission name="android.permission.SIGNAL_PERSISTENT_PROCESSES" uid="shell" />
<!-- Internal permissions granted to the shell. -->
<assign-permission name="android.permission.FORCE_BACK" uid="shell" />
<assign-permission name="android.permission.BATTERY_STATS" uid="shell" />
<assign-permission name="android.permission.INTERNAL_SYSTEM_WINDOW" uid="shell" />
<assign-permission name="android.permission.INJECT_EVENTS" uid="shell" />
<assign-permission name="android.permission.SET_ACTIVITY_WATCHER" uid="shell" />
<assign-permission name="android.permission.READ_INPUT_STATE" uid="shell" />
<assign-permission name="android.permission.SET_ORIENTATION" uid="shell" />
<assign-permission name="android.permission.INSTALL_PACKAGES" uid="shell" />
<assign-permission name="android.permission.CLEAR_APP_USER_DATA" uid="shell" />
<assign-permission name="android.permission.DELETE_CACHE_FILES" uid="shell" />
<assign-permission name="android.permission.DELETE_PACKAGES" uid="shell" />
<assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="shell" />
<assign-permission name="android.permission.READ_FRAME_BUFFER" uid="shell" />
<assign-permission name="android.permission.DEVICE_POWER" uid="shell" />
<assign-permission name="android.permission.INSTALL_LOCATION_PROVIDER" uid="shell" />
<assign-permission name="android.permission.BACKUP" uid="shell" />
<assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="media" />
<assign-permission name="android.permission.ACCESS_DRM" uid="media" />
<assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" 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"/>
</permissions>
Here are logs...
http://pastebin.com/kz1idxqV
Thanks!

Help with device compatibility

Hi I've developed a apk and published it on Play Store.
It works fine, but there are many devices that don't support my apk, and I would like to change it.
Can someone help me find the purpose of some of these devices being incompatible?
Here is the restrictions of my app:
Screen layouts: SMALL NORMAL LARGE XLARGE
Device resources needed:
android.hardware.camera
android.hardware.camera.autofocus
android.hardware.location
android.hardware.location.gps
android.hardware.screen.portrait
android.hardware.touchscreen
Click to expand...
Click to collapse
And here are some devices that aren't supported:
Nexus 7(grouper)
Revue(ka)
sdk(generic)
Amazing CN CHINA TELECOM(SCH-I619)
Behold II(sgh-t939)
GT-B5330(zanin)
GT-B5512B(GT-B5512B)
GT-I5508(GT-I5508)
GT-P3108(espressorfcmcc)
GT-P5100(espresso10rf)
GT-S5360(GT-S5360)
GT-S5360B(GT-S5360B)
GT-S5360L(GT-S5360L)
GT-S5360T(GT-S5360T)
GT-S5363(GT-S5363)
GT-S5368(GT-S5368)
GT-S5369(GT-S5369)
GT-S5570B(GT-S5570B)
GT-S5570I(GT-S5570I)
GT-S5570L(GT-S5570L)
GT-S5578(GT-S5578)
GT-S5820(GT-S5820)
GT-S6102(GT-S6102)
Galaxy(gt-i7500)
Galaxy Mini(GT-S5570)
Galaxy Player(YP-GS1)
Galaxy Player 5.8(harrison)
Galaxy Pocket(GT-S5300)
Galaxy Pocket(GT-S5302)
Galaxy Pocket(GT-S5302B)
Galaxy Prevail(SPH-M820)
Galaxy Tab(SMT-i9100)
Galaxy Tab 2 7.0 WiFi(espressowifi)
Galaxy Tab2 10.1(espresso10wifi)
Galaxy Y Duos (ivory)
Galaxy Y Pro(GT-B5510)
Galaxy Y Pro(GT-B5510B)
Galaxy Y Pro(GT-B5510L)
Galaxy Y Pro Duos(GT-B5512)
Gravity Smart(SGH-T589)
Moment(sph-m900)
Replenish(SPH-M580)
Repp(SCH-R680)
SCH-I110(SCH-I110)
SCH-I559(SCH-I559)
SCH-I659(SCH-I659)
SCH-I699(SCH-I699)
SCH-M828C(SCH-M828C)
SCH-i509(SCH-i509)
SCH-i559(SCH-i559)
SCH-i705(espressovzw)
SGH-S730G(amazingtrf)
SGH-T499(SGH-T499)
SGH-T499V(SGH-T499V)
SGH-T499Y(SGH-T499Y)
SGH-T589R(SGH-T589R)
SPH-M580BST(SPH-M580BST)
Transfix(SCH-R730)
Click to expand...
Click to collapse
And here is my Manifest:
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="..."
package="br.com.dahora.guiducard"
android:versionCode="28"
android:versionName="1.0.2" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Guidu.ActionBar" >
<activity
android:name=".SplashScreenActivity"
android:noHistory="true"
android:label="@string/title_activity_main"
android:theme="@android:style/Theme.NoTitleBar"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".InitialActivity"
android:launchMode="singleTop"
android:theme="@android:style/Theme.NoTitleBar"
android:screenOrientation="portrait"/>
<activity
android:name=".LoginActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ForgotPasswordActivity"
android:screenOrientation="portrait" />
<activity
android:name=".RegisterActivity"
android:screenOrientation="portrait" />
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait" />
<activity
android:name=".MyAccountActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ChangePassActivity"
android:screenOrientation="portrait" />
<activity
android:name=".TutorialActivity"
android:screenOrientation="portrait" />
<activity
android:name=".AboutActivity"
android:screenOrientation="portrait" />
<activity
android:name=".UserTermsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".TalkActivity"
android:screenOrientation="portrait" />
</application>
</manifest>
auto focus camera is not present in those devices
nabeeleinstein said:
auto focus camera is not present in those devices
Click to expand...
Click to collapse
Thanks!
I've changed it, and was able to increase a lot number of devices.
But there are some ones like the Nexus 7 that aren't compatible yet.
Does it have something related to the GPS?

Android 4.4+ removable SDCard RW access

I took a look at the permissions.xml file on my Samsung Galaxy Avant (SM-G386T/KK4.4.2) and found these entries:
<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"/>
</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>
Are these standard permissions that can be granted on install, or are they something Samsung added to this Touchwiz build? Seems like they would be a simple enough solution to Google's stupid move restricting access to the removable storage in 4.4+?
-=[crd]=-
Sent on my Samsung Galaxy Avant (SM-G386T) from T-Mobile via Tapatalk
+1
Sent from my SM-G386T1 using Tapatalk

[Q] google camera - external storage - issue

hey everyone.
So, I am desperately trying to force/trick google camera to write to the sd card rather than to the internal card.
my sdcard is formatted as ext4 and in its root i created the directory: DCIM_sd.
now, using ssh (as root ofc) i navigated to: /data/media/0, deleted DCIM and re-created it. gave right ownership and permissions.
At this point I executed this command:
Code:
busybox mount --bind /storage/sdcard1/DCIM_sd/ DCIM
and followed by df -h just to confirm that it was successful:
Code:
localhost 0 # df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 415.8M 108.0K 415.7M 0% /dev
none 415.8M 12.0K 415.8M 0% /sys/fs/cgroup
tmpfs 415.8M 0 415.8M 0% /mnt/asec
tmpfs 415.8M 0 415.8M 0% /mnt/obb
/dev/block/mmcblk0p3 19.7M 11.3M 8.3M 58% /efs
/dev/block/mmcblk0p9 1.5G 524.3M 987.6M 35% /system
/dev/block/mmcblk0p8 1007.9M 18.8M 989.1M 2% /cache
/dev/block/mmcblk0p10
551.2M 9.2M 542.0M 2% /preload
/dev/block/mmcblk0p12
11.3G 4.1G 7.3G 36% /data
/dev/fuse 11.3G 4.1G 7.3G 36% /mnt/shell/emulated
/dev/block/vold/179:49
29.0G 15.2G 12.4G 55% /mnt/media_rw/sdcard1
/dev/block/vold/179:49
29.0G 15.2G 12.4G 55% /mnt/secure/asec
/dev/fuse 29.0G 15.2G 12.4G 55% /storage/sdcard1
[B]/dev/fuse 29.0G 15.2G 12.4G 55% /data/media/0/DCIM[/B]
At this point I launched google camera (fresh).
Unfortunately I have this toast message popping up:
"Insert an SD card before using the camera."
Click to expand...
Click to collapse
My impression is that the app can't access the directory. For this reason I edited this file: /etc/permissions/platform.xml to look as the following:
Code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
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.INTERNET" >
<group gid="inet" />
</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" />
<group gid="sdcard_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>
<!-- Hotword training apps sometimes need a GID to talk with low-level
hardware; give them audio for now until full HAL support is added. -->
<permission name="android.permission.MANAGE_VOICE_KEYPHRASES">
<group gid="audio" />
</permission>
<permission name="android.permission.ACCESS_FM_RADIO" >
<group gid="media" />
</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"/>
<!-- These are the standard packages that are white-listed to always have internet
access while in power save mode, even if they aren't in the foreground. -->
<allow-in-power-save package="com.android.providers.downloads" />
</permissions>
Rebooted (and remounted...), but still same issue.
What am I doing wrong? What can I do to solve this issue?
my phone: Samsung i9300
running CM 12.1-20150426-UNOFFICIAL-i9300
android version: 5.1.1
Thanks,
Niko

Categories

Resources