diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/permission/PermissionManagerService.java | 14 |
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 9963cf7e212d..bc7554c54eb0 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(); } |