Merge "Change hotspot security to WPA3-Transition when switching from 6GHz" into main
diff --git a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
index e78773e..7a001ca 100644
--- a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
+++ b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
@@ -22,6 +22,7 @@
import static android.net.wifi.SoftApConfiguration.BAND_6GHZ;
import static android.net.wifi.SoftApConfiguration.SECURITY_TYPE_OPEN;
import static android.net.wifi.SoftApConfiguration.SECURITY_TYPE_WPA3_SAE;
+import static android.net.wifi.SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION;
import static android.net.wifi.WifiAvailableChannel.OP_MODE_SAP;
import static android.net.wifi.WifiManager.WIFI_AP_STATE_DISABLED;
import static android.net.wifi.WifiManager.WIFI_AP_STATE_ENABLED;
@@ -343,16 +344,23 @@
log("setSpeedType(), setPassphrase(SECURITY_TYPE_WPA3_SAE)");
configBuilder.setPassphrase(generatePassword(config), SECURITY_TYPE_WPA3_SAE);
}
- } else if (speedType == SPEED_5GHZ) {
- log("setSpeedType(), setBand(BAND_2GHZ_5GHZ)");
- configBuilder.setBand(BAND_2GHZ_5GHZ);
- } else if (mIsDualBand) {
- log("setSpeedType(), setBands(BAND_2GHZ + BAND_2GHZ_5GHZ)");
- int[] bands = {BAND_2GHZ, BAND_2GHZ_5GHZ};
- configBuilder.setBands(bands);
} else {
- log("setSpeedType(), setBand(BAND_2GHZ)");
- configBuilder.setBand(BAND_2GHZ);
+ if (speedType == SPEED_5GHZ) {
+ log("setSpeedType(), setBand(BAND_2GHZ_5GHZ)");
+ configBuilder.setBand(BAND_2GHZ_5GHZ);
+ } else if (mIsDualBand) {
+ log("setSpeedType(), setBands(BAND_2GHZ + BAND_2GHZ_5GHZ)");
+ int[] bands = {BAND_2GHZ, BAND_2GHZ_5GHZ};
+ configBuilder.setBands(bands);
+ } else {
+ log("setSpeedType(), setBand(BAND_2GHZ)");
+ configBuilder.setBand(BAND_2GHZ);
+ }
+ // Set the security type back to WPA2/WPA3 if we're moving from 6GHz to something else.
+ if ((config.getBand() & BAND_6GHZ) != 0) {
+ configBuilder.setPassphrase(
+ generatePassword(config), SECURITY_TYPE_WPA3_SAE_TRANSITION);
+ }
}
setSoftApConfiguration(configBuilder.build());
}
diff --git a/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java b/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java
index 20b3075..a97b1a0 100644
--- a/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java
+++ b/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java
@@ -497,6 +497,8 @@
SparseIntArray channels = mSoftApConfigCaptor.getValue().getChannels();
assertThat(channels.get(BAND_2GHZ, CHANNEL_NOT_FOUND)).isNotEqualTo(CHANNEL_NOT_FOUND);
assertThat(channels.get(BAND_2GHZ_5GHZ, CHANNEL_NOT_FOUND)).isNotEqualTo(CHANNEL_NOT_FOUND);
+ assertThat(mSoftApConfigCaptor.getValue().getSecurityType())
+ .isEqualTo(SECURITY_TYPE_WPA3_SAE_TRANSITION);
}
@Test