summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Daichi Ueura <daichi.ueura@sony.com> 2018-09-29 19:08:37 +0900
committer Oscar Shu <xshu@google.com> 2018-11-12 23:18:25 +0000
commit4e7bbd8a642fd0d8a15f5bbd3bc8526818c5a8e1 (patch)
treec7eeead57a6c8ddc90c529446cf1509357979589
parent67dd91e6a301c9dd15f4f95ac715064534296a53 (diff)
Handle hiddenSSID as one of soft ap config for backup & restore
In addition to the change to persist hiddenSSID, this CL takes care of backup and restore use case for hiddenSSID as one of soft ap config. cherry-picked from aog/773385 Bug: 117052143 Test: Unit tests Change-Id: I4af897f466c5d8fea66aec93e39faf3f13bd23fb
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java6
-rw-r--r--wifi/tests/src/android/net/wifi/WifiConfigurationTest.java30
2 files changed, 35 insertions, 1 deletions
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 05747163550e..6d86fa5afc11 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -57,7 +57,7 @@ public class WifiConfiguration implements Parcelable {
/**
* Current Version of the Backup Serializer.
*/
- private static final int BACKUP_VERSION = 2;
+ private static final int BACKUP_VERSION = 3;
/** {@hide} */
public static final String ssidVarName = "ssid";
/** {@hide} */
@@ -2286,6 +2286,7 @@ public class WifiConfiguration implements Parcelable {
out.writeInt(apChannel);
BackupUtils.writeString(out, preSharedKey);
out.writeInt(getAuthType());
+ out.writeBoolean(hiddenSSID);
return baos.toByteArray();
}
@@ -2308,6 +2309,9 @@ public class WifiConfiguration implements Parcelable {
config.apChannel = in.readInt();
config.preSharedKey = BackupUtils.readString(in);
config.allowedKeyManagement.set(in.readInt());
+ if (version >= 3) {
+ config.hiddenSSID = in.readBoolean();
+ }
return config;
}
}
diff --git a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
index 3b9f93e503be..73fe75687c87 100644
--- a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import android.net.MacAddress;
+import android.net.wifi.WifiConfiguration.KeyMgmt;
import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
import android.os.Parcel;
import android.support.test.filters.SmallTest;
@@ -30,6 +31,9 @@ import android.support.test.filters.SmallTest;
import org.junit.Before;
import org.junit.Test;
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+
/**
* Unit tests for {@link android.net.wifi.WifiConfiguration}.
*/
@@ -239,4 +243,30 @@ public class WifiConfigurationTest {
config.setRandomizedMacAddress(null);
assertEquals(defaultMac, config.getRandomizedMacAddress());
}
+
+ /**
+ * Verifies that the serialization/de-serialization for softap config works.
+ */
+ @Test
+ public void testSoftApConfigBackupAndRestore() throws Exception {
+ WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "TestAP";
+ config.apBand = WifiConfiguration.AP_BAND_5GHZ;
+ config.apChannel = 40;
+ config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
+ config.preSharedKey = "TestPsk";
+ config.hiddenSSID = true;
+
+ byte[] data = config.getBytesForBackup();
+ ByteArrayInputStream bais = new ByteArrayInputStream(data);
+ DataInputStream in = new DataInputStream(bais);
+ WifiConfiguration restoredConfig = WifiConfiguration.getWifiConfigFromBackup(in);
+
+ assertEquals(config.SSID, restoredConfig.SSID);
+ assertEquals(config.preSharedKey, restoredConfig.preSharedKey);
+ assertEquals(config.getAuthType(), restoredConfig.getAuthType());
+ assertEquals(config.apBand, restoredConfig.apBand);
+ assertEquals(config.apChannel, restoredConfig.apChannel);
+ assertEquals(config.hiddenSSID, restoredConfig.hiddenSSID);
+ }
}