From 7f8041f230c8e7a02f75f726880c2bdc12714083 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Wed, 1 Apr 2020 10:09:07 -0700 Subject: [PATCH] Allow system processes to set near-future alarms Bug: 151689784 Test: atest CtsAlarmManagerTestCases Test: atest FrameworksMockingServicesTests:AlarmManagerServiceTest Test: observe DHCP +2 sec alarm Change-Id: Ic987eb168fb632d77e841f33518c2d0ea650693e --- .../core/java/com/android/server/AlarmManagerService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java index fe33fae98306a..ce651100699fb 100644 --- a/services/core/java/com/android/server/AlarmManagerService.java +++ b/services/core/java/com/android/server/AlarmManagerService.java @@ -1741,8 +1741,9 @@ class AlarmManagerService extends SystemService { final long nowElapsed = mInjector.getElapsedRealtime(); final long nominalTrigger = convertToElapsed(triggerAtTime, type); - // Try to prevent spamming by making sure we aren't firing alarms in the immediate future - final long minTrigger = nowElapsed + mConstants.MIN_FUTURITY; + // Try to prevent spamming by making sure apps aren't firing alarms in the immediate future + final long minTrigger = nowElapsed + + (UserHandle.isCore(callingUid) ? 0L : mConstants.MIN_FUTURITY); final long triggerElapsed = (nominalTrigger > minTrigger) ? nominalTrigger : minTrigger; final long maxElapsed;