From 9003106e1013164fe06d4b872fdca3ef6b8028e7 Mon Sep 17 00:00:00 2001 From: "gang.huang" Date: Sun, 18 Dec 2022 11:20:20 +0800 Subject: [PATCH] Dynamic broadcast receivers that are not exported need to be filtered in checkBroadcastFromSystem When the system code sending non-protected broadcast, if it's dynamic broadcast receiver is not exported, the wtf log of sending non-protected broadcast should not be printed. Bug:263210319 Test:A system code, for example com.android.settings step1:send a non-protected broadcast but with packageName to itself; step2:it registers a dynamic broadcast receiver with Context.RECEIVER_NOT_EXPORTED to receive this broadcast. Change-Id: Ie7e359d1ae079be0d444c72791ff1b2a892b71bb --- .../core/java/com/android/server/am/ActivityManagerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 75e30e57018c8..6bd036b769c2f 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -13529,7 +13529,7 @@ public class ActivityManagerService extends IActivityManager.Stub } } else { BroadcastFilter bf = (BroadcastFilter)target; - if (bf.requiredPermission == null) { + if (bf.exported && bf.requiredPermission == null) { allProtected = false; break; }