summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Stanislav Zholnin <zholnin@google.com> 2019-11-21 17:37:23 +0000
committer Stanislav Zholnin <zholnin@google.com> 2019-11-21 17:40:00 +0000
commitdbe17def48220cd360643c86d0f2b4a300c38b83 (patch)
tree23bb0ce06d9db2a60c271deba1723304119fea53
parent4132a00ab29e7def155a30eb96c71f4738b09de5 (diff)
Optimize reporting for DangerousPermissionState atom
Remove package name from DangrousPermissionState puller. Ensure that every uid is reported only once, as permission state depends on uid only and not package name. Test: make statsd_testdrive && ./out/host/linux-x86/bin/statsd_testdrive 10050 Change-Id: I3338cc4a3b63173761fbeb67db00458ed4f0e77a
-rw-r--r--apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
index 8a00c8318d58..a6cc06fad7eb 100644
--- a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
+++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
@@ -2076,6 +2076,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
private void pullDangerousPermissionState(long elapsedNanos, final long wallClockNanos,
List<StatsLogEventWrapper> pulledData) {
long token = Binder.clearCallingIdentity();
+ Set<Integer> reportedUids = new HashSet<>();
try {
PackageManager pm = mContext.getPackageManager();
@@ -2096,6 +2097,12 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
continue;
}
+ if (reportedUids.contains(pkg.applicationInfo.uid)) {
+ // do not report same uid twice
+ continue;
+ }
+ reportedUids.add(pkg.applicationInfo.uid);
+
int numPerms = pkg.requestedPermissions.length;
for (int permNum = 0; permNum < numPerms; permNum++) {
String permName = pkg.requestedPermissions[permNum];
@@ -2120,7 +2127,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
e.writeString(permName);
e.writeInt(pkg.applicationInfo.uid);
- e.writeString(pkg.packageName);
+ e.writeString(null);
e.writeBoolean((pkg.requestedPermissionsFlags[permNum]
& REQUESTED_PERMISSION_GRANTED) != 0);
e.writeInt(permissionFlags);