diff options
| -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); |