diff options
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()); |