summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorSudheer Shanka <sudheersai@google.com>2018-08-17 16:10:29 -0700
committerSudheer Shanka <sudheersai@google.com>2018-08-21 19:25:08 -0700
commit98cb3f09fa539549999697dec340aec1c5912f4e (patch)
tree6d89e9a7f08daf2df51a91ed4e38287575bd1fd9 /core/java
parent07ae651adf46b363c302dcf7e90f29998761a09a (diff)
Allow some apps to get full access to external storage.
Apps with WRITE_MEDIA_STORAGE permission will get full access to external storage. Bug: 111890351 Test: manual Change-Id: Icbfe1f68c0bfca77bdc557e9903ded45994f5945
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/os/ZygoteProcess.java3
-rw-r--r--core/java/com/android/internal/os/Zygote.java2
-rw-r--r--core/java/com/android/internal/os/ZygoteConnection.java4
3 files changed, 8 insertions, 1 deletions
diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java
index 067e8493717b..732d3778ec6d 100644
--- a/core/java/android/os/ZygoteProcess.java
+++ b/core/java/android/os/ZygoteProcess.java
@@ -384,7 +384,10 @@ public class ZygoteProcess {
argsForZygote.add("--mount-external-read");
} else if (mountExternal == Zygote.MOUNT_EXTERNAL_WRITE) {
argsForZygote.add("--mount-external-write");
+ } else if (mountExternal == Zygote.MOUNT_EXTERNAL_FULL) {
+ argsForZygote.add("--mount-external-full");
}
+
argsForZygote.add("--target-sdk-version=" + targetSdkVersion);
// --setgroups is a comma-separated list
diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java
index 413f89da571e..927322e97e28 100644
--- a/core/java/com/android/internal/os/Zygote.java
+++ b/core/java/com/android/internal/os/Zygote.java
@@ -81,6 +81,8 @@ public final class Zygote {
public static final int MOUNT_EXTERNAL_READ = IVold.REMOUNT_MODE_READ;
/** Read-write external storage should be mounted. */
public static final int MOUNT_EXTERNAL_WRITE = IVold.REMOUNT_MODE_WRITE;
+ /** Read-write external storage should be mounted instead of package sandbox */
+ public static final int MOUNT_EXTERNAL_FULL = IVold.REMOUNT_MODE_FULL;
private static final ZygoteHooks VM_HOOKS = new ZygoteHooks();
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java
index b9c717f03749..b60b43a8d45d 100644
--- a/core/java/com/android/internal/os/ZygoteConnection.java
+++ b/core/java/com/android/internal/os/ZygoteConnection.java
@@ -644,7 +644,9 @@ class ZygoteConnection {
mountExternal = Zygote.MOUNT_EXTERNAL_READ;
} else if (arg.equals("--mount-external-write")) {
mountExternal = Zygote.MOUNT_EXTERNAL_WRITE;
- } else if (arg.equals("--query-abi-list")) {
+ } else if (arg.equals("--mount-external-full")) {
+ mountExternal = Zygote.MOUNT_EXTERNAL_FULL;
+ } else if (arg.equals("--query-abi-list")) {
abiListQuery = true;
} else if (arg.equals("--get-pid")) {
pidQuery = true;