Allow system processes to set near-future alarms

Bug: 151689784
Test: atest CtsAlarmManagerTestCases
Test: atest FrameworksMockingServicesTests:AlarmManagerServiceTest
Test: observe DHCP +2 sec alarm

Merged-In: Ic987eb168fb632d77e841f33518c2d0ea650693e
Change-Id: Ic987eb168fb632d77e841f33518c2d0ea650693e
This commit is contained in:
Christopher Tate
2020-04-01 10:09:07 -07:00
parent 565160c302
commit 7e701dbe8c

View File

@@ -1735,8 +1735,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;