ACCESSWRITE_MEDIA_STORAGE/WRITE_EXTERNAL_STORAGE说明

立即片种植配备对SDCARD的权杖控制是不等同的。

联分区:按照谷歌4.4底求,把sdcard,U盘等外部存储器的权位设置也uid=
AID_SYSTEM gid=AID_MEDIA_RW,mask是0002.。
这样就是要求要针对性sdcard等来描绘权限必须使备这个permission。

<uses-permission
android:name=”android.permission.WRITE_MEDIA_STORAGE” />

这permission对应之group信息是在frameworks/base/data/etc/platform.xml
中定义之

<permission name=”android.permission.WRITE_MEDIA_STORAGE” >

<group gid=”media_rw” />

</permission>

是permission是4.4遭遇新增的,并且是无推荐下的。

切莫合并分区:为了方便使用并且相当4.2事先的APK,我们将sdcard,u盘的权力设置为uid=
AID_SYSTEM gid=AID_SDCARD_RW,mask是0002.。
这样尽管要求而本着sdcard等有描绘权限必须要享有

本条permission对应的group信息是于frameworks/base/data/etc/platform.xml
中定义之

<permission name=”android.permission.WRITE_EXTERNAL_STORAGE”
>

此permission是4.2事先便从头使用的,大家还比较熟悉。

改章程:

<permission name=”android.permission.WRITE_EXTERNAL_STORAGE” >

<group gid=”sdcard_r” />

<group gid=”sdcard_rw” />

</permission>

旁方案上以了如下方法绕了这个题材,但是我是未建议以的

虽在frameworks/base/data/etc/platform.xml 中作如下修改

即把WRITE_MEDIA_STORAGE这个permission对应之group也赋值到WRITE_EXTERNAL_STORAGE这个权力中,也不怕是说WRITE_MEDIA_STORAGE这个权力的支配作用失效了。

小心:这个permission要求用platform签名即当Android.mk中设长如下:

+LOCAL_CERTIFICATE := platform

诸如此类修改后GMS包着之APK,以及第三着的APK就可以去sdcard中之文本了。但是Android系统受对openOutputStream还是来限定的,不容许用openOutputStream
保存文件及非主存储器上。

现象是:GMS包被之Photo这个APK不可知保存编辑了的sdcard中之图。

修改章程如下:

— a/src/com/android/providers/media/MediaProvider.java

+++ b/src/com/android/providers/media/MediaProvider.java

@@ -4787,10 +4787,10 @@ public class MediaProvider extends
ContentProvider {

c.enforceCallingOrSelfPermission(

ACCESS_CACHE_FILESYSTEM, “Cache path: ” + path);

}

– } else if (isWrite) {

+ }/* else if (isWrite) {

// don’t write to non-cache, non-sdcard files.

throw new FileNotFoundException(“Can’t access ” + file);

– } else if (isSecondaryExternalPath(path)) {

+ } */else if (isSecondaryExternalPath(path)) {

// read access is OK with the appropriate permission

if (!readGranted) {

c.enforceCallingOrSelfPermission(

相关文章