Merge "Disable PendingIntent background activity launch" into tm-dev am: 05494c71f8
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/18610590
Change-Id: I29e55026ae07fcadfda63619fe9f888b7f30871f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java
index c806c62..638e8ec 100644
--- a/service/src/com/android/server/ConnectivityService.java
+++ b/service/src/com/android/server/ConnectivityService.java
@@ -8348,7 +8348,15 @@
mPendingIntentWakeLock.acquire();
try {
if (DBG) log("Sending " + pendingIntent);
- pendingIntent.send(mContext, 0, intent, this /* onFinished */, null /* Handler */);
+ final BroadcastOptions options = BroadcastOptions.makeBasic();
+ if (SdkLevel.isAtLeastT()) {
+ // Explicitly disallow the receiver from starting activities, to prevent apps from
+ // utilizing the PendingIntent as a backdoor to do this.
+ options.setPendingIntentBackgroundActivityLaunchAllowed(false);
+ }
+ pendingIntent.send(mContext, 0, intent, this /* onFinished */, null /* Handler */,
+ null /* requiredPermission */,
+ SdkLevel.isAtLeastT() ? options.toBundle() : null);
} catch (PendingIntent.CanceledException e) {
if (DBG) log(pendingIntent + " was not sent, it had been canceled.");
mPendingIntentWakeLock.release();