diff options
| -rw-r--r-- | services/core/java/com/android/server/stats/pull/StatsPullAtomService.java | 7 |
1 files changed, 6 insertions, 1 deletions
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 1afec9c18a7f..6fd7250b205c 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) { |