summaryrefslogtreecommitdiff
path: root/PermissionController/src/com/android/permissioncontroller/permission/service
diff options
context:
space:
mode:
authorNate Myren <ntmyren@google.com>2023-01-13 10:50:16 -0800
committerNate Myren <ntmyren@google.com>2023-01-31 10:45:31 -0800
commite686dd88abfc31e2327c8b6e4d0abf03c83864c3 (patch)
treeb19ca5874d3ac5d687e9de719053e71d827b24cd /PermissionController/src/com/android/permissioncontroller/permission/service
parentacd69010736ffa90d1c68165ebd13112b2fffd8e (diff)
downloadPermission-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.java8
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) {