From ef2a4c38590d3aa3453be12b49a409249d0609f7 Mon Sep 17 00:00:00 2001 From: jianzhou Date: Fri, 11 May 2018 14:47:12 +0800 Subject: AlarmManagerService: Fix FWR before boot completed Root cause: AlarmManagerService send broadcast of TIMEZONE_CHANGED before boot completed lead to IllegalStateException in AMS and system skip StartWindowManagerService, and finally got crashed. Modification: add flag Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT. Change-Id: Iab9cd5acfeabd114371a8aaaa406a4a1c5919f98 Test: Monkey Bug: 79550062 --- services/core/java/com/android/server/AlarmManagerService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java index bbb7c523bac9..ada118235cdb 100644 --- a/services/core/java/com/android/server/AlarmManagerService.java +++ b/services/core/java/com/android/server/AlarmManagerService.java @@ -1675,6 +1675,7 @@ class AlarmManagerService extends SystemService { Intent intent = new Intent(Intent.ACTION_TIMEZONE_CHANGED); intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING | Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND + | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT | Intent.FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS); intent.putExtra("time-zone", zone.getID()); getContext().sendBroadcastAsUser(intent, UserHandle.ALL); -- cgit v1.2.3-59-g8ed1b