diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/os/Process.java | 6 | ||||
| -rw-r--r-- | core/java/android/os/ZygoteProcess.java | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index 7ce7c9237815..7caf0b103534 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -492,10 +492,11 @@ public class Process { String instructionSet, String appDataDir, String invokeWith, + String packageName, String[] zygoteArgs) { return zygoteProcess.start(processClass, niceName, uid, gid, gids, runtimeFlags, mountExternal, targetSdkVersion, seInfo, - abi, instructionSet, appDataDir, invokeWith, zygoteArgs); + abi, instructionSet, appDataDir, invokeWith, packageName, zygoteArgs); } /** @hide */ @@ -509,10 +510,11 @@ public class Process { String instructionSet, String appDataDir, String invokeWith, + String packageName, String[] zygoteArgs) { return WebViewZygote.getProcess().start(processClass, niceName, uid, gid, gids, runtimeFlags, mountExternal, targetSdkVersion, seInfo, - abi, instructionSet, appDataDir, invokeWith, zygoteArgs); + abi, instructionSet, appDataDir, invokeWith, packageName, zygoteArgs); } /** diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java index 021e72f7a082..067e8493717b 100644 --- a/core/java/android/os/ZygoteProcess.java +++ b/core/java/android/os/ZygoteProcess.java @@ -227,12 +227,13 @@ public class ZygoteProcess { String instructionSet, String appDataDir, String invokeWith, + String packageName, String[] zygoteArgs) { try { return startViaZygote(processClass, niceName, uid, gid, gids, runtimeFlags, mountExternal, targetSdkVersion, seInfo, abi, instructionSet, appDataDir, invokeWith, false /* startChildZygote */, - zygoteArgs); + packageName, zygoteArgs); } catch (ZygoteStartFailedEx ex) { Log.e(LOG_TAG, "Starting VM process through Zygote failed"); @@ -366,6 +367,7 @@ public class ZygoteProcess { String appDataDir, String invokeWith, boolean startChildZygote, + String packageName, String[] extraArgs) throws ZygoteStartFailedEx { ArrayList<String> argsForZygote = new ArrayList<String>(); @@ -426,6 +428,10 @@ public class ZygoteProcess { argsForZygote.add("--start-child-zygote"); } + if (packageName != null) { + argsForZygote.add("--package-name=" + packageName); + } + argsForZygote.add(processClass); if (extraArgs != null) { @@ -733,7 +739,7 @@ public class ZygoteProcess { result = startViaZygote(processClass, niceName, uid, gid, gids, runtimeFlags, 0 /* mountExternal */, 0 /* targetSdkVersion */, seInfo, abi, instructionSet, null /* appDataDir */, null /* invokeWith */, - true /* startChildZygote */, extraArgs); + true /* startChildZygote */, null /* packageName */, extraArgs); } catch (ZygoteStartFailedEx ex) { throw new RuntimeException("Starting child-zygote through Zygote failed", ex); } |
