summaryrefslogtreecommitdiffstats
path: root/core/java/com/android/internal/os/InstallerConnection.java
diff options
context:
space:
mode:
authorCalin Juravle <calin@google.com>2014-08-21 19:00:15 +0100
committerCalin Juravle <calin@google.com>2014-08-22 15:33:05 +0100
commitfeb193085adbdc379ee70dbb7dc6ae4c9f2971dd (patch)
tree3926eede53b7f4f3326589322c25881364fc0e65 /core/java/com/android/internal/os/InstallerConnection.java
parent394fd61115258293b4f91e8e0f08d4edfa015a43 (diff)
downloadframeworks_base-feb193085adbdc379ee70dbb7dc6ae4c9f2971dd.zip
frameworks_base-feb193085adbdc379ee70dbb7dc6ae4c9f2971dd.tar.gz
frameworks_base-feb193085adbdc379ee70dbb7dc6ae4c9f2971dd.tar.bz2
Pass vmSafeMode (manifest attribute) to installd.
The flag is used to enforce --interpret-only flag when running dex2oat. Bug: 12457423 Change-Id: Ifdafcc1afa32996577fa44c5682eeb58c79772ac
Diffstat (limited to 'core/java/com/android/internal/os/InstallerConnection.java')
-rw-r--r--core/java/com/android/internal/os/InstallerConnection.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/core/java/com/android/internal/os/InstallerConnection.java b/core/java/com/android/internal/os/InstallerConnection.java
index e3f229f..2f30ebc 100644
--- a/core/java/com/android/internal/os/InstallerConnection.java
+++ b/core/java/com/android/internal/os/InstallerConnection.java
@@ -91,26 +91,40 @@ public class InstallerConnection {
}
public int dexopt(String apkPath, int uid, boolean isPublic, String instructionSet) {
+ return dexopt(apkPath, uid, isPublic, "*", instructionSet, false);
+ }
+
+ public int dexopt(String apkPath, int uid, boolean isPublic, String pkgName,
+ String instructionSet, boolean vmSafeMode) {
StringBuilder builder = new StringBuilder("dexopt");
builder.append(' ');
builder.append(apkPath);
builder.append(' ');
builder.append(uid);
builder.append(isPublic ? " 1" : " 0");
- builder.append(" *"); // No pkgName arg present
+ builder.append(' ');
+ builder.append(pkgName);
builder.append(' ');
builder.append(instructionSet);
+ builder.append(' ');
+ builder.append(vmSafeMode ? " 1" : " 0");
return execute(builder.toString());
}
public int patchoat(String apkPath, int uid, boolean isPublic, String instructionSet) {
+ return patchoat(apkPath, uid, isPublic, "*", instructionSet);
+ }
+
+ public int patchoat(String apkPath, int uid, boolean isPublic, String pkgName,
+ String instructionSet) {
StringBuilder builder = new StringBuilder("patchoat");
builder.append(' ');
builder.append(apkPath);
builder.append(' ');
builder.append(uid);
builder.append(isPublic ? " 1" : " 0");
- builder.append(" *"); // No pkgName arg present
+ builder.append(' ');
+ builder.append(pkgName);
builder.append(' ');
builder.append(instructionSet);
return execute(builder.toString());