Merge "Use the right flag types when creating InstallArgs" into jb-dev
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index 7c14d49..d41cd5a 100644
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -3118,8 +3118,9 @@
+ "reverting from " + ps.codePathString
+ ": new version " + pkg.mVersionCode
+ " better than installed " + ps.versionCode);
- InstallArgs args = createInstallArgs(ps.pkgFlags, ps.codePathString,
- ps.resourcePathString, ps.nativeLibraryPathString);
+
+ InstallArgs args = createInstallArgs(packageFlagsToInstallFlags(ps),
+ ps.codePathString, ps.resourcePathString, ps.nativeLibraryPathString);
synchronized (mInstaller) {
args.cleanUpResourcesLI();
}
@@ -3174,8 +3175,8 @@
Slog.w(TAG, "Package " + ps.name + " at " + scanFile + "reverting from "
+ ps.codePathString + ": new version " + pkg.mVersionCode
+ " better than installed " + ps.versionCode);
- InstallArgs args = createInstallArgs(ps.pkgFlags, ps.codePathString,
- ps.resourcePathString, ps.nativeLibraryPathString);
+ InstallArgs args = createInstallArgs(packageFlagsToInstallFlags(ps),
+ ps.codePathString, ps.resourcePathString, ps.nativeLibraryPathString);
synchronized (mInstaller) {
args.cleanUpResourcesLI();
}
@@ -7252,6 +7253,11 @@
return (pkg.applicationInfo.flags & ApplicationInfo.FLAG_FORWARD_LOCK) != 0;
}
+
+ private boolean isForwardLocked(PackageSetting ps) {
+ return (ps.pkgFlags & ApplicationInfo.FLAG_FORWARD_LOCK) != 0;
+ }
+
private static boolean isExternal(PackageParser.Package pkg) {
return (pkg.applicationInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0;
}
@@ -7276,6 +7282,17 @@
return (pkg.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
}
+ private int packageFlagsToInstallFlags(PackageSetting ps) {
+ int installFlags = 0;
+ if (isExternal(ps)) {
+ installFlags |= PackageManager.INSTALL_EXTERNAL;
+ }
+ if (isForwardLocked(ps)) {
+ installFlags |= PackageManager.INSTALL_FORWARD_LOCK;
+ }
+ return installFlags;
+ }
+
private void deleteTempPackageFiles() {
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {