From f50316cb46d11882119a61a41f2c83a79b76f108 Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Wed, 3 Jul 2019 15:44:00 -0700 Subject: [PATCH] Do not trigger revoke-perm callbacks if no change Revoking a permission might e.g. kill the the app. If a permission gets revoked that was never granted there was no change, hence no need to call the callbacks and also no need to kill the app. Test: "pm clear" two times in a row. The second one did trigger a kill before, not anymore. Bug: 133830856 Change-Id: I357f2d939520ac78ef82ecf4feb7936455950fc4 --- .../server/pm/permission/PermissionManagerService.java | 5 +++++ 1 file changed, 5 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 a7da3ec950f4d..d3e5df5d62d12 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -2269,6 +2269,11 @@ public class PermissionManagerService { return; } + // Permission is already revoked, no need to do anything. + if (!permissionsState.hasRuntimePermission(permName, userId)) { + return; + } + if (permissionsState.revokeRuntimePermission(bp, userId) == PERMISSION_OPERATION_FAILURE) { return;