diff options
author | Nate Myren <ntmyren@google.com> | 2023-01-13 10:50:16 -0800 |
---|---|---|
committer | Nate Myren <ntmyren@google.com> | 2023-01-31 10:45:31 -0800 |
commit | e686dd88abfc31e2327c8b6e4d0abf03c83864c3 (patch) | |
tree | b19ca5874d3ac5d687e9de719053e71d827b24cd /PermissionController/src/com/android/permissioncontroller/permission/service | |
parent | acd69010736ffa90d1c68165ebd13112b2fffd8e (diff) | |
download | Permission-e686dd88abfc31e2327c8b6e4d0abf03c83864c3.tar.gz |
Revoke implicit READ_MEDIA permission when app is killed
When an app is granted READ_MEDIA_IMAGES/VIDEO as one time, revoked
compat, also set the app to immediately revoke these permissions on
process death, skipping the usual 5 second timer.
Bug: 251783650
Test: manual
Change-Id: I6b2bb7131d257c01685ecd6d2c4f7177d1288c04
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/permission/service')
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/permission/service/PermissionControllerServiceImpl.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionControllerServiceImpl.java b/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionControllerServiceImpl.java index 5e03e721c..a5fe850a1 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionControllerServiceImpl.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionControllerServiceImpl.java @@ -680,10 +680,16 @@ public final class PermissionControllerServiceImpl extends PermissionControllerL oneTimeGrantedPermissions.toArray(new String[0])); } for (String permissionName : oneTimeGrantedPermissions) { - // We only reset the USER_SET flag if the permission was granted. + // We only reset the USER_SET and REVOKED_COMPAT flags if the permission was + // granted. Permission permission = group.getPermission(permissionName); if (permission != null) { permission.setUserSet(false); + if (!permission.isGranted() && permission.isRevokedCompat()) { + // If we revoked the permission, but the Revoked Compat flag is set, + // reset it + permission.setRevokedCompat(false); + } } } if (bgGroup != null) { |