From 623ff43bdade381e918fceb6bad69681b89308b6 Mon Sep 17 00:00:00 2001 From: Svet Ganov Date: Tue, 30 Mar 2021 23:09:15 +0000 Subject: Fix NPE in PermsissionChecker Also added some logging for runtime permissions with no app op bug: 184093962 Test: Setting up device with work account Change-Id: I85787367b11d57ed1240fcf484ad7d2efa13d406 --- core/java/android/content/PermissionChecker.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'core/java') diff --git a/core/java/android/content/PermissionChecker.java b/core/java/android/content/PermissionChecker.java index 6a254bd0465e..fc963fef3eb4 100644 --- a/core/java/android/content/PermissionChecker.java +++ b/core/java/android/content/PermissionChecker.java @@ -16,6 +16,7 @@ package android.content; +import android.Manifest; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -845,7 +846,7 @@ public final class PermissionChecker { boolean forDataDelivery, boolean fromDatasource) { final int op = AppOpsManager.permissionToOpCode(permission); if (op < 0) { - Slog.wtf(LOG_TAG, "Appop permission " + permission + "with no app op defined:!"); + Slog.wtf(LOG_TAG, "Appop permission " + permission + " with no app op defined!"); return PERMISSION_HARD_DENIED; } @@ -933,7 +934,15 @@ public final class PermissionChecker { } if (op < 0) { - Slog.wtf(LOG_TAG, "Runtime permission " + permission + "with no app op defined:!"); + // Bg location is one-off runtime modifier permission and has no app op + if (sPlatformPermissions.contains(permission) + && !Manifest.permission.ACCESS_BACKGROUND_LOCATION.equals(permission)) { + Slog.wtf(LOG_TAG, "Platform runtime permission " + permission + + " with no app op defined!"); + } + if (next == null) { + return PERMISSION_GRANTED; + } current = next; continue; } -- cgit v1.2.3