From b05444be8c61df3f6e3d88d872ce873019cf0580 Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Mon, 7 Jun 2021 12:30:09 -0700 Subject: [PATCH] TEMP add missing remap log, reduce log spam Test: build Bug: 189484870 Bug: 190073375 Change-Id: I1ef682de10760502426500ab06477e6d8a368160 --- .../android/server/appop/AppOpsService.java | 6 +++- .../android/server/policy/AppOpsPolicy.java | 31 ++++++++++++++----- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index a68364e943cfb..1e0eb71c73680 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -4501,8 +4501,12 @@ public class AppOpsService extends IAppOpsService.Stub { Slog.i("AppOpsDebug", "tag " + attributionTag + " found in " + packageName); } else { + ArrayList tagList = new ArrayList<>(); + for (int i = 0; i < pkg.getAttributions().size(); i++) { + tagList.add(pkg.getAttributions().get(i).tag); + } Slog.i("AppOpsDebug", "tag " + attributionTag + " missing from " - + packageName); + + packageName + ", tags: " + tagList); } } diff --git a/services/core/java/com/android/server/policy/AppOpsPolicy.java b/services/core/java/com/android/server/policy/AppOpsPolicy.java index f39d618f9377e..072565781d5f5 100644 --- a/services/core/java/com/android/server/policy/AppOpsPolicy.java +++ b/services/core/java/com/android/server/policy/AppOpsPolicy.java @@ -43,8 +43,6 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.util.function.DecFunction; import com.android.internal.util.function.HeptFunction; import com.android.internal.util.function.HexFunction; -import com.android.internal.util.function.NonaFunction; -import com.android.internal.util.function.OctFunction; import com.android.internal.util.function.QuadFunction; import com.android.internal.util.function.QuintFunction; import com.android.internal.util.function.TriFunction; @@ -66,6 +64,11 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat "android:activity_recognition_allow_listed_tags"; private static final String ACTIVITY_RECOGNITION_TAGS_SEPARATOR = ";"; + private static ArraySet sExpectedTags = new ArraySet<>(new String[] { + "awareness_provider", "activity_recognition_provider", "network_location_provider", + "network_location_calibration", "fused_location_provider", "geofencer_provider"}); + + @NonNull private final Object mLock = new Object(); @@ -224,8 +227,14 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat if (resolvedCode != code) { if (isDatasourceAttributionTag(uid, packageName, attributionTag, mLocationTags)) { + if (packageName.equals("com.google.android.gms") + && !sExpectedTags.contains(attributionTag)) { + Log.i("AppOpsDebugRemapping", "remapping " + packageName + " location " + + "for tag " + attributionTag); + } return resolvedCode; - } else if (packageName.equals("com.google.android.gms")) { + } else if (packageName.equals("com.google.android.gms") + && sExpectedTags.contains(attributionTag)) { Log.i("AppOpsDebugRemapping", "NOT remapping " + packageName + " code " + code + " for tag " + attributionTag); } @@ -234,10 +243,14 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat if (resolvedCode != code) { if (isDatasourceAttributionTag(uid, packageName, attributionTag, mActivityRecognitionTags)) { - Log.i("AppOpsDebugRemapping", "remapping " + packageName + " code " - + code + " to " + resolvedCode + " for tag " + attributionTag); + if (packageName.equals("com.google.android.gms") + && !sExpectedTags.contains(attributionTag)) { + Log.i("AppOpsDebugRemapping", "remapping " + packageName + " " + + "activity recognition for tag " + attributionTag); + } return resolvedCode; - } else if (packageName.equals("com.google.android.gms")) { + } else if (packageName.equals("com.google.android.gms") + && sExpectedTags.contains(attributionTag)) { Log.i("AppOpsDebugRemapping", "NOT remapping " + packageName + " code " + code + " for tag " + attributionTag); } @@ -342,13 +355,15 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat if (appIdTags != null) { final ArraySet packageTags = appIdTags.get(packageName); if (packageTags != null && packageTags.contains(attributionTag)) { - if (packageName.equals("com.google.android.gms")) { + if (packageName.equals("com.google.android.gms") + && !sExpectedTags.contains(attributionTag)) { Log.i("AppOpsDebugRemapping", packageName + " tag " + attributionTag + " in " + packageTags); } return true; } - if (packageName.equals("com.google.android.gms")) { + if (packageName.equals("com.google.android.gms") + && sExpectedTags.contains(attributionTag)) { Log.i("AppOpsDebugRemapping", packageName + " tag " + attributionTag + " NOT in " + packageTags); }