From 22669f5b760dc9463c2138c5984e7976e3a8a36d Mon Sep 17 00:00:00 2001 From: Jacob Hobbie Date: Mon, 25 Oct 2021 12:49:08 -0700 Subject: [PATCH] Adding broadcasts receiver flags. Adding flags to a few files such that they specify if their unprotected broadcasts are exported or nto exported. Marking a receiver as exported is a no-op, and will maintain current behavior. All permission protected broadcasts should be marked as exported. Marking a receiver as not exported will prevent other apps from sending that receiver broadcasts. ACTION_CLOSE_SYSTEM_DIALOG is exported since it's deprecated in S+ and is only used during testing, otherwise the system drops it anyways. Test: no-op Bug: 161145287 Change-Id: Ifbae5de03e6dbaa36b66299a830de077d0a688e2 --- .../java/com/android/server/display/WifiDisplayAdapter.java | 3 ++- .../java/com/android/server/policy/LegacyGlobalActions.java | 3 ++- .../core/java/com/android/server/power/ShutdownThread.java | 2 +- services/core/java/com/android/server/vr/Vr2dDisplay.java | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/display/WifiDisplayAdapter.java b/services/core/java/com/android/server/display/WifiDisplayAdapter.java index d2baaf2228a1f..d632ee3d021c5 100644 --- a/services/core/java/com/android/server/display/WifiDisplayAdapter.java +++ b/services/core/java/com/android/server/display/WifiDisplayAdapter.java @@ -147,7 +147,8 @@ final class WifiDisplayAdapter extends DisplayAdapter { getContext(), getHandler(), mWifiDisplayListener); getContext().registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, - new IntentFilter(ACTION_DISCONNECT), null, mHandler); + new IntentFilter(ACTION_DISCONNECT), null, mHandler, + Context.RECEIVER_NOT_EXPORTED); } }); } diff --git a/services/core/java/com/android/server/policy/LegacyGlobalActions.java b/services/core/java/com/android/server/policy/LegacyGlobalActions.java index a5969a88008d5..54ece7384f7a3 100644 --- a/services/core/java/com/android/server/policy/LegacyGlobalActions.java +++ b/services/core/java/com/android/server/policy/LegacyGlobalActions.java @@ -138,7 +138,8 @@ class LegacyGlobalActions implements DialogInterface.OnDismissListener, DialogIn // By default CLOSE_SYSTEM_DIALOGS broadcast is sent only for current user, which is user // 10 on devices with headless system user enabled. // In order to receive the broadcast, register the broadcast receiver with UserHandle.ALL. - context.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null, null); + context.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null, null, + Context.RECEIVER_EXPORTED); mHasTelephony = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY); diff --git a/services/core/java/com/android/server/power/ShutdownThread.java b/services/core/java/com/android/server/power/ShutdownThread.java index e94575c433630..b03db66fde940 100644 --- a/services/core/java/com/android/server/power/ShutdownThread.java +++ b/services/core/java/com/android/server/power/ShutdownThread.java @@ -213,7 +213,7 @@ public final class ShutdownThread extends Thread { CloseDialogReceiver(Context context) { mContext = context; IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); - context.registerReceiver(this, filter); + context.registerReceiver(this, filter, Context.RECEIVER_EXPORTED); } @Override diff --git a/services/core/java/com/android/server/vr/Vr2dDisplay.java b/services/core/java/com/android/server/vr/Vr2dDisplay.java index 39d7a1555dfce..769749038315c 100644 --- a/services/core/java/com/android/server/vr/Vr2dDisplay.java +++ b/services/core/java/com/android/server/vr/Vr2dDisplay.java @@ -177,7 +177,7 @@ class Vr2dDisplay { } } } - }, intentFilter); + }, intentFilter, Context.RECEIVER_NOT_EXPORTED); } }