From 2bf768e2cae9bf0b80b163d786602fb71354a025 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Mon, 15 Jun 2020 18:18:33 -0700 Subject: [PATCH] Revoke install permissions when the permission defining app is uninstalled. Bug: 155648771 Test: atest RemovePermissionTest Change-Id: I4a5ecd9bede6f11d5023b3e8345b61d5b04e566f Merged-In: I4a5ecd9bede6f11d5023b3e8345b61d5b04e566f --- .../pm/permission/PermissionManagerService.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 9963cf7e212d7..bc7554c54eb02 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -4224,6 +4224,20 @@ public class PermissionManagerService extends IPermissionManager.Stub { revokePermissionFromPackageForUser(p.getPackageName(), bp.getName(), true, userId, callback)); } + } else { + mPackageManagerInt.forEachPackage(p -> { + PackageSetting ps = mPackageManagerInt.getPackageSetting( + p.getPackageName()); + 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); + } + }); } it.remove(); }