summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hai Zhang <zhanghai@google.com> 2020-11-06 03:54:47 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-11-06 03:54:47 +0000
commita2cf5c1df156290983576c3b68eef281ace8ecac (patch)
treefaee6782d7d501d092c11b656c59db5a2aaeeb53
parentda1ea4bc8032e1e45e97021067301e367ef275f8 (diff)
parent719c9c520603e1d84d31864810d2237ae4d429ca (diff)
DO NOT MERGE Revoke install permissions when the permission defining app is uninstalled. am: 719c9c5206
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12787259 Change-Id: Ibd9825e98ae6f7ce5aa21e999cd9a446e60fc614
-rw-r--r--services/core/java/com/android/server/pm/permission/PermissionManagerService.java14
1 files changed, 14 insertions, 0 deletions
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 9cbe6b3332e6..594cd92396e9 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -2775,6 +2775,20 @@ public class PermissionManagerService {
}
});
}
+ } else {
+ mPackageManagerInt.forEachPackage(p -> {
+ PackageSetting ps = (PackageSetting) p.mExtras;
+ if (ps == null) {
+ return;
+ }
+ PermissionsState permissionsState = ps.getPermissionsState();
+ if (permissionsState.getInstallPermissionState(bp.getName())
+ != null) {
+ permissionsState.revokeInstallPermission(bp);
+ permissionsState.updatePermissionFlags(bp, UserHandle.USER_ALL,
+ MASK_PERMISSION_FLAGS_ALL, 0);
+ }
+ });
}
flags |= UPDATE_PERMISSIONS_ALL;
it.remove();