Merge "Fix pendingIntent in SettingsSliceProvider could be Hijacked" into qt-qpr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3c137d807d
@@ -42,6 +42,7 @@ import androidx.slice.Slice;
|
|||||||
import androidx.slice.SliceProvider;
|
import androidx.slice.SliceProvider;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.bluetooth.BluetoothSliceBuilder;
|
import com.android.settings.bluetooth.BluetoothSliceBuilder;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.notification.ZenModeSliceBuilder;
|
import com.android.settings.notification.ZenModeSliceBuilder;
|
||||||
@@ -303,7 +304,8 @@ public class SettingsSliceProvider extends SliceProvider {
|
|||||||
@Override
|
@Override
|
||||||
public PendingIntent onCreatePermissionRequest(@NonNull Uri sliceUri,
|
public PendingIntent onCreatePermissionRequest(@NonNull Uri sliceUri,
|
||||||
@NonNull String callingPackage) {
|
@NonNull String callingPackage) {
|
||||||
final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS);
|
final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS)
|
||||||
|
.setPackage(Utils.SETTINGS_PACKAGE_NAME);
|
||||||
final PendingIntent noOpIntent = PendingIntent.getActivity(getContext(),
|
final PendingIntent noOpIntent = PendingIntent.getActivity(getContext(),
|
||||||
0 /* requestCode */, settingsIntent, 0 /* flags */);
|
0 /* requestCode */, settingsIntent, 0 /* flags */);
|
||||||
return noOpIntent;
|
return noOpIntent;
|
||||||
|
@@ -50,6 +50,7 @@ import androidx.slice.SliceProvider;
|
|||||||
import androidx.slice.widget.SliceLiveData;
|
import androidx.slice.widget.SliceLiveData;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.testutils.DatabaseTestUtils;
|
import com.android.settings.testutils.DatabaseTestUtils;
|
||||||
import com.android.settings.testutils.FakeToggleController;
|
import com.android.settings.testutils.FakeToggleController;
|
||||||
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
|
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
|
||||||
@@ -450,8 +451,10 @@ public class SettingsSliceProviderTest {
|
|||||||
public void onCreatePermissionRequest_returnsSettingIntent() {
|
public void onCreatePermissionRequest_returnsSettingIntent() {
|
||||||
final PendingIntent pendingIntent = mProvider.onCreatePermissionRequest(
|
final PendingIntent pendingIntent = mProvider.onCreatePermissionRequest(
|
||||||
CustomSliceRegistry.FLASHLIGHT_SLICE_URI, "com.android.whaaaat");
|
CustomSliceRegistry.FLASHLIGHT_SLICE_URI, "com.android.whaaaat");
|
||||||
|
final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS)
|
||||||
|
.setPackage(Utils.SETTINGS_PACKAGE_NAME);
|
||||||
PendingIntent settingsPendingIntent =
|
PendingIntent settingsPendingIntent =
|
||||||
PendingIntent.getActivity(mContext, 0, new Intent(Settings.ACTION_SETTINGS), 0);
|
PendingIntent.getActivity(mContext, 0, settingsIntent, 0);
|
||||||
|
|
||||||
assertThat(pendingIntent).isEqualTo(settingsPendingIntent);
|
assertThat(pendingIntent).isEqualTo(settingsPendingIntent);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user