Merge "Fix pendingIntent in SettingsSliceProvider could be Hijacked" into rvc-dev am: e8f1c6c814
Change-Id: I975aec9390ad68c3b38a56f2c79d6c66030c9e95
This commit is contained in:
@@ -44,6 +44,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.zen.ZenModeSliceBuilder;
|
import com.android.settings.notification.zen.ZenModeSliceBuilder;
|
||||||
@@ -322,7 +323,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.Slice;
|
|||||||
import androidx.slice.SliceProvider;
|
import androidx.slice.SliceProvider;
|
||||||
import androidx.slice.widget.SliceLiveData;
|
import androidx.slice.widget.SliceLiveData;
|
||||||
|
|
||||||
|
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;
|
||||||
@@ -530,8 +531,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