diff options
author | Calin Juravle <calin@google.com> | 2014-08-21 19:00:15 +0100 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2014-08-22 15:33:05 +0100 |
commit | feb193085adbdc379ee70dbb7dc6ae4c9f2971dd (patch) | |
tree | 3926eede53b7f4f3326589322c25881364fc0e65 /core/java/com/android/internal/os/InstallerConnection.java | |
parent | 394fd61115258293b4f91e8e0f08d4edfa015a43 (diff) | |
download | frameworks_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.java | 18 |
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()); |