diff --git a/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionPolicy.kt b/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionPolicy.kt index aa86cd6323b90..d39c8a0a11020 100644 --- a/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionPolicy.kt +++ b/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionPolicy.kt @@ -390,14 +390,7 @@ class AppIdPermissionPolicy : SchemePolicy() { packageState: PackageState, changedPermissionNames: MutableIndexedSet ) { - val androidPackage = packageState.androidPackage!! - // This may not be the same package as the old permission because the old permission owner - // can be different, hence using this somewhat strange name to prevent misuse. - val oldNewPackage = oldState.externalState.packageStates[packageState.packageName] - ?.androidPackage - val isPackageSigningChanged = oldNewPackage != null && - androidPackage.signingDetails != oldNewPackage.signingDetails - androidPackage.permissions.forEachIndexed { _, parsedPermission -> + packageState.androidPackage!!.permissions.forEachIndexed { _, parsedPermission -> val newPermissionInfo = PackageInfoUtils.generatePermissionInfo( parsedPermission, PackageManager.GET_META_DATA.toLong() )!! @@ -527,7 +520,7 @@ class AppIdPermissionPolicy : SchemePolicy() { newPackageName != oldPermission.packageName || newPermission.protectionLevel != oldPermission.protectionLevel || ( oldPermission.isReconciled && ( - (newPermission.isSignature && isPackageSigningChanged) || ( + ( newPermission.isKnownSigner && newPermission.knownCerts != oldPermission.knownCerts ) || (