Pass the targetSdkVersion through to the zygote-forked dalvik.
This will let dalvik implement backwards-compatibile behaviors based on
an app's targetSdkVersion.
Bug: 4772166
Change-Id: I935c5ea9144e8b4e6e21089547287486e2234b7f
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 673b187..dbefb1f 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -266,7 +266,8 @@
* @param uid The user-id under which the process will run.
* @param gid The group-id under which the process will run.
* @param gids Additional group-ids associated with the process.
- * @param enableDebugger True if debugging should be enabled for this process.
+ * @param debugFlags Additional flags.
+ * @param targetSdkVersion The target SDK version for the app.
* @param zygoteArgs Additional arguments to supply to the zygote process.
*
* @return int If > 0 the pid of the new process; if 0 the process is
@@ -278,13 +279,13 @@
public static final int start(final String processClass,
final String niceName,
int uid, int gid, int[] gids,
- int debugFlags,
+ int debugFlags, int targetSdkVersion,
String[] zygoteArgs)
{
if (supportsProcesses()) {
try {
return startViaZygote(processClass, niceName, uid, gid, gids,
- debugFlags, zygoteArgs);
+ debugFlags, targetSdkVersion, zygoteArgs);
} catch (ZygoteStartFailedEx ex) {
Log.e(LOG_TAG,
"Starting VM process through Zygote failed");
@@ -316,9 +317,10 @@
* {@hide}
*/
public static final int start(String processClass, int uid, int gid,
- int[] gids, int debugFlags, String[] zygoteArgs) {
+ int[] gids, int debugFlags, int targetSdkVersion,
+ String[] zygoteArgs) {
return start(processClass, "", uid, gid, gids,
- debugFlags, zygoteArgs);
+ debugFlags, targetSdkVersion, zygoteArgs);
}
private static void invokeStaticMain(String className) {
@@ -500,7 +502,8 @@
* @param gid a POSIX gid that the new process shuold setgid() to
* @param gids null-ok; a list of supplementary group IDs that the
* new process should setgroup() to.
- * @param enableDebugger True if debugging should be enabled for this process.
+ * @param debugFlags Additional flags.
+ * @param targetSdkVersion The target SDK version for the app.
* @param extraArgs Additional arguments to supply to the zygote process.
* @return PID
* @throws ZygoteStartFailedEx if process start failed for any reason
@@ -509,7 +512,7 @@
final String niceName,
final int uid, final int gid,
final int[] gids,
- int debugFlags,
+ int debugFlags, int targetSdkVersion,
String[] extraArgs)
throws ZygoteStartFailedEx {
int pid;
@@ -537,6 +540,7 @@
if ((debugFlags & Zygote.DEBUG_ENABLE_ASSERT) != 0) {
argsForZygote.add("--enable-assert");
}
+ argsForZygote.add("--target-sdk-version=" + targetSdkVersion);
//TODO optionally enable debuger
//argsForZygote.add("--enable-debugger");