diff options
| -rw-r--r-- | apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java b/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java index 11d3e96ccb7e..a21d810c71f3 100644 --- a/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java +++ b/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java @@ -2628,8 +2628,13 @@ public class DeviceIdleController extends SystemService for (int i=0; i<allowPowerExceptIdle.size(); i++) { String pkg = allowPowerExceptIdle.valueAt(i); try { + // On some devices (eg. HSUM), some apps may + // be not be pre-installed on user 0, but may be + // pre-installed on FULL users. Look for pre-installed system + // apps across all users to make sure they're properly + // allowlisted. ApplicationInfo ai = pm.getApplicationInfo(pkg, - PackageManager.MATCH_SYSTEM_ONLY); + PackageManager.MATCH_ANY_USER | PackageManager.MATCH_SYSTEM_ONLY); int appid = UserHandle.getAppId(ai.uid); mPowerSaveWhitelistAppsExceptIdle.put(ai.packageName, appid); mPowerSaveWhitelistSystemAppIdsExceptIdle.put(appid, true); @@ -2640,8 +2645,13 @@ public class DeviceIdleController extends SystemService for (int i=0; i<allowPower.size(); i++) { String pkg = allowPower.valueAt(i); try { + // On some devices (eg. HSUM), some apps may + // be not be pre-installed on user 0, but may be + // pre-installed on FULL users. Look for pre-installed system + // apps across all users to make sure they're properly + // allowlisted. ApplicationInfo ai = pm.getApplicationInfo(pkg, - PackageManager.MATCH_SYSTEM_ONLY); + PackageManager.MATCH_ANY_USER | PackageManager.MATCH_SYSTEM_ONLY); int appid = UserHandle.getAppId(ai.uid); // These apps are on both the whitelist-except-idle as well // as the full whitelist, so they apply in all cases. |