From 68c0346b22d11a0e2c5e89f1a9206bc06ad3d0cf Mon Sep 17 00:00:00 2001 From: Naofumi Harada Date: Tue, 21 Jan 2014 10:29:36 +0900 Subject: DO NOT MERGE - FLAG_PRIVILEGED disappears if privileged app is updated and rebooted Since Kitkat, an app pre-loaded under /system/priv-app/ has FLAG_PRIVILEGED. However, if the app updated and the device rebooted, privileged flag is unset from pkgFlags. This patch fix issue to assign privileged flag when scanning the updated packages. Bug: 12640283 Cherrypick from master. Change-Id: I833d94cd911693c9291e8204f63bd8de945dbba6 --- services/java/com/android/server/pm/PackageManagerService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 47476c0cb54b..02a2c8f15ed5 100755 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -3657,6 +3657,12 @@ public class PackageManagerService extends IPackageManager.Stub { // An updated system app will not have the PARSE_IS_SYSTEM flag set // initially parseFlags |= PackageParser.PARSE_IS_SYSTEM; + + // An updated privileged app will not have the PARSE_IS_PRIVILEGED + // flag set initially + if ((updatedPkg.pkgFlags & ApplicationInfo.FLAG_PRIVILEGED) != 0) { + parseFlags |= PackageParser.PARSE_IS_PRIVILEGED; + } } // Verify certificates against what was last scanned if (!collectCertificatesLI(pp, ps, pkg, scanFile, parseFlags)) { -- cgit v1.2.3-59-g8ed1b