diff options
| author | 2019-11-21 17:37:23 +0000 | |
|---|---|---|
| committer | 2019-11-21 17:40:00 +0000 | |
| commit | dbe17def48220cd360643c86d0f2b4a300c38b83 (patch) | |
| tree | 23bb0ce06d9db2a60c271deba1723304119fea53 | |
| parent | 4132a00ab29e7def155a30eb96c71f4738b09de5 (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.java | 9 |
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); |