From 843616eb6921267a879907a6ed16c7b2ffe09958 Mon Sep 17 00:00:00 2001 From: Yi-Ling Chuang Date: Thu, 7 Jan 2021 15:47:19 +0800 Subject: [PATCH] Add the mutability flag for SettingsSliceProvider Starting Android S, all PendingIntent should have the mutability flag assigned to prevent from vulnerability. Fixes: 172811605 Fixes: 172206649 Test: 1. Play on the slices in Settings search. 2. Make a permission request intent of Settings wifi slice in the slice-viewer app, clicking on it and make sure it gets redirect to Settings without crashes. Change-Id: I86f915bc062a6e632b5ca9c74e232db1036f08de --- src/com/android/settings/slices/SettingsSliceProvider.java | 2 +- .../com/android/settings/slices/SettingsSliceProviderTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java index 0c6205ff068..7c487baad03 100644 --- a/src/com/android/settings/slices/SettingsSliceProvider.java +++ b/src/com/android/settings/slices/SettingsSliceProvider.java @@ -343,7 +343,7 @@ public class SettingsSliceProvider extends SliceProvider { final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS) .setPackage(Utils.SETTINGS_PACKAGE_NAME); final PendingIntent noOpIntent = PendingIntent.getActivity(getContext(), - 0 /* requestCode */, settingsIntent, 0 /* flags */); + 0 /* requestCode */, settingsIntent, PendingIntent.FLAG_IMMUTABLE); return noOpIntent; } diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java index b5c6c446703..c2c67e31260 100644 --- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java +++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java @@ -565,7 +565,8 @@ public class SettingsSliceProviderTest { final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS) .setPackage(Utils.SETTINGS_PACKAGE_NAME); PendingIntent settingsPendingIntent = - PendingIntent.getActivity(mContext, 0, settingsIntent, 0); + PendingIntent.getActivity(mContext, 0, settingsIntent, + PendingIntent.FLAG_IMMUTABLE); assertThat(pendingIntent).isEqualTo(settingsPendingIntent); }