summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/stats/pull/StatsPullAtomService.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
index ab459fdadd21..64d92aa236fc 100644
--- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
+++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
@@ -3414,7 +3414,16 @@ public class StatsPullAtomService extends SystemService {
private void processHistoricalOp(AppOpsManager.HistoricalOp op,
List<AppOpEntry> opsList, int uid, int samplingRatio, String packageName,
@Nullable String attributionTag) {
- AppOpEntry entry = new AppOpEntry(packageName, attributionTag, op, uid);
+ int firstChar = 0;
+ if (attributionTag != null && attributionTag.startsWith(packageName)) {
+ firstChar = packageName.length();
+ if (firstChar < attributionTag.length() && attributionTag.charAt(firstChar) == '.') {
+ firstChar++;
+ }
+ }
+ AppOpEntry entry = new AppOpEntry(packageName,
+ attributionTag == null ? null : attributionTag.substring(firstChar), op,
+ uid);
if (entry.mHash < samplingRatio) {
opsList.add(entry);
}