From 58f2815272bc569cae1ef25342115336908dbf36 Mon Sep 17 00:00:00 2001 From: Tony Mak Date: Wed, 20 Sep 2017 21:23:48 +0100 Subject: [PATCH] Use noteOpNoThrow instead in AMS We just want a boolean result to tell whether a package has certain permissions, we do not expect the check to throw SecurityException, so let's use noteOpNoThrow instead. Fixes: 65912167 Test: Disable Gmail, install a test app and run setPassword. No crash. Change-Id: Ifc6e7fbbae1121bda329f0a291522af9698959db --- .../com/android/server/accounts/AccountManagerService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index 7e90c9276ff09..c61761651ceee 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -5285,7 +5285,7 @@ public class AccountManagerService == PackageManager.PERMISSION_GRANTED) { // Checks runtime permission revocation. final int opCode = AppOpsManager.permissionToOpCode(perm); - if (opCode == AppOpsManager.OP_NONE || mAppOpsManager.noteOp( + if (opCode == AppOpsManager.OP_NONE || mAppOpsManager.noteOpNoThrow( opCode, uid, packageName) == AppOpsManager.MODE_ALLOWED) { return true; } @@ -5306,7 +5306,7 @@ public class AccountManagerService Log.v(TAG, " caller uid " + callingUid + " has " + perm); } final int opCode = AppOpsManager.permissionToOpCode(perm); - if (opCode == AppOpsManager.OP_NONE || mAppOpsManager.noteOp( + if (opCode == AppOpsManager.OP_NONE || mAppOpsManager.noteOpNoThrow( opCode, callingUid, opPackageName) == AppOpsManager.MODE_ALLOWED) { return true; }