Merge "Treat MODE_FOREGROUND as ALLOWED for appop checks" into rvc-dev am: c670246edb am: 2fbdb1b4fc am: 1a9ebdd9af

Change-Id: Idd502a8759fed330ef5577c71c07a51459bfb851
This commit is contained in:
Automerger Merge Worker
2020-03-14 02:12:52 +00:00

View File

@@ -435,10 +435,11 @@ public final class PermissionChecker {
final AppOpsManager appOpsManager = context.getSystemService(AppOpsManager.class); final AppOpsManager appOpsManager = context.getSystemService(AppOpsManager.class);
final int opMode = (forDataDelivery) final int opMode = (forDataDelivery)
? appOpsManager.noteProxyOpNoThrow(op, packageName, uid, attributionTag, message) ? appOpsManager.noteProxyOpNoThrow(op, packageName, uid, attributionTag, message)
: appOpsManager.unsafeCheckOpNoThrow(op, uid, packageName); : appOpsManager.unsafeCheckOpRawNoThrow(op, uid, packageName);
switch (opMode) { switch (opMode) {
case AppOpsManager.MODE_ALLOWED: { case AppOpsManager.MODE_ALLOWED:
case AppOpsManager.MODE_FOREGROUND: {
return PERMISSION_GRANTED; return PERMISSION_GRANTED;
} }
case AppOpsManager.MODE_DEFAULT: { case AppOpsManager.MODE_DEFAULT: {
@@ -467,12 +468,14 @@ public final class PermissionChecker {
final AppOpsManager appOpsManager = context.getSystemService(AppOpsManager.class); final AppOpsManager appOpsManager = context.getSystemService(AppOpsManager.class);
final int opMode = (forDataDelivery) final int opMode = (forDataDelivery)
? appOpsManager.noteProxyOpNoThrow(op, packageName, uid, attributionTag, message) ? appOpsManager.noteProxyOpNoThrow(op, packageName, uid, attributionTag, message)
: appOpsManager.unsafeCheckOpNoThrow(op, uid, packageName); : appOpsManager.unsafeCheckOpRawNoThrow(op, uid, packageName);
if (opMode == AppOpsManager.MODE_ALLOWED) { switch (opMode) {
return PERMISSION_GRANTED; case AppOpsManager.MODE_ALLOWED:
} else { case AppOpsManager.MODE_FOREGROUND:
return PERMISSION_SOFT_DENIED; return PERMISSION_GRANTED;
default:
return PERMISSION_SOFT_DENIED;
} }
} }
} }