Catch exception when using noteOp in Context Hub Service

The AppOpManager may throw a security exception, but is not
caught at the service, so a message may be silently dropped.

Bug: 194285834
Test: Load on device
Change-Id: I35c8a9c6d3010865f8cab9b247ba51e74756a9ca
This commit is contained in:
Arthur Ishiguro
2021-09-16 07:26:52 -07:00
parent 6582410233
commit 72c5e35c1c

View File

@@ -605,8 +605,14 @@ public class ContextHubClientBroker extends IContextHubClient.Stub
for (String permission : permissions) {
int opCode = mAppOpsManager.permissionToOpCode(permission);
if (opCode != AppOpsManager.OP_NONE) {
if (mAppOpsManager.noteOp(opCode, mUid, mPackage, mAttributionTag, noteMessage)
!= AppOpsManager.MODE_ALLOWED) {
try {
if (mAppOpsManager.noteOp(opCode, mUid, mPackage, mAttributionTag, noteMessage)
!= AppOpsManager.MODE_ALLOWED) {
return false;
}
} catch (SecurityException e) {
Log.e(TAG, "SecurityException: noteOp for pkg " + mPackage + " opcode "
+ opCode + ": " + e.getMessage());
return false;
}
}