From 9ba74049fc08851003da788c7af1337f1a83eb54 Mon Sep 17 00:00:00 2001 From: Tim Peng Date: Mon, 21 Dec 2020 16:29:05 +0800 Subject: [PATCH 1/5] Add the explicitly mutable flag for creating a PendingIntent in MediaOutputSlice Bug: 175124820 Test: make -j50 RunSettingsRoboTests Merged-In: Ic37b37bdbe6de6bdbad741985d3a920334240d80 Change-Id: I49bc2f1fe903422e08ef3b98993f1b60df458d9c --- src/com/android/settings/media/MediaOutputSlice.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java index 2cc7a49b4e6..ae7e0e80a50 100644 --- a/src/com/android/settings/media/MediaOutputSlice.java +++ b/src/com/android/settings/media/MediaOutputSlice.java @@ -147,7 +147,8 @@ public class MediaOutputSlice implements CustomSliceable { .setSourceMetricsCategory(SettingsEnums.PANEL_MEDIA_OUTPUT) .toIntent(); final SliceAction primarySliceAction = SliceAction.createDeeplink( - PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */), + PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, + PendingIntent.FLAG_IMMUTABLE), IconCompat.createWithResource(mContext, R.drawable.ic_add_24dp/*ic_add_blue_24dp*/), ListBuilder.ICON_IMAGE, mContext.getText(R.string.bluetooth_pairing_pref_title)); @@ -248,7 +249,8 @@ public class MediaOutputSlice implements CustomSliceable { .putExtra(MEDIA_DEVICE_ID, id) .setClass(mContext, SliceBroadcastReceiver.class); - return PendingIntent.getBroadcast(mContext, requestCode, intent, 0); + return PendingIntent.getBroadcast(mContext, requestCode, intent, + PendingIntent.FLAG_IMMUTABLE); } private SliceAction getEndItemSliceAction() { @@ -261,7 +263,8 @@ public class MediaOutputSlice implements CustomSliceable { ? 0 : getWorker().getPackageName().hashCode(); return SliceAction.createDeeplink( - PendingIntent.getActivity(mContext, requestCode, intent, 0 /* flags */), + PendingIntent.getActivity(mContext, requestCode, intent, + PendingIntent.FLAG_IMMUTABLE), IconCompat.createWithResource(mContext, R.drawable.ic_add_blue_24dp), ListBuilder.ICON_IMAGE, mContext.getText(R.string.add)); @@ -350,7 +353,7 @@ public class MediaOutputSlice implements CustomSliceable { intent.putExtra(MEDIA_DEVICE_ID, id); intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); return PendingIntent.getBroadcast(context, requestCode, intent, - PendingIntent.FLAG_UPDATE_CURRENT); + PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); } @Override From 58b0f2d5b3ab4e7002b870aedc971a2d8d9e8e44 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 29 Jan 2021 17:24:51 +0800 Subject: [PATCH 2/5] [Security Report] Fix Settings WifiScanModeActivity Overlaid issue - Disallowed non system overlay windows - Screenshot https://screenshot.googleplex.com/77fJ9QN6pV4zFYc Bug: 174047492 Test: manual test Merged-In: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff Change-Id: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff (cherry picked from commit d47d8e4fc5959ea5cc57dc074d572a81ec6ddcb0) --- src/com/android/settings/wifi/WifiScanModeActivity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/com/android/settings/wifi/WifiScanModeActivity.java b/src/com/android/settings/wifi/WifiScanModeActivity.java index 024dc104125..9d502810d5a 100644 --- a/src/com/android/settings/wifi/WifiScanModeActivity.java +++ b/src/com/android/settings/wifi/WifiScanModeActivity.java @@ -25,6 +25,7 @@ import android.content.pm.PackageManager; import android.net.wifi.WifiManager; import android.os.Bundle; import android.text.TextUtils; +import android.view.WindowManager; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; @@ -43,6 +44,8 @@ public class WifiScanModeActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getWindow().addSystemFlags( + WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); Intent intent = getIntent(); if (savedInstanceState == null) { if (intent != null && WifiManager.ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE From faa5f6b5f6b67421f1327690f358f2fc5ee12c33 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 29 Jan 2021 17:24:51 +0800 Subject: [PATCH 3/5] [Security Report] Fix Settings WifiScanModeActivity Overlaid issue - Disallowed non system overlay windows - Screenshot https://screenshot.googleplex.com/77fJ9QN6pV4zFYc Bug: 174047492 Test: manual test Merged-In: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff Change-Id: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff (cherry picked from commit d47d8e4fc5959ea5cc57dc074d572a81ec6ddcb0) --- src/com/android/settings/wifi/WifiScanModeActivity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/com/android/settings/wifi/WifiScanModeActivity.java b/src/com/android/settings/wifi/WifiScanModeActivity.java index 53427299df1..33cedde7c4b 100644 --- a/src/com/android/settings/wifi/WifiScanModeActivity.java +++ b/src/com/android/settings/wifi/WifiScanModeActivity.java @@ -26,6 +26,7 @@ import android.net.wifi.WifiManager; import android.os.Bundle; import android.provider.Settings; import android.text.TextUtils; +import android.view.WindowManager; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; @@ -44,6 +45,8 @@ public class WifiScanModeActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getWindow().addSystemFlags( + WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); Intent intent = getIntent(); if (savedInstanceState == null) { if (intent != null && intent.getAction() From 32d5d3a3a34fae28410a77b058f75371d15019e6 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 29 Jan 2021 17:24:51 +0800 Subject: [PATCH 4/5] [Security Report] Fix Settings WifiScanModeActivity Overlaid issue - Disallowed non system overlay windows - Screenshot https://screenshot.googleplex.com/77fJ9QN6pV4zFYc Bug: 174047492 Test: manual test Merged-In: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff Change-Id: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff (cherry picked from commit d47d8e4fc5959ea5cc57dc074d572a81ec6ddcb0) --- src/com/android/settings/wifi/WifiScanModeActivity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/com/android/settings/wifi/WifiScanModeActivity.java b/src/com/android/settings/wifi/WifiScanModeActivity.java index 2c0d0d5713d..7b4fa7a91c2 100644 --- a/src/com/android/settings/wifi/WifiScanModeActivity.java +++ b/src/com/android/settings/wifi/WifiScanModeActivity.java @@ -27,6 +27,7 @@ import android.content.pm.PackageManager; import android.net.wifi.WifiManager; import android.os.Bundle; import android.provider.Settings; +import android.view.WindowManager; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; @@ -42,6 +43,8 @@ public class WifiScanModeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getWindow().addSystemFlags( + WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); Intent intent = getIntent(); if (savedInstanceState == null) { if (intent != null && intent.getAction() From 05d6fa9bcb90886ac2611f86bb7d2af7078eb3ad Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 29 Jan 2021 17:24:51 +0800 Subject: [PATCH 5/5] [Security Report] Fix Settings WifiScanModeActivity Overlaid issue - Disallowed non system overlay windows - Screenshot https://screenshot.googleplex.com/77fJ9QN6pV4zFYc Bug: 174047492 Test: manual test Merged-In: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff Change-Id: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff (cherry picked from commit d47d8e4fc5959ea5cc57dc074d572a81ec6ddcb0) --- src/com/android/settings/wifi/WifiScanModeActivity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/com/android/settings/wifi/WifiScanModeActivity.java b/src/com/android/settings/wifi/WifiScanModeActivity.java index 53427299df1..33cedde7c4b 100644 --- a/src/com/android/settings/wifi/WifiScanModeActivity.java +++ b/src/com/android/settings/wifi/WifiScanModeActivity.java @@ -26,6 +26,7 @@ import android.net.wifi.WifiManager; import android.os.Bundle; import android.provider.Settings; import android.text.TextUtils; +import android.view.WindowManager; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; @@ -44,6 +45,8 @@ public class WifiScanModeActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getWindow().addSystemFlags( + WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); Intent intent = getIntent(); if (savedInstanceState == null) { if (intent != null && intent.getAction()