From acce5e4a64a6d3939d21557797648408ed36bafc Mon Sep 17 00:00:00 2001 From: jianzhou Date: Fri, 11 May 2018 14:47:12 +0800 Subject: [PATCH] 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 Merged-In: Iab9cd5acfeabd114371a8aaaa406a4a1c5919f98 Test: Monkey Bug: 79550062 (Cherrypick for R) Change-Id: I802b90c55946cfac0f64cb69072588b0acb03cc2 --- 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 3441a5f19508d..7840b1957031c 100644 --- a/services/core/java/com/android/server/AlarmManagerService.java +++ b/services/core/java/com/android/server/AlarmManagerService.java @@ -1670,6 +1670,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);