Loading apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java +7 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ import static android.app.AlarmManager.INTERVAL_HOUR; import static android.app.AlarmManager.RTC; import static android.app.AlarmManager.RTC_WAKEUP; import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY; import static android.os.PowerWhitelistManager.REASON_ALARM_MANAGER_WHILE_IDLE; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_NOT_ALLOWED; import static android.os.UserHandle.USER_SYSTEM; Loading Loading @@ -524,10 +526,12 @@ public class AlarmManagerService extends SystemService { if (mLastAllowWhileIdleWhitelistDuration != ALLOW_WHILE_IDLE_WHITELIST_DURATION) { mLastAllowWhileIdleWhitelistDuration = ALLOW_WHILE_IDLE_WHITELIST_DURATION; mOptsWithFgs.setTemporaryAppWhitelistDuration(ALLOW_WHILE_IDLE_WHITELIST_DURATION); mOptsWithoutFgs.setTemporaryAppWhitelistDuration( mOptsWithFgs.setTemporaryAppAllowlist(ALLOW_WHILE_IDLE_WHITELIST_DURATION, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_ALARM_MANAGER_WHILE_IDLE, ""); mOptsWithoutFgs.setTemporaryAppAllowlist(ALLOW_WHILE_IDLE_WHITELIST_DURATION, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_NOT_ALLOWED, ALLOW_WHILE_IDLE_WHITELIST_DURATION); REASON_ALARM_MANAGER_WHILE_IDLE, ""); } } Loading core/api/system-current.txt +0 −1 Original line number Diff line number Diff line Loading @@ -647,7 +647,6 @@ package android.app { method public void setDontSendToRestrictedApps(boolean); method @RequiresPermission(anyOf={android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST, android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND, android.Manifest.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND}) public void setTemporaryAppAllowlist(long, int, int, @Nullable String); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST, android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND, android.Manifest.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND}) public void setTemporaryAppWhitelistDuration(long); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST, android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND, android.Manifest.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND}) public void setTemporaryAppWhitelistDuration(int, long); method public android.os.Bundle toBundle(); } Loading core/java/android/app/BroadcastOptions.java +0 −17 Original line number Diff line number Diff line Loading @@ -140,23 +140,6 @@ public class BroadcastOptions { PowerWhitelistManager.REASON_UNKNOWN, null); } /** * Set a duration for which the system should temporary place an application on the * power allowlist when this broadcast is being delivered to it, specify the temp allowlist * type. * @param type one of {@link TempAllowListType} * @param duration the duration in milliseconds; 0 means to not place on allowlist. * @deprecated use {@link #setTemporaryAppAllowlist(long, int, int, String)} instead. */ @Deprecated @RequiresPermission(anyOf = {android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST, android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND, android.Manifest.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND}) public void setTemporaryAppWhitelistDuration(@TempAllowListType int type, long duration) { setTemporaryAppAllowlist(duration, type, PowerWhitelistManager.REASON_UNKNOWN, null); } /** * Set a duration for which the system should temporary place an application on the * power allowlist when this broadcast is being delivered to it, specify the temp allowlist Loading services/core/java/com/android/server/am/PreBootBroadcaster.java +5 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.server.am; import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY; import static android.os.PowerWhitelistManager.REASON_PRE_BOOT_COMPLETED; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import android.app.ActivityManagerInternal; import android.app.AppOpsManager; Loading Loading @@ -117,9 +119,9 @@ public abstract class PreBootBroadcaster extends IIntentReceiver.Stub { duration = amInternal.getBootTimeTempAllowListDuration(); } final BroadcastOptions bOptions = BroadcastOptions.makeBasic(); bOptions.setTemporaryAppWhitelistDuration( BroadcastOptions.TEMPORARY_WHITELIST_TYPE_FOREGROUND_SERVICE_ALLOWED, duration); bOptions.setTemporaryAppAllowlist(duration, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_PRE_BOOT_COMPLETED, ""); synchronized (mService) { mService.broadcastIntentLocked(null, null, null, mIntent, null, this, 0, null, null, null, AppOpsManager.OP_NONE, bOptions.toBundle(), true, Loading services/core/java/com/android/server/am/UserController.java +12 −8 Original line number Diff line number Diff line Loading @@ -27,6 +27,9 @@ import static android.app.ActivityManagerInternal.ALLOW_ALL_PROFILE_PERMISSIONS_ import static android.app.ActivityManagerInternal.ALLOW_FULL_ONLY; import static android.app.ActivityManagerInternal.ALLOW_NON_FULL; import static android.app.ActivityManagerInternal.ALLOW_NON_FULL_IN_PROFILE; import static android.os.PowerWhitelistManager.REASON_BOOT_COMPLETED; import static android.os.PowerWhitelistManager.REASON_LOCKED_BOOT_COMPLETED; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import static android.os.Process.SHELL_UID; import static android.os.Process.SYSTEM_UID; Loading Loading @@ -74,6 +77,7 @@ import android.os.IRemoteCallback; import android.os.IUserManager; import android.os.Looper; import android.os.Message; import android.os.PowerWhitelistManager; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; Loading Loading @@ -522,7 +526,8 @@ class UserController implements Handler.Callback { mInjector.broadcastIntent(intent, null, resultTo, 0, null, null, new String[]{android.Manifest.permission.RECEIVE_BOOT_COMPLETED}, AppOpsManager.OP_NONE, getTemporaryAppWhitelistBroadcastOptions().toBundle(), true, getTemporaryAppAllowlistBroadcastOptions(REASON_LOCKED_BOOT_COMPLETED) .toBundle(), true, false, MY_PID, SYSTEM_UID, Binder.getCallingUid(), Binder.getCallingPid(), userId); } Loading Loading @@ -770,9 +775,8 @@ class UserController implements Handler.Callback { }, 0, null, null, new String[]{android.Manifest.permission.RECEIVE_BOOT_COMPLETED}, AppOpsManager.OP_NONE, getTemporaryAppWhitelistBroadcastOptions().toBundle(), true, false, MY_PID, SYSTEM_UID, callingUid, callingPid, userId); getTemporaryAppAllowlistBroadcastOptions(REASON_BOOT_COMPLETED).toBundle(), true, false, MY_PID, SYSTEM_UID, callingUid, callingPid, userId); }); } Loading Loading @@ -2811,7 +2815,8 @@ class UserController implements Handler.Callback { } } private BroadcastOptions getTemporaryAppWhitelistBroadcastOptions() { private BroadcastOptions getTemporaryAppAllowlistBroadcastOptions( @PowerWhitelistManager.ReasonCode int reasonCode) { long duration = 10_000; final ActivityManagerInternal amInternal = LocalServices.getService(ActivityManagerInternal.class); Loading @@ -2819,9 +2824,8 @@ class UserController implements Handler.Callback { duration = amInternal.getBootTimeTempAllowListDuration(); } final BroadcastOptions bOptions = BroadcastOptions.makeBasic(); bOptions.setTemporaryAppWhitelistDuration( BroadcastOptions.TEMPORARY_WHITELIST_TYPE_FOREGROUND_SERVICE_ALLOWED, duration); bOptions.setTemporaryAppAllowlist(duration, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, reasonCode, ""); return bOptions; } Loading Loading
apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java +7 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ import static android.app.AlarmManager.INTERVAL_HOUR; import static android.app.AlarmManager.RTC; import static android.app.AlarmManager.RTC_WAKEUP; import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY; import static android.os.PowerWhitelistManager.REASON_ALARM_MANAGER_WHILE_IDLE; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_NOT_ALLOWED; import static android.os.UserHandle.USER_SYSTEM; Loading Loading @@ -524,10 +526,12 @@ public class AlarmManagerService extends SystemService { if (mLastAllowWhileIdleWhitelistDuration != ALLOW_WHILE_IDLE_WHITELIST_DURATION) { mLastAllowWhileIdleWhitelistDuration = ALLOW_WHILE_IDLE_WHITELIST_DURATION; mOptsWithFgs.setTemporaryAppWhitelistDuration(ALLOW_WHILE_IDLE_WHITELIST_DURATION); mOptsWithoutFgs.setTemporaryAppWhitelistDuration( mOptsWithFgs.setTemporaryAppAllowlist(ALLOW_WHILE_IDLE_WHITELIST_DURATION, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_ALARM_MANAGER_WHILE_IDLE, ""); mOptsWithoutFgs.setTemporaryAppAllowlist(ALLOW_WHILE_IDLE_WHITELIST_DURATION, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_NOT_ALLOWED, ALLOW_WHILE_IDLE_WHITELIST_DURATION); REASON_ALARM_MANAGER_WHILE_IDLE, ""); } } Loading
core/api/system-current.txt +0 −1 Original line number Diff line number Diff line Loading @@ -647,7 +647,6 @@ package android.app { method public void setDontSendToRestrictedApps(boolean); method @RequiresPermission(anyOf={android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST, android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND, android.Manifest.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND}) public void setTemporaryAppAllowlist(long, int, int, @Nullable String); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST, android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND, android.Manifest.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND}) public void setTemporaryAppWhitelistDuration(long); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST, android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND, android.Manifest.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND}) public void setTemporaryAppWhitelistDuration(int, long); method public android.os.Bundle toBundle(); } Loading
core/java/android/app/BroadcastOptions.java +0 −17 Original line number Diff line number Diff line Loading @@ -140,23 +140,6 @@ public class BroadcastOptions { PowerWhitelistManager.REASON_UNKNOWN, null); } /** * Set a duration for which the system should temporary place an application on the * power allowlist when this broadcast is being delivered to it, specify the temp allowlist * type. * @param type one of {@link TempAllowListType} * @param duration the duration in milliseconds; 0 means to not place on allowlist. * @deprecated use {@link #setTemporaryAppAllowlist(long, int, int, String)} instead. */ @Deprecated @RequiresPermission(anyOf = {android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST, android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND, android.Manifest.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND}) public void setTemporaryAppWhitelistDuration(@TempAllowListType int type, long duration) { setTemporaryAppAllowlist(duration, type, PowerWhitelistManager.REASON_UNKNOWN, null); } /** * Set a duration for which the system should temporary place an application on the * power allowlist when this broadcast is being delivered to it, specify the temp allowlist Loading
services/core/java/com/android/server/am/PreBootBroadcaster.java +5 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.server.am; import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY; import static android.os.PowerWhitelistManager.REASON_PRE_BOOT_COMPLETED; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import android.app.ActivityManagerInternal; import android.app.AppOpsManager; Loading Loading @@ -117,9 +119,9 @@ public abstract class PreBootBroadcaster extends IIntentReceiver.Stub { duration = amInternal.getBootTimeTempAllowListDuration(); } final BroadcastOptions bOptions = BroadcastOptions.makeBasic(); bOptions.setTemporaryAppWhitelistDuration( BroadcastOptions.TEMPORARY_WHITELIST_TYPE_FOREGROUND_SERVICE_ALLOWED, duration); bOptions.setTemporaryAppAllowlist(duration, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_PRE_BOOT_COMPLETED, ""); synchronized (mService) { mService.broadcastIntentLocked(null, null, null, mIntent, null, this, 0, null, null, null, AppOpsManager.OP_NONE, bOptions.toBundle(), true, Loading
services/core/java/com/android/server/am/UserController.java +12 −8 Original line number Diff line number Diff line Loading @@ -27,6 +27,9 @@ import static android.app.ActivityManagerInternal.ALLOW_ALL_PROFILE_PERMISSIONS_ import static android.app.ActivityManagerInternal.ALLOW_FULL_ONLY; import static android.app.ActivityManagerInternal.ALLOW_NON_FULL; import static android.app.ActivityManagerInternal.ALLOW_NON_FULL_IN_PROFILE; import static android.os.PowerWhitelistManager.REASON_BOOT_COMPLETED; import static android.os.PowerWhitelistManager.REASON_LOCKED_BOOT_COMPLETED; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import static android.os.Process.SHELL_UID; import static android.os.Process.SYSTEM_UID; Loading Loading @@ -74,6 +77,7 @@ import android.os.IRemoteCallback; import android.os.IUserManager; import android.os.Looper; import android.os.Message; import android.os.PowerWhitelistManager; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; Loading Loading @@ -522,7 +526,8 @@ class UserController implements Handler.Callback { mInjector.broadcastIntent(intent, null, resultTo, 0, null, null, new String[]{android.Manifest.permission.RECEIVE_BOOT_COMPLETED}, AppOpsManager.OP_NONE, getTemporaryAppWhitelistBroadcastOptions().toBundle(), true, getTemporaryAppAllowlistBroadcastOptions(REASON_LOCKED_BOOT_COMPLETED) .toBundle(), true, false, MY_PID, SYSTEM_UID, Binder.getCallingUid(), Binder.getCallingPid(), userId); } Loading Loading @@ -770,9 +775,8 @@ class UserController implements Handler.Callback { }, 0, null, null, new String[]{android.Manifest.permission.RECEIVE_BOOT_COMPLETED}, AppOpsManager.OP_NONE, getTemporaryAppWhitelistBroadcastOptions().toBundle(), true, false, MY_PID, SYSTEM_UID, callingUid, callingPid, userId); getTemporaryAppAllowlistBroadcastOptions(REASON_BOOT_COMPLETED).toBundle(), true, false, MY_PID, SYSTEM_UID, callingUid, callingPid, userId); }); } Loading Loading @@ -2811,7 +2815,8 @@ class UserController implements Handler.Callback { } } private BroadcastOptions getTemporaryAppWhitelistBroadcastOptions() { private BroadcastOptions getTemporaryAppAllowlistBroadcastOptions( @PowerWhitelistManager.ReasonCode int reasonCode) { long duration = 10_000; final ActivityManagerInternal amInternal = LocalServices.getService(ActivityManagerInternal.class); Loading @@ -2819,9 +2824,8 @@ class UserController implements Handler.Callback { duration = amInternal.getBootTimeTempAllowListDuration(); } final BroadcastOptions bOptions = BroadcastOptions.makeBasic(); bOptions.setTemporaryAppWhitelistDuration( BroadcastOptions.TEMPORARY_WHITELIST_TYPE_FOREGROUND_SERVICE_ALLOWED, duration); bOptions.setTemporaryAppAllowlist(duration, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, reasonCode, ""); return bOptions; } Loading