From 4c13e124ec1cdcfd028803dc76b1e3cc6b9b245d Mon Sep 17 00:00:00 2001 From: Jacob Hobbie Date: Mon, 22 Nov 2021 16:35:02 +0000 Subject: Temporarily omit the skip Remove the skip because it's skipping some broadcasts (system broadcasts) that it shouldn't be. By also changing the UID check to check if it's a core UID this will mitigate most of the changes and won't spam logs, but there is also the weird case of when a receiver registers for a sticky system broadcast that I will fix later. Change-Id: Ifc22d15e24fb302fa066beda3ee80b99c163a3b5 Test:reversion mostly Fixes: 166145287 Fixes: 207318980 --- services/core/java/com/android/server/am/BroadcastQueue.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java index 17daa753100c..592abbbb5747 100644 --- a/services/core/java/com/android/server/am/BroadcastQueue.java +++ b/services/core/java/com/android/server/am/BroadcastQueue.java @@ -789,7 +789,7 @@ public final class BroadcastQueue { // Ensure that broadcasts are only sent to other apps if they are explicitly marked as // exported, or are System level broadcasts - if (!skip && !filter.exported && Process.SYSTEM_UID != r.callingUid + if (!skip && !filter.exported && !Process.isCoreUid(r.callingUid) && filter.receiverList.uid != r.callingUid) { Slog.w(TAG, "Exported Denial: sending " @@ -800,7 +800,7 @@ public final class BroadcastQueue { + " due to receiver " + filter.receiverList.app + " (uid " + filter.receiverList.uid + ")" + " not specifying RECEIVER_EXPORTED"); - skip = true; + // skip = true; } if (skip) { -- cgit v1.2.3-59-g8ed1b