Make WifiDppEnrolleeActivity launches explicit

Bug: 180518134
Test: make RunSettingsRoboTests \
ROBOTEST_FILTER=WifiDppUtilsTest\|WifiDialogActivityTest
Test: Manually verified b/180518134 attack is no longer possible

Change-Id: I8c4e1e17117582c78671d0e4658bd87715a9a046
(cherry picked from commit 59c0a7bc63)
This commit is contained in:
Linus Tufvesson
2021-07-05 18:02:10 +01:00
committed by Weng Su
parent a93796f7a3
commit 553ca3e58d
7 changed files with 22 additions and 9 deletions

View File

@@ -109,7 +109,8 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf
final String ssid = ssidEditText.getText().toString();
// Launch QR code scanner to join a network.
startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid),
startActivityForResult(
WifiDppUtils.getEnrolleeQrCodeScannerIntent(view.getContext(), ssid),
REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
}
}

View File

@@ -59,7 +59,7 @@ public class AddWifiNetworkPreference extends Preference {
getContext().getString(R.string.wifi_dpp_scan_qr_code));
scanButton.setOnClickListener(view -> {
getContext().startActivity(
WifiDppUtils.getEnrolleeQrCodeScannerIntent(/* ssid */ null));
WifiDppUtils.getEnrolleeQrCodeScannerIntent(getContext(), /* ssid */ null));
});
}

View File

@@ -309,7 +309,7 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog
@Override
public void onScan(WifiDialog2 dialog, String ssid) {
Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid);
Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(dialog.getContext(), ssid);
WizardManagerHelper.copyWizardManagerExtras(mIntent, intent);
// Launch QR code scanner to join a network.
@@ -318,7 +318,7 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog
@Override
public void onScan(WifiDialog dialog, String ssid) {
Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid);
Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(dialog.getContext(), ssid);
WizardManagerHelper.copyWizardManagerExtras(mIntent, intent);
// Launch QR code scanner to join a network.

View File

@@ -1035,7 +1035,8 @@ public class WifiSettings extends RestrictedSettingsFragment
@Override
public void onScan(WifiDialog2 dialog, String ssid) {
// Launch QR code scanner to join a network.
startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid),
startActivityForResult(
WifiDppUtils.getEnrolleeQrCodeScannerIntent(dialog.getContext(), ssid),
REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
}

View File

@@ -114,9 +114,9 @@ public class WifiDppUtils {
* @param ssid The data corresponding to {@code WifiConfiguration} SSID
* @return Intent for launching QR code scanner
*/
public static Intent getEnrolleeQrCodeScannerIntent(String ssid) {
final Intent intent = new Intent(
WifiDppEnrolleeActivity.ACTION_ENROLLEE_QR_CODE_SCANNER);
public static Intent getEnrolleeQrCodeScannerIntent(Context context, String ssid) {
final Intent intent = new Intent(context, WifiDppEnrolleeActivity.class);
intent.setAction(WifiDppEnrolleeActivity.ACTION_ENROLLEE_QR_CODE_SCANNER);
if (!TextUtils.isEmpty(ssid)) {
intent.putExtra(EXTRA_WIFI_SSID, ssid);
}