From 719b3b807509d998eeb2aabd582d30b99947673d Mon Sep 17 00:00:00 2001 From: Naofumi Harada Date: Tue, 21 Jan 2014 10:29:36 +0900 Subject: 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 Change-Id: Ic24b5882f65dabdfae9cc39da3d68661bed4fc31 --- 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 5761f6c07adb..7e244b96b020 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