diff options
| author | 2018-12-10 22:58:34 +0000 | |
|---|---|---|
| committer | 2018-12-10 22:58:34 +0000 | |
| commit | 52fe5dd97fb749aad4f570914a22aebf8d0de1c1 (patch) | |
| tree | f49cec8208ded2beedd0302482b20eda69bea94c | |
| parent | be5eb1769a354bd2df0083fa6d4cbd733fc743e8 (diff) | |
| parent | c6bdbec499d7afd4806e6f472ab049d3b6967764 (diff) | |
Merge "Do not review removed permissions"
3 files changed, 13 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 4a95f615e664..888675c117e1 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -18310,6 +18310,10 @@ public class PackageManagerService extends IPackageManager.Stub continue; } + if (bp.isRemoved()) { + continue; + } + // If shared user we just reset the state to which only this app contributed. if (ps.sharedUser != null) { boolean used = false; diff --git a/services/core/java/com/android/server/pm/permission/BasePermission.java b/services/core/java/com/android/server/pm/permission/BasePermission.java index 11701af1c45d..996f42b64664 100644 --- a/services/core/java/com/android/server/pm/permission/BasePermission.java +++ b/services/core/java/com/android/server/pm/permission/BasePermission.java @@ -189,6 +189,11 @@ public final class BasePermission { return (protectionLevel & PermissionInfo.PROTECTION_MASK_BASE) == PermissionInfo.PROTECTION_DANGEROUS; } + + public boolean isRemoved() { + return perm.info != null && (perm.info.flags & PermissionInfo.FLAG_REMOVED) != 0; + } + public boolean isSignature() { return (protectionLevel & PermissionInfo.PROTECTION_MASK_BASE) == PermissionInfo.PROTECTION_SIGNATURE; diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 4ef79702cd8b..bc3c18d9d49c 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -799,6 +799,10 @@ public class PermissionManagerService { continue; } + if (bp.isRemoved()) { + continue; + } + // Limit ephemeral apps to ephemeral allowed permissions. if (pkg.applicationInfo.isInstantApp() && !bp.isInstant()) { if (DEBUG_PERMISSIONS) { |