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
This commit is contained in:
@@ -1511,7 +1511,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
|
|
||||||
builder.setSmallIcon(R.drawable.stat_notify_error);
|
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(
|
builder.setDeleteIntent(PendingIntent.getBroadcast(
|
||||||
mContext, 0, snoozeIntent, FLAG_UPDATE_CURRENT | FLAG_IMMUTABLE));
|
mContext, 0, snoozeIntent, FLAG_UPDATE_CURRENT | FLAG_IMMUTABLE));
|
||||||
|
|
||||||
@@ -1597,7 +1598,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
|
|
||||||
builder.setSmallIcon(R.drawable.stat_notify_error);
|
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(
|
builder.setDeleteIntent(PendingIntent.getBroadcast(
|
||||||
mContext, 0, snoozeIntent, FLAG_UPDATE_CURRENT | FLAG_IMMUTABLE));
|
mContext, 0, snoozeIntent, FLAG_UPDATE_CURRENT | FLAG_IMMUTABLE));
|
||||||
|
|
||||||
@@ -5478,17 +5480,19 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
return new Intent(ACTION_ALLOW_BACKGROUND);
|
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);
|
final Intent intent = new Intent(ACTION_SNOOZE_WARNING);
|
||||||
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
|
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
|
||||||
intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
|
intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
|
||||||
|
intent.setPackage(targetPackage);
|
||||||
return intent;
|
return intent;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Intent buildSnoozeRapidIntent(NetworkTemplate template) {
|
private static Intent buildSnoozeRapidIntent(NetworkTemplate template, String targetPackage) {
|
||||||
final Intent intent = new Intent(ACTION_SNOOZE_RAPID);
|
final Intent intent = new Intent(ACTION_SNOOZE_RAPID);
|
||||||
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
|
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
|
||||||
intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
|
intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
|
||||||
|
intent.setPackage(targetPackage);
|
||||||
return intent;
|
return intent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user