From 2f63e58cd03413fc1aa15fabcbda48ef4712d431 Mon Sep 17 00:00:00 2001 From: Stanislav Zholnin Date: Sun, 19 Apr 2020 12:10:05 +0100 Subject: [PATCH] Add DeviceConfig flag to be able to change sampling ratio of AttributedAppOps atom after R release. Bug: 143519689 Test: ./out/host/linux-x86/bin/statsd_testdrive 10075 Change-Id: If7fa68cab6b699b6f09896a818b1afc9eadc0c7c --- .../android/server/stats/pull/StatsPullAtomService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java index 1afec9c18a7fe..6fd7250b205c9 100644 --- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java +++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java @@ -98,6 +98,7 @@ import android.os.connectivity.WifiActivityEnergyInfo; import android.os.storage.DiskInfo; import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; +import android.provider.DeviceConfig; import android.provider.Settings; import android.stats.storage.StorageEnums; import android.telephony.ModemActivityInfo; @@ -204,6 +205,7 @@ public class StatsPullAtomService extends SystemService { private static final int CPU_TIME_PER_THREAD_FREQ_MAX_NUM_FREQUENCIES = 8; private static final int OP_FLAGS_PULLED = OP_FLAG_SELF | OP_FLAG_TRUSTED_PROXY; private static final String COMMON_PERMISSION_PREFIX = "android.permission."; + private static final String APP_OPS_TARGET_COLLECTION_SIZE = "app_ops_target_collection_size"; private final Object mNetworkStatsLock = new Object(); @GuardedBy("mNetworkStatsLock") @@ -2913,7 +2915,10 @@ public class StatsPullAtomService extends SystemService { HistoricalOps histOps = ops.get(EXTERNAL_STATS_SYNC_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); if (mAppOpsSamplingRate == 0) { - mAppOpsSamplingRate = constrain((5000 * 100) / estimateAppOpsSize(), 1, 100); + int appOpsTargetCollectionSize = DeviceConfig.getInt( + DeviceConfig.NAMESPACE_PERMISSIONS, APP_OPS_TARGET_COLLECTION_SIZE, 5000); + mAppOpsSamplingRate = constrain( + (appOpsTargetCollectionSize * 100) / estimateAppOpsSize(), 1, 100); } processHistoricalOps(histOps, atomTag, pulledData); } catch (Throwable t) {