am 62d8874e: Merge "Fix retaining of granted permissions when updating of system app." into gingerbread

Merge commit '62d8874eb74045b37140857ea3b31f198f0adffa' into gingerbread-plus-aosp

* commit '62d8874eb74045b37140857ea3b31f198f0adffa':
  Fix retaining of granted permissions when updating of system app.
This commit is contained in:
Dianne Hackborn
2010-10-08 15:24:30 -07:00
committed by Android Git Automerger

View File

@@ -3931,17 +3931,22 @@ class PackageManagerService extends IPackageManager.Stub {
allowed = false;
} else if (bp.protectionLevel == PermissionInfo.PROTECTION_SIGNATURE
|| bp.protectionLevel == PermissionInfo.PROTECTION_SIGNATURE_OR_SYSTEM) {
allowed = (checkSignaturesLP(bp.packageSetting.signatures.mSignatures, pkg.mSignatures)
allowed = (checkSignaturesLP(
bp.packageSetting.signatures.mSignatures, pkg.mSignatures)
== PackageManager.SIGNATURE_MATCH)
|| (checkSignaturesLP(mPlatformPackage.mSignatures, pkg.mSignatures)
== PackageManager.SIGNATURE_MATCH);
if (bp.protectionLevel == PermissionInfo.PROTECTION_SIGNATURE_OR_SYSTEM) {
if (!allowed && bp.protectionLevel
== PermissionInfo.PROTECTION_SIGNATURE_OR_SYSTEM) {
if (isSystemApp(pkg)) {
// For updated system applications, the signatureOrSystem permission
// is granted only if it had been defined by the original application.
if (isUpdatedSystemApp(pkg)) {
PackageSetting sysPs = mSettings.getDisabledSystemPkg(pkg.packageName);
if(sysPs.grantedPermissions.contains(perm)) {
PackageSetting sysPs = mSettings.getDisabledSystemPkg(
pkg.packageName);
final GrantedPermissions origGp = sysPs.sharedUser != null
? sysPs.sharedUser : sysPs;
if (origGp.grantedPermissions.contains(perm)) {
allowed = true;
} else {
allowed = false;