From a700d28fe35b464435e7be55d3c0a56040bdf0fd Mon Sep 17 00:00:00 2001 From: Stanislav Zholnin Date: Wed, 2 Oct 2019 17:14:10 +0100 Subject: [PATCH] Fix the bug where AppOps information was saved multiple times in StatsCompanionService pullAppOps method which was overflowing Binder and prevented any log collection from Device Change-Id: I0532441cc959daebf00c8794c4317a661443061c Fix: 141543124 Test: ./out/host/linux-x86/bin/statsd_testdrive 10060 --- .../com/android/server/stats/StatsCompanionService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 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 1d3ac6a9f14f3..1a10753d7bcb7 100644 --- a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java +++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java @@ -2079,9 +2079,6 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { HistoricalOps histOps = ops.get(EXTERNAL_STATS_SYNC_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); - StatsLogEventWrapper e = new StatsLogEventWrapper(StatsLog.APP_OPS, elapsedNanos, - wallClockNanos); - for (int uidIdx = 0; uidIdx < histOps.getUidCount(); uidIdx++) { final HistoricalUidOps uidOps = histOps.getUidOpsAt(uidIdx); final int uid = uidOps.getUid(); @@ -2089,6 +2086,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { final HistoricalPackageOps packageOps = uidOps.getPackageOpsAt(pkgIdx); for (int opIdx = 0; opIdx < packageOps.getOpCount(); opIdx++) { final AppOpsManager.HistoricalOp op = packageOps.getOpAt(opIdx); + StatsLogEventWrapper e = new StatsLogEventWrapper(StatsLog.APP_OPS, + elapsedNanos, wallClockNanos); + e.writeInt(uid); e.writeString(packageOps.getPackageName()); e.writeInt(op.getOpCode());