Added FLAG_IMMUTABLE flag for security purposes
Prevent the intent to be altered by the maleware.
Bug: 155094269
Test: Telephony sanity tests
Merged-In: Ice6e438eb437d377f8c5f26891938302fcb0c8d4
Change-Id: Ice6e438eb437d377f8c5f26891938302fcb0c8d4
(cherry picked from commit 21e03356b28be08e2d5aeac15a446f820f95fb70)
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index 38d3852..d2623ea 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -2278,7 +2278,7 @@
}
PendingIntent alarmIntent = PendingIntent.getBroadcast(mPhone.getContext(), 0,
- intent, PendingIntent.FLAG_UPDATE_CURRENT);
+ intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
apnContext.setReconnectIntent(alarmIntent);
// Use the exact timer instead of the inexact one to provide better user experience.
@@ -4785,7 +4785,7 @@
Intent intent = new Intent(INTENT_DATA_STALL_ALARM);
intent.putExtra(DATA_STALL_ALARM_TAG_EXTRA, mDataStallAlarmTag);
mDataStallAlarmIntent = PendingIntent.getBroadcast(mPhone.getContext(), 0, intent,
- PendingIntent.FLAG_UPDATE_CURRENT);
+ PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime() + delayInMs, mDataStallAlarmIntent);
} else {
@@ -4855,7 +4855,7 @@
Intent intent = new Intent(INTENT_PROVISIONING_APN_ALARM);
intent.putExtra(PROVISIONING_APN_ALARM_TAG_EXTRA, mProvisioningApnAlarmTag);
mProvisioningApnAlarmIntent = PendingIntent.getBroadcast(mPhone.getContext(), 0, intent,
- PendingIntent.FLAG_UPDATE_CURRENT);
+ PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + delayInMs, mProvisioningApnAlarmIntent);
}