summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/content/PermissionChecker.java13
1 files changed, 11 insertions, 2 deletions
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;
}