Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 911f7e7a authored by Michael Groover's avatar Michael Groover
Browse files

Add unaudited exported flag to exposed runtime receivers

Android T allows apps to declare a runtime receiver as not exported
by invoking registerReceiver with a new RECEIVER_NOT_EXPORTED flag;
receivers registered with this flag will only receive broadcasts from
the platform and the app itself. However to ensure developers can
properly protect their receivers, all apps targeting T or later
registering a receiver for non-system broadcasts must specify either
the exported or not exported flag when invoking #registerReceiver;
if one of these flags is not provided, the platform will throw a
SecurityException. This commit updates all the exposed receivers
with a new RECEIVER_EXPORTED_UNAUDITED flag to maintain the existing
behavior of exporting the receiver while also flagging the receiver
for audit before the T release.

Bug: 161145287
Test: Build
Change-Id: Ie97372efebd8258d9a4c503771d55109a85e6ae9
parent ad86e310
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -58,7 +58,8 @@ public class WorkModePreferenceController extends BasePreferenceController imple

    @Override
    public void onStart() {
        mContext.registerReceiver(mReceiver, mIntentFilter);
        mContext.registerReceiver(mReceiver, mIntentFilter,
                Context.RECEIVER_EXPORTED_UNAUDITED);
    }

    @Override
+2 −1
Original line number Diff line number Diff line
@@ -52,7 +52,8 @@ public class AlwaysDiscoverable extends BroadcastReceiver {
        if (mStarted) {
            return;
        }
        mContext.registerReceiver(this, mIntentFilter);
        mContext.registerReceiver(this, mIntentFilter,
                Context.RECEIVER_EXPORTED_UNAUDITED);
        mStarted = true;
        if (mBluetoothAdapter.getScanMode()
                != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
+2 −1
Original line number Diff line number Diff line
@@ -115,7 +115,8 @@ public final class BluetoothEnabler implements SwitchWidgetController.OnSwitchCh
        }

        mSwitchController.startListening();
        mContext.registerReceiver(mReceiver, mIntentFilter);
        mContext.registerReceiver(mReceiver, mIntentFilter,
                Context.RECEIVER_EXPORTED_UNAUDITED);
        mValidListener = true;
    }

+2 −1
Original line number Diff line number Diff line
@@ -57,7 +57,8 @@ public class AddDevicePreferenceController extends BasePreferenceController

    @Override
    public void onStart() {
        mContext.registerReceiver(mReceiver, mIntentFilter);
        mContext.registerReceiver(mReceiver, mIntentFilter,
                Context.RECEIVER_EXPORTED_UNAUDITED);
    }

    @Override
+2 −1
Original line number Diff line number Diff line
@@ -111,7 +111,8 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
    public void onStart() {
        mBluetoothDeviceUpdater.registerCallback();
        mSavedDockUpdater.registerCallback();
        mContext.registerReceiver(mReceiver, mIntentFilter);
        mContext.registerReceiver(mReceiver, mIntentFilter,
                Context.RECEIVER_EXPORTED_UNAUDITED);
        mBluetoothDeviceUpdater.refreshPreference();
    }

Loading