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 8a00c8318d588..a6cc06fad7eb8 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 pulledData) { long token = Binder.clearCallingIdentity(); + Set 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);