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

Commit c72848f9 authored by Sudheer Shanka's avatar Sudheer Shanka
Browse files

Send targeted broadcasts to prevent other apps from receiving them.

When sending broadcasts ACTION_SNOOZE_WARNING in NPMS, which may
contain sensitive information, explicitly set the package name
that should receive it to prevent other apps from receiving them.

Bug: 177931370
Test: manual
Change-Id: I11d736771d859d2af27d5c84a502ab038974e2e2
Merged-In: I11d736771d859d2af27d5c84a502ab038974e2e2
(cherry picked from commit 1494979a)
parent 208512ae
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -1318,7 +1318,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {

                builder.setSmallIcon(R.drawable.stat_notify_error);

                final Intent snoozeIntent = buildSnoozeWarningIntent(policy.template);
                final Intent snoozeIntent = buildSnoozeWarningIntent(policy.template,
                        mContext.getPackageName());
                builder.setDeleteIntent(PendingIntent.getBroadcast(
                        mContext, 0, snoozeIntent, PendingIntent.FLAG_UPDATE_CURRENT));

@@ -1384,7 +1385,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {

                builder.setSmallIcon(R.drawable.stat_notify_error);

                final Intent snoozeIntent = buildSnoozeRapidIntent(policy.template);
                final Intent snoozeIntent = buildSnoozeRapidIntent(policy.template,
                        mContext.getPackageName());
                builder.setDeleteIntent(PendingIntent.getBroadcast(
                        mContext, 0, snoozeIntent, PendingIntent.FLAG_UPDATE_CURRENT));

@@ -4677,17 +4679,19 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        return new Intent(ACTION_ALLOW_BACKGROUND);
    }

    private static Intent buildSnoozeWarningIntent(NetworkTemplate template) {
    private static Intent buildSnoozeWarningIntent(NetworkTemplate template, String targetPackage) {
        final Intent intent = new Intent(ACTION_SNOOZE_WARNING);
        intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
        intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
        intent.setPackage(targetPackage);
        return intent;
    }

    private static Intent buildSnoozeRapidIntent(NetworkTemplate template) {
    private static Intent buildSnoozeRapidIntent(NetworkTemplate template, String targetPackage) {
        final Intent intent = new Intent(ACTION_SNOOZE_RAPID);
        intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
        intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
        intent.setPackage(targetPackage);
        return intent;
    }