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

Commit 0bd85cfe authored by sallyyuen's avatar sallyyuen
Browse files

Add SELF permission to SystemActions receiver

Listen to only internal broadcasts with this permission. Also
set an explicit package with setPackage

Bug: 155968134
Test: Sent a test intent that was denied. Successfully triggered system
actions with TalkBack

Change-Id: I65b8eb060288a32b014f3fcfda11b2273015041e
parent ffc478d6
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -128,6 +128,8 @@ public class SystemActions extends SystemUI {
    public static final int SYSTEM_ACTION_ID_ACCESSIBILITY_SHORTCUT =
            AccessibilityService.GLOBAL_ACTION_ACCESSIBILITY_SHORTCUT; // 13

    private static final String PERMISSION_SELF = "com.android.systemui.permission.SELF";

    private Recents mRecents;
    private StatusBar mStatusBar;
    private SystemActionsBroadcastReceiver mReceiver;
@@ -147,7 +149,11 @@ public class SystemActions extends SystemUI {

    @Override
    public void start() {
        mContext.registerReceiverForAllUsers(mReceiver, mReceiver.createIntentFilter(), null, null);
        mContext.registerReceiverForAllUsers(
                mReceiver,
                mReceiver.createIntentFilter(),
                PERMISSION_SELF,
                null);
        registerActions();
    }

@@ -397,6 +403,7 @@ public class SystemActions extends SystemUI {
                case INTENT_ACTION_ACCESSIBILITY_BUTTON_CHOOSER:
                case INTENT_ACTION_ACCESSIBILITY_SHORTCUT: {
                    Intent intent = new Intent(intentAction);
                    intent.setPackage(context.getPackageName());
                    return PendingIntent.getBroadcast(context, 0, intent, 0);
                }
                default: