diff options
author | Hai Zhang <zhanghai@google.com> | 2023-02-23 01:35:04 +0000 |
---|---|---|
committer | Hai Zhang <zhanghai@google.com> | 2023-02-23 01:35:53 +0000 |
commit | 4afa3f5e45aa1f80bbd73ccdb6bccc2c9e1f440d (patch) | |
tree | 575f26aeeda2b967923d76fd655b3905ccdbdae6 /PermissionController/src/com/android/permissioncontroller/permission/model | |
parent | 1fa5fa0f9532357d872371c5f4066a744756f159 (diff) | |
download | Permission-4afa3f5e45aa1f80bbd73ccdb6bccc2c9e1f440d.tar.gz |
No need to kill app if app op was changed for modern apps.
This is a follow up to ag/13156539 in 2020 due to b/263324262#comment47.
We are already not killing upon granting app op for modern apps in
ag/13156539, and we don't need to kill for revoking app op for modern
apps either because the permission should have been revoked as well.
This also makes persistChanges() behave consistently with
revokeRuntimePermissions() when delayChanges = false.
Bug: 263324262
Test: presubmit
Change-Id: I7ab31bb25a05f5976aa5358d47ea684463e2fdad
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/permission/model')
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/permission/model/AppPermissionGroup.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/model/AppPermissionGroup.java b/PermissionController/src/com/android/permissioncontroller/permission/model/AppPermissionGroup.java index 58edb5f7d..e096a1a7e 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/model/AppPermissionGroup.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/model/AppPermissionGroup.java @@ -1594,12 +1594,13 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> // Enabling/Disabling an app op may put the app in a situation in which it has // a handle to state it shouldn't have, so we have to kill the app. This matches // the revoke runtime permission behavior. + boolean wasChanged; if (permission.isAppOpAllowed()) { - boolean wasChanged = allowAppOp(permission, uid); - shouldKillApp |= wasChanged && !mAppSupportsRuntimePermissions; + wasChanged = allowAppOp(permission, uid); } else { - shouldKillApp |= disallowAppOp(permission, uid); + wasChanged = disallowAppOp(permission, uid); } + shouldKillApp |= wasChanged && !mAppSupportsRuntimePermissions; } } } |