1、frameworks/base/data/etc/platform.xml
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
- <group gid="media_rw" />
+ <group gid="media_rw" />
+ <group gid="sdcard_rw" />
</permission>
2、frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
+import static android.Manifest.permission.WRITE_MEDIA_STORAGE;
import static android.content.pm.PackageManager.CERT_INPUT_RAW_X509;
import static android.content.pm.PackageManager.CERT_INPUT_SHA256;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
@@ -21329,6 +21332,13 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
if (Process.isIsolated(uid)) {
return Zygote.MOUNT_EXTERNAL_NONE;
}
+
+ if (checkUidPermission(WRITE_MEDIA_STORAGE, uid) == PERMISSION_GRANTED) {
+ return Zygote.MOUNT_EXTERNAL_DEFAULT;
+ }
+
if (checkUidPermission(READ_EXTERNAL_STORAGE, uid) == PERMISSION_DENIED) {
return Zygote.MOUNT_EXTERNAL_DEFAULT;
}