From 9099a0611cc7bd242cf197ee2eff79339f03fe06 Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Tue, 8 Jun 2021 12:34:21 -0700 Subject: [PATCH] Ensure that SOFT_DENIED doesn't result in a call to finishOp Bug: 190385491 Test: atest SensorPrivacyMicrophoneTest Change-Id: Ib739d9fe0d9aae46199f6e7f3c2f4e0f51396b51 --- .../android/server/pm/permission/PermissionManagerService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 b0f8ee1925c57..92b6a0818de82 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -5495,7 +5495,8 @@ public class PermissionManagerService extends IPermissionManager.Stub { final int result = checkPermission(mContext, permission, attributionSource, message, forDataDelivery, startDataDelivery, fromDatasource, attributedOp); // Finish any started op if some step in the attribution chain failed. - if (startDataDelivery && result != PermissionChecker.PERMISSION_GRANTED) { + if (startDataDelivery && result != PermissionChecker.PERMISSION_GRANTED + && result != PermissionChecker.PERMISSION_SOFT_DENIED) { if (attributedOp == AppOpsManager.OP_NONE) { finishDataDelivery(AppOpsManager.permissionToOpCode(permission), attributionSource.asState(), fromDatasource);