diff options
author | lesl <lesl@google.com> | 2020-06-19 17:47:13 +0800 |
---|---|---|
committer | lesl <lesl@google.com> | 2020-06-19 20:56:52 +0800 |
commit | 231eea1a1d10e0e23b4a86241b2464c4c36cd7f1 (patch) | |
tree | 9d398d50a644d6de5ff42a7323e86b61854dd985 | |
parent | bb47b319352980ed1f65336cece756707ccc7e1b (diff) |
wifi: Add new overlay to control reset channel config.
The device might not support SAP channel customization (UI)
or forced channel might not work in some countries.
Add overlay to let OEM to decide to reset it during cloud restore.
Note: Default will reset channel configuration
Bug: 159325231
Test: atest FrameworksWifiTests
Change-Id: Id9db5bca469a98c555223c26ad9b37ead7389f9e
-rw-r--r-- | service/java/com/android/server/wifi/WifiApConfigStore.java | 10 | ||||
-rw-r--r-- | service/res/values/config.xml | 3 | ||||
-rw-r--r-- | service/res/values/overlayable.xml | 1 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiApConfigStoreTest.java | 5 |
4 files changed, 19 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiApConfigStore.java b/service/java/com/android/server/wifi/WifiApConfigStore.java index 4921f8c7d..961cbbd3b 100644 --- a/service/java/com/android/server/wifi/WifiApConfigStore.java +++ b/service/java/com/android/server/wifi/WifiApConfigStore.java @@ -183,6 +183,16 @@ public class WifiApConfigStore { SoftApConfiguration.SECURITY_TYPE_WPA2_PSK); Log.e(TAG, "Device doesn't support WPA3-SAE, reset config to WPA2"); } + + if (mContext.getResources().getBoolean(R.bool.config_wifiSoftapResetChannelConfig)) { + // The device might not support customize channel or forced channel might not + // work in some countries. Need to reset it. + if (config.getChannel() != 0) { + // Add 2.4G by default + configBuilder.setBand(SoftApConfiguration.BAND_2GHZ | config.getBand()); + Log.i(TAG, "Reset SAP channel configuration"); + } + } mWifiMetrics.noteSoftApConfigReset(config, configBuilder.build()); return configBuilder.build(); } diff --git a/service/res/values/config.xml b/service/res/values/config.xml index ad454c10a..7e35eed19 100644 --- a/service/res/values/config.xml +++ b/service/res/values/config.xml @@ -137,6 +137,9 @@ <!-- Integer indicating maximum hardware supported client number of soft ap --> <integer translatable="false" name="config_wifiHardwareSoftapMaxClientCount">16</integer> + <!-- boolean indicating whether reset channel configuration or not during cloud configuration restore --> + <bool translatable="false" name ="config_wifiSoftapResetChannelConfig">true</bool> + <!-- List of allowed channels in 2GHz band for softap. If the device doesn't want to restrict channels this should be empty. Values is a comma separated channel string and/or channel range string like '1-6,11'. --> diff --git a/service/res/values/overlayable.xml b/service/res/values/overlayable.xml index cab5bbfb4..bf96fde62 100644 --- a/service/res/values/overlayable.xml +++ b/service/res/values/overlayable.xml @@ -57,6 +57,7 @@ <item type="integer" name="config_wifiFrameworkScoreLowRssiThreshold6ghz" /> <item type="integer" name="config_wifiFrameworkScoreGoodRssiThreshold6ghz" /> <item type="integer" name="config_wifiFrameworkSoftApShutDownTimeoutMilliseconds" /> + <item type="bool" name="config_wifiSoftapResetChannelConfig" /> <item type="string" name="config_wifiSoftap2gChannelList" /> <item type="string" name="config_wifiSoftap5gChannelList" /> <item type="string" name="config_wifiSoftap6gChannelList" /> diff --git a/tests/wifitests/src/com/android/server/wifi/WifiApConfigStoreTest.java b/tests/wifitests/src/com/android/server/wifi/WifiApConfigStoreTest.java index 50fd4d8c1..bc646c1eb 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiApConfigStoreTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiApConfigStoreTest.java @@ -661,16 +661,21 @@ public class WifiApConfigStoreTest extends WifiBaseTest { public void testResetToDefaultForUnsupportedConfig() throws Exception { mResources.setBoolean(R.bool.config_wifiSofapClientForceDisconnectSupported, false); mResources.setBoolean(R.bool.config_wifi_softap_sae_supported, false); + mResources.setBoolean(R.bool.config_wifiSoftapResetChannelConfig, true); SoftApConfiguration sae_config = new SoftApConfiguration.Builder() .setPassphrase("secretsecret", SoftApConfiguration.SECURITY_TYPE_WPA3_SAE) .setMaxNumberOfClients(10) .setClientControlByUserEnabled(true) + .setChannel(149, SoftApConfiguration.BAND_5GHZ) .build(); WifiApConfigStore store = createWifiApConfigStore(); SoftApConfiguration resetedConfig = store.resetToDefaultForUnsupportedConfig(sae_config); assertEquals(resetedConfig.getMaxNumberOfClients(), 0); assertFalse(resetedConfig.isClientControlByUserEnabled()); + assertEquals(resetedConfig.getChannel(), 0); + assertEquals(resetedConfig.getBand(), + SoftApConfiguration.BAND_2GHZ | SoftApConfiguration.BAND_5GHZ); verify(mWifiMetrics).noteSoftApConfigReset(sae_config, resetedConfig); } |