diff options
author | Narayan Kamath <narayan@google.com> | 2015-01-21 14:09:33 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2015-01-21 14:09:33 +0000 |
commit | ebc57c7471f1ebe56cae091707887be582b0db06 (patch) | |
tree | a707394684b7da73218ca62bc74cb93cddf8cce6 /core/java/com | |
parent | 748e813ed7f9042eba6e64fced78e28b7c16327a (diff) | |
parent | 4af0265a35bcd8a0a7513dd85fe371597e2038c5 (diff) | |
download | frameworks_base-ebc57c7471f1ebe56cae091707887be582b0db06.zip frameworks_base-ebc57c7471f1ebe56cae091707887be582b0db06.tar.gz frameworks_base-ebc57c7471f1ebe56cae091707887be582b0db06.tar.bz2 |
Merge "Choose the right executable for wrapped applications." automerge: aa87e89
automerge: 4af0265
* commit '4af0265a35bcd8a0a7513dd85fe371597e2038c5':
Choose the right executable for wrapped applications.
Diffstat (limited to 'core/java/com')
-rw-r--r-- | core/java/com/android/internal/os/WrapperInit.java | 16 | ||||
-rw-r--r-- | core/java/com/android/internal/os/ZygoteConnection.java | 2 | ||||
-rw-r--r-- | core/java/com/android/internal/os/ZygoteInit.java | 2 |
3 files changed, 17 insertions, 3 deletions
diff --git a/core/java/com/android/internal/os/WrapperInit.java b/core/java/com/android/internal/os/WrapperInit.java index af821ba..34ae58a 100644 --- a/core/java/com/android/internal/os/WrapperInit.java +++ b/core/java/com/android/internal/os/WrapperInit.java @@ -19,6 +19,7 @@ package com.android.internal.os; import android.os.Process; import android.util.Slog; +import dalvik.system.VMRuntime; import java.io.DataOutputStream; import java.io.FileDescriptor; import java.io.FileOutputStream; @@ -96,9 +97,20 @@ public class WrapperInit { * @param args Arguments for {@link RuntimeInit#main}. */ public static void execApplication(String invokeWith, String niceName, - int targetSdkVersion, FileDescriptor pipeFd, String[] args) { + int targetSdkVersion, String instructionSet, FileDescriptor pipeFd, + String[] args) { StringBuilder command = new StringBuilder(invokeWith); - command.append(" /system/bin/app_process /system/bin --application"); + + final String appProcess; + if (VMRuntime.is64BitInstructionSet(instructionSet)) { + appProcess = "/system/bin/app_process64"; + } else { + appProcess = "/system/bin/app_process32"; + } + command.append(' '); + command.append(appProcess); + + command.append(" /system/bin --application"); if (niceName != null) { command.append(" '--nice-name=").append(niceName).append("'"); } diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java index 7fac05b..aba4bd0 100644 --- a/core/java/com/android/internal/os/ZygoteConnection.java +++ b/core/java/com/android/internal/os/ZygoteConnection.java @@ -31,6 +31,7 @@ import android.system.ErrnoException; import android.system.Os; import android.util.Log; import dalvik.system.PathClassLoader; +import dalvik.system.VMRuntime; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -858,6 +859,7 @@ class ZygoteConnection { if (parsedArgs.invokeWith != null) { WrapperInit.execApplication(parsedArgs.invokeWith, parsedArgs.niceName, parsedArgs.targetSdkVersion, + VMRuntime.getCurrentInstructionSet(), pipeFd, parsedArgs.remainingArgs); } else { RuntimeInit.zygoteInit(parsedArgs.targetSdkVersion, diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java index b8082e1..8107985 100644 --- a/core/java/com/android/internal/os/ZygoteInit.java +++ b/core/java/com/android/internal/os/ZygoteInit.java @@ -437,7 +437,7 @@ public class ZygoteInit { WrapperInit.execApplication(parsedArgs.invokeWith, parsedArgs.niceName, parsedArgs.targetSdkVersion, - null, args); + VMRuntime.getCurrentInstructionSet(), null, args); } else { ClassLoader cl = null; if (systemServerClasspath != null) { |