summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/pm/Installer.java
diff options
context:
space:
mode:
authorAlex Light <allight@google.com>2014-07-18 16:34:38 -0700
committerAlex Light <allight@google.com>2014-08-05 10:22:10 -0700
commit1995d12d26bbaced73fd47f91b767731d290972c (patch)
tree77b651e58b9f7fc8cc6d64be3b1e53de5955e95a /services/java/com/android/server/pm/Installer.java
parent20bac14e521dd551addd8541380f1d9b6c910bd2 (diff)
Make system use patchoat to relocate during runtime.
Make PackageManagerService aware of patchoat and make it use it when appropriate. Bug: 15358152 Change-Id: Ibe92d8b55a24bbf718b0416a21b76e5df7a2de26
Diffstat (limited to 'services/java/com/android/server/pm/Installer.java')
-rw-r--r--services/java/com/android/server/pm/Installer.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/services/java/com/android/server/pm/Installer.java b/services/java/com/android/server/pm/Installer.java
index 66615c9895c6..0f384b1c372e 100644
--- a/services/java/com/android/server/pm/Installer.java
+++ b/services/java/com/android/server/pm/Installer.java
@@ -202,6 +202,34 @@ public final class Installer {
return execute(builder.toString());
}
+ 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(' ');
+ builder.append(pkgName);
+ builder.append(' ');
+ builder.append(instructionSet);
+ return execute(builder.toString());
+ }
+
+ public int patchoat(String apkPath, int uid, boolean isPublic, 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(instructionSet);
+ return execute(builder.toString());
+ }
+
public int dexopt(String apkPath, int uid, boolean isPublic, String instructionSet) {
StringBuilder builder = new StringBuilder("dexopt");
builder.append(' ');