diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index 4e6e91ac7b5d3..c9ad2a11936a9 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -16,6 +16,7 @@ package com.android.server.am; +import static android.content.pm.PackageManager.PERMISSION_DENIED; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED; import static android.os.BatteryStats.POWER_DATA_UNAVAILABLE; @@ -2499,6 +2500,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub * @hide */ public CellularBatteryStats getCellularBatteryStats() { + if (mContext.checkCallingOrSelfPermission( + android.Manifest.permission.UPDATE_DEVICE_STATS) == PERMISSION_DENIED) { + mContext.enforceCallingOrSelfPermission( + android.Manifest.permission.BATTERY_STATS, null); + } + // Wait for the completion of pending works if there is any awaitCompletion(); synchronized (mStats) { @@ -2511,6 +2518,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub * @hide */ public WifiBatteryStats getWifiBatteryStats() { + if (mContext.checkCallingOrSelfPermission( + android.Manifest.permission.UPDATE_DEVICE_STATS) == PERMISSION_DENIED) { + mContext.enforceCallingOrSelfPermission( + android.Manifest.permission.BATTERY_STATS, null); + } + // Wait for the completion of pending works if there is any awaitCompletion(); synchronized (mStats) { @@ -2523,6 +2536,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub * @hide */ public GpsBatteryStats getGpsBatteryStats() { + mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BATTERY_STATS, null); + // Wait for the completion of pending works if there is any awaitCompletion(); synchronized (mStats) {