aware: Fix respondToPairingSetup with valid peerHandle am: 3748786c6b
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Wifi/+/2823350
Change-Id: I74e44be4c02fc08fdef59b9c1e56961fad1f5844
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/OWNERS b/OWNERS
index ea90cbf..4cb5c25 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,3 +1,4 @@
+# Bug component: 33618
include /WIFI_OWNERS
include platform/packages/modules/common:/MODULES_OWNERS # see go/mainline-owners-policy
diff --git a/framework/Android.bp b/framework/Android.bp
index 48845e2..ab0ecee 100644
--- a/framework/Android.bp
+++ b/framework/Android.bp
@@ -99,7 +99,6 @@
libs: [
"androidx.annotation_annotation",
"unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
- "framework-connectivity.stubs.module_lib",
"app-compat-annotations",
],
aidl: {
@@ -120,7 +119,10 @@
name: "framework-wifi-pre-jarjar",
defaults: ["framework-wifi-defaults"],
sdk_version: "module_current",
- libs: ["framework-annotations-lib"],
+ libs: [
+ "framework-annotations-lib",
+ "framework-connectivity.stubs.module_lib",
+ ],
installable: false,
visibility: [
"//frameworks/opt/net/wifi/service",
@@ -138,7 +140,19 @@
"framework-wifi-defaults",
],
- stub_only_libs: ["framework-connectivity.stubs.module_lib"],
+ impl_only_libs: [
+ "framework-connectivity.stubs.module_lib",
+ ],
+
+ public: {
+ libs: ["framework-connectivity.stubs"]
+ },
+ system: {
+ libs: ["framework-connectivity.stubs.system"]
+ },
+ module_lib: {
+ libs: ["framework-connectivity.stubs.module_lib"]
+ },
jarjar_rules: ":wifi-jarjar-rules",
diff --git a/framework/api/current.txt b/framework/api/current.txt
index abed5b1..524c2f4 100644
--- a/framework/api/current.txt
+++ b/framework/api/current.txt
@@ -158,7 +158,7 @@
@Deprecated public class WifiConfiguration implements android.os.Parcelable {
ctor @Deprecated public WifiConfiguration();
ctor @Deprecated public WifiConfiguration(@NonNull android.net.wifi.WifiConfiguration);
- method public int describeContents();
+ method @Deprecated public int describeContents();
method @Deprecated public android.net.ProxyInfo getHttpProxy();
method @Deprecated @NonNull public String getKey();
method @Deprecated public int getMacRandomizationSetting();
@@ -169,7 +169,7 @@
method @Deprecated public void setIpConfiguration(@Nullable android.net.IpConfiguration);
method @Deprecated public void setMacRandomizationSetting(int);
method @Deprecated public void setSecurityParams(int);
- method public void writeToParcel(android.os.Parcel, int);
+ method @Deprecated public void writeToParcel(android.os.Parcel, int);
field @Deprecated public String BSSID;
field @Deprecated public String FQDN;
field @Deprecated public static final int RANDOMIZATION_AUTO = 3; // 0x3
@@ -373,6 +373,7 @@
method @NonNull public java.util.List<android.net.wifi.MloLink> getAffiliatedMloLinks();
method @Nullable public android.net.MacAddress getApMldMacAddress();
method @IntRange(from=android.net.wifi.MloLink.INVALID_MLO_LINK_ID, to=0xf) public int getApMloLinkId();
+ method public long getApplicableRedactions();
method @NonNull public java.util.List<android.net.wifi.MloLink> getAssociatedMloLinks();
method public String getBSSID();
method public int getCurrentSecurityType();
@@ -426,6 +427,7 @@
method @NonNull public android.net.wifi.WifiInfo.Builder setNetworkId(int);
method @NonNull public android.net.wifi.WifiInfo.Builder setRssi(int);
method @NonNull public android.net.wifi.WifiInfo.Builder setSsid(@NonNull byte[]);
+ method @FlaggedApi(android.net.wifi.WifiInfo.Flags.ADD_SUBSCRIPTION_ID) @NonNull public android.net.wifi.WifiInfo.Builder setSubscriptionId(int);
}
public class WifiManager {
diff --git a/framework/api/system-current.txt b/framework/api/system-current.txt
index 67d3b9a..3f45a2a 100644
--- a/framework/api/system-current.txt
+++ b/framework/api/system-current.txt
@@ -4,9 +4,11 @@
public final class CoexUnsafeChannel implements android.os.Parcelable {
ctor public CoexUnsafeChannel(int, int);
ctor public CoexUnsafeChannel(int, int, int);
+ method public int describeContents();
method public int getBand();
method public int getChannel();
method public int getPowerCapDbm();
+ method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.CoexUnsafeChannel> CREATOR;
field public static final int POWER_CAP_NONE = 2147483647; // 0x7fffffff
}
@@ -28,6 +30,7 @@
}
public final class QosPolicyParams implements android.os.Parcelable {
+ method public int describeContents();
method @Nullable public java.net.InetAddress getDestinationAddress();
method @IntRange(from=android.net.wifi.QosPolicyParams.DESTINATION_PORT_ANY, to=65535) public int getDestinationPort();
method @Nullable public int[] getDestinationPortRange();
@@ -40,6 +43,7 @@
method @Nullable public java.net.InetAddress getSourceAddress();
method @IntRange(from=android.net.DscpPolicy.SOURCE_PORT_ANY, to=65535) public int getSourcePort();
method public int getUserPriority();
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.QosPolicyParams> CREATOR;
field public static final int DESTINATION_PORT_ANY = -1; // 0xffffffff
field public static final int DIRECTION_DOWNLINK = 1; // 0x1
@@ -155,11 +159,15 @@
}
@Deprecated public static class RttManager.ParcelableRttParams implements android.os.Parcelable {
+ method @Deprecated public int describeContents();
+ method @Deprecated public void writeToParcel(android.os.Parcel, int);
field @Deprecated @NonNull public android.net.wifi.RttManager.RttParams[] mParams;
}
@Deprecated public static class RttManager.ParcelableRttResults implements android.os.Parcelable {
ctor @Deprecated public RttManager.ParcelableRttResults(android.net.wifi.RttManager.RttResult[]);
+ method @Deprecated public int describeContents();
+ method @Deprecated public void writeToParcel(android.os.Parcel, int);
field @Deprecated public android.net.wifi.RttManager.RttResult[] mResults;
}
@@ -184,6 +192,8 @@
@Deprecated public static class RttManager.RttCapabilities implements android.os.Parcelable {
ctor @Deprecated public RttManager.RttCapabilities();
+ method @Deprecated public int describeContents();
+ method @Deprecated public void writeToParcel(android.os.Parcel, int);
field @Deprecated public int bwSupported;
field @Deprecated public boolean lciSupported;
field @Deprecated public boolean lcrSupported;
@@ -1048,29 +1058,37 @@
@Deprecated public static class WifiScanner.HotlistSettings implements android.os.Parcelable {
ctor @Deprecated public WifiScanner.HotlistSettings();
+ method @Deprecated public int describeContents();
+ method @Deprecated public void writeToParcel(android.os.Parcel, int);
field @Deprecated public int apLostThreshold;
field @Deprecated public android.net.wifi.WifiScanner.BssidInfo[] bssidInfos;
}
public static class WifiScanner.ParcelableScanData implements android.os.Parcelable {
ctor public WifiScanner.ParcelableScanData(android.net.wifi.WifiScanner.ScanData[]);
+ method public int describeContents();
method public android.net.wifi.WifiScanner.ScanData[] getResults();
+ method public void writeToParcel(android.os.Parcel, int);
field public android.net.wifi.WifiScanner.ScanData[] mResults;
}
public static class WifiScanner.ParcelableScanResults implements android.os.Parcelable {
ctor public WifiScanner.ParcelableScanResults(android.net.wifi.ScanResult[]);
+ method public int describeContents();
method public android.net.wifi.ScanResult[] getResults();
+ method public void writeToParcel(android.os.Parcel, int);
field public android.net.wifi.ScanResult[] mResults;
}
public static class WifiScanner.ScanData implements android.os.Parcelable {
ctor public WifiScanner.ScanData(int, int, android.net.wifi.ScanResult[]);
ctor public WifiScanner.ScanData(android.net.wifi.WifiScanner.ScanData);
+ method public int describeContents();
method public int getFlags();
method public int getId();
method public android.net.wifi.ScanResult[] getResults();
method public int getScannedBands();
+ method public void writeToParcel(android.os.Parcel, int);
}
public static interface WifiScanner.ScanListener extends android.net.wifi.WifiScanner.ActionListener {
@@ -1081,12 +1099,14 @@
public static class WifiScanner.ScanSettings implements android.os.Parcelable {
ctor public WifiScanner.ScanSettings();
+ method public int describeContents();
method public int getRnrSetting();
method @NonNull public java.util.List<android.net.wifi.ScanResult.InformationElement> getVendorIes();
method public boolean is6GhzPscOnlyEnabled();
method public void set6GhzPscOnlyEnabled(boolean);
method public void setRnrSetting(int);
method public void setVendorIes(@NonNull java.util.List<android.net.wifi.ScanResult.InformationElement>);
+ method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.WifiScanner.ScanSettings> CREATOR;
field public int band;
field public android.net.wifi.WifiScanner.ChannelSpec[] channels;
@@ -1114,6 +1134,8 @@
@Deprecated public static class WifiScanner.WifiChangeSettings implements android.os.Parcelable {
ctor @Deprecated public WifiScanner.WifiChangeSettings();
+ method @Deprecated public int describeContents();
+ method @Deprecated public void writeToParcel(android.os.Parcel, int);
field @Deprecated public android.net.wifi.WifiScanner.BssidInfo[] bssidInfos;
field @Deprecated public int lostApSampleSize;
field @Deprecated public int minApsBreachingThreshold;
diff --git a/framework/api/system-removed.txt b/framework/api/system-removed.txt
index a2d0dff..0c469bc 100644
--- a/framework/api/system-removed.txt
+++ b/framework/api/system-removed.txt
@@ -4,6 +4,8 @@
@Deprecated public class BatchedScanResult implements android.os.Parcelable {
ctor public BatchedScanResult();
ctor public BatchedScanResult(android.net.wifi.BatchedScanResult);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
field public final java.util.List<android.net.wifi.ScanResult> scanResults;
field public boolean truncated;
}
diff --git a/framework/java/android/net/wifi/SoftApCapability.java b/framework/java/android/net/wifi/SoftApCapability.java
index 58a760c..9a5afaa 100644
--- a/framework/java/android/net/wifi/SoftApCapability.java
+++ b/framework/java/android/net/wifi/SoftApCapability.java
@@ -380,7 +380,7 @@
}
@Override
- public boolean equals(@NonNull Object o) {
+ public boolean equals(@Nullable Object o) {
if (this == o) return true;
if (!(o instanceof SoftApCapability)) return false;
SoftApCapability capability = (SoftApCapability) o;
diff --git a/framework/java/android/net/wifi/SoftApInfo.java b/framework/java/android/net/wifi/SoftApInfo.java
index faf064a..89d4782 100644
--- a/framework/java/android/net/wifi/SoftApInfo.java
+++ b/framework/java/android/net/wifi/SoftApInfo.java
@@ -378,7 +378,7 @@
}
@Override
- public boolean equals(@NonNull Object o) {
+ public boolean equals(@Nullable Object o) {
if (this == o) return true;
if (!(o instanceof SoftApInfo)) return false;
SoftApInfo softApInfo = (SoftApInfo) o;
diff --git a/framework/java/android/net/wifi/WifiClient.java b/framework/java/android/net/wifi/WifiClient.java
index f47c237..c69b039 100644
--- a/framework/java/android/net/wifi/WifiClient.java
+++ b/framework/java/android/net/wifi/WifiClient.java
@@ -17,6 +17,7 @@
package android.net.wifi;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.net.MacAddress;
import android.os.Parcel;
@@ -105,7 +106,7 @@
}
@Override
- public boolean equals(@NonNull Object o) {
+ public boolean equals(@Nullable Object o) {
if (this == o) return true;
if (!(o instanceof WifiClient)) return false;
WifiClient client = (WifiClient) o;
diff --git a/framework/java/android/net/wifi/WifiInfo.java b/framework/java/android/net/wifi/WifiInfo.java
index ef38163..41279ce 100644
--- a/framework/java/android/net/wifi/WifiInfo.java
+++ b/framework/java/android/net/wifi/WifiInfo.java
@@ -19,6 +19,7 @@
import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
import android.Manifest;
+import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.IntRange;
import android.annotation.NonNull;
@@ -76,6 +77,18 @@
*/
public class WifiInfo implements TransportInfo, Parcelable {
private static final String TAG = "WifiInfo";
+
+ /**
+ * Stopgap for trunk stable flags, as they are not yet supported by Mainline for lack
+ * of support in udc-mainline-prod.
+ * TODO : remove this class when udc-mainline-prod is abandoned and android.net.flags.Flags is
+ * available here, and replace it with a generated Flags class created with flags.aconfig.
+ * @hide
+ */
+ private static class Flags {
+ public static final String ADD_SUBSCRIPTION_ID = "com.android.net.wifi.add_subscription_id";
+ }
+
/**
* This is the map described in the Javadoc comment above. The positions
* of the elements of the array must correspond to the ordinal values
@@ -718,6 +731,17 @@
}
/**
+ * Set the subscription ID.
+ * @see WifiInfo#getSubscriptionId()
+ */
+ @FlaggedApi(Flags.ADD_SUBSCRIPTION_ID)
+ @NonNull
+ public Builder setSubscriptionId(int subId) {
+ mWifiInfo.setSubscriptionId(subId);
+ return this;
+ }
+
+ /**
* Set the current security type
* @see WifiInfo#getCurrentSecurityType()
*/
diff --git a/framework/tests/Android.bp b/framework/tests/Android.bp
index f3ed87a..640aa14 100644
--- a/framework/tests/Android.bp
+++ b/framework/tests/Android.bp
@@ -43,7 +43,7 @@
"wifi-modules-utils",
"net-tests-utils",
"net-utils-framework-common",
- "truth-prebuilt",
+ "truth",
],
libs: [
diff --git a/service/Android.bp b/service/Android.bp
index ea2d80c..7bb7a3c 100644
--- a/service/Android.bp
+++ b/service/Android.bp
@@ -23,11 +23,6 @@
errorprone: {
javacflags: ["-Xep:CheckReturnValue:ERROR"],
},
- product_variables: {
- pdk: {
- enabled: false,
- },
- },
}
filegroup {
@@ -114,6 +109,7 @@
"libprotobuf-java-lite",
"libnanohttpd",
"modules-utils-backgroundthread",
+ "modules-utils-fastxmlserializer",
"modules-utils-locallog",
"netd-client",
"networkstack-client",
diff --git a/service/ServiceWifiResources/res/values-bs/strings.xml b/service/ServiceWifiResources/res/values-bs/strings.xml
index d07b698..73414bd 100644
--- a/service/ServiceWifiResources/res/values-bs/strings.xml
+++ b/service/ServiceWifiResources/res/values-bs/strings.xml
@@ -147,7 +147,7 @@
<string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Instalacija certifikata nije uspjela."</string>
<string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Nije se moguće povezati s mrežom <xliff:g id="VALUE">%1$s</xliff:g>"</string>
<string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Lanac potvrda servera je nevažeći."</string>
- <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"UREDU"</string>
+ <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Uredu"</string>
<string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Nije moguće potvrditi ovu mrežu"</string>
<string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Ostanite povezani"</string>
<string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Prekini vezu odmah"</string>
diff --git a/service/ServiceWifiResources/res/values-da/strings.xml b/service/ServiceWifiResources/res/values-da/strings.xml
index d67759f..5d08fa5 100644
--- a/service/ServiceWifiResources/res/values-da/strings.xml
+++ b/service/ServiceWifiResources/res/values-da/strings.xml
@@ -100,11 +100,11 @@
</string-array>
<string name="wifi_eap_error_message_code_32766" msgid="2335996367705677670">"<xliff:g id="SSID">%1$s</xliff:g>: EAP-godkendelsesfejl 32766"</string>
<string-array name="wifi_eap_error_message_code_32766_carrier_overrides">
- <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: Verizon Wi-Fi Access er ikke tilgængeligt i dit område. Prøv igen senere eller fra en anden placering (fejl = 32766)."</item>
+ <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: Verizon Wi-Fi Access er ikke tilgængeligt i dit område. Prøv igen senere eller fra en anden lokation (fejl = 32766)."</item>
</string-array>
<string name="wifi_eap_error_message_code_32767" msgid="7094289719914089006">"<xliff:g id="SSID">%1$s</xliff:g>: EAP-godkendelsesfejl 32767"</string>
<string-array name="wifi_eap_error_message_code_32767_carrier_overrides">
- <item msgid="3756793972687282940">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: Du kan ikke oprette forbindelse til Verizon Wi-Fi Access. Prøv igen senere eller fra et andet sted. (Fejl = 32767)"</item>
+ <item msgid="3756793972687282940">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: Du kan ikke oprette forbindelse til Verizon Wi-Fi Access. Prøv igen senere eller fra en anden lokation. (Fejl = 32767)"</item>
</string-array>
<string name="wifi_eap_error_message_code_16384" msgid="575394783233092922">"<xliff:g id="SSID">%1$s</xliff:g>: EAP-godkendelsesfejl 16384"</string>
<string-array name="wifi_eap_error_message_code_16384_carrier_overrides">
diff --git a/service/ServiceWifiResources/res/values-eu/strings.xml b/service/ServiceWifiResources/res/values-eu/strings.xml
index c10c96f..c1463a4 100644
--- a/service/ServiceWifiResources/res/values-eu/strings.xml
+++ b/service/ServiceWifiResources/res/values-eu/strings.xml
@@ -33,7 +33,7 @@
<string name="wifi_suggestion_action_allow_app" msgid="7757859972144671588">"Eman baimena"</string>
<string name="wifi_suggestion_action_disallow_app" msgid="4565857699629860726">"Ez, eskerrik asko"</string>
<string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"<xliff:g id="CARRIERNAME">%s</xliff:g> operadorearen wifi-sarera konektatu nahi duzu?"</string>
- <string name="wifi_suggestion_imsi_privacy_content" msgid="4266931269306079184">"Sare hauek SIM ID bat jasotzen dute, gailuaren kokapenaren jarraipena egin ahal izateko"</string>
+ <string name="wifi_suggestion_imsi_privacy_content" msgid="4266931269306079184">"Sare hauek SIM identifikatzaile bat jasotzen dute, gailuaren kokapenaren jarraipena egin ahal izateko"</string>
<string name="wifi_suggestion_action_allow_imsi_privacy_exemption_carrier" msgid="3888538126440442636">"Konektatu"</string>
<string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_carrier" msgid="3225397664735676024">"Ez konektatu"</string>
<string name="wifi_suggestion_imsi_privacy_exemption_confirmation_title" msgid="4407415300707014525">"Konexioa berretsi nahi duzu?"</string>
diff --git a/service/ServiceWifiResources/res/values-ne/strings.xml b/service/ServiceWifiResources/res/values-ne/strings.xml
index 320af23..6d4f3b6 100644
--- a/service/ServiceWifiResources/res/values-ne/strings.xml
+++ b/service/ServiceWifiResources/res/values-ne/strings.xml
@@ -29,7 +29,7 @@
<string name="notification_channel_network_available" msgid="8454366142428864948">"नेटवर्क उपलब्ध छ"</string>
<string name="notification_channel_apm_alerts" msgid="6775293475896473489">"APM सम्बन्धी अलर्टहरू"</string>
<string name="wifi_suggestion_title" msgid="2564179935989099139">"सिफारिस गरिएका Wi‑Fi नेटवर्कहरूलाई अनुमति दिनुहोस्?"</string>
- <string name="wifi_suggestion_content" msgid="6985149577828091835">"<xliff:g id="NAME">%s</xliff:g> ले सिफारिस गरेका नेटवर्कहरू। यन्त्र स्वतः जडान हुन सक्छ।"</string>
+ <string name="wifi_suggestion_content" msgid="6985149577828091835">"<xliff:g id="NAME">%s</xliff:g> ले सिफारिस गरेका नेटवर्कहरू। यन्त्र अटो कनेक्ट हुन सक्छ।"</string>
<string name="wifi_suggestion_action_allow_app" msgid="7757859972144671588">"अनुमति दिनुहोस्"</string>
<string name="wifi_suggestion_action_disallow_app" msgid="4565857699629860726">"पर्दैन, धन्यवाद"</string>
<string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"<xliff:g id="CARRIERNAME">%s</xliff:g> Wi-Fi मा कनेक्ट गर्ने हो?"</string>
diff --git a/service/ServiceWifiResources/res/values-pt-rPT/strings.xml b/service/ServiceWifiResources/res/values-pt-rPT/strings.xml
index 5f25dc2..3804873 100644
--- a/service/ServiceWifiResources/res/values-pt-rPT/strings.xml
+++ b/service/ServiceWifiResources/res/values-pt-rPT/strings.xml
@@ -32,11 +32,11 @@
<string name="wifi_suggestion_content" msgid="6985149577828091835">"Redes sugeridas por <xliff:g id="NAME">%s</xliff:g>. O dispositivo pode estabelecer ligação automaticamente."</string>
<string name="wifi_suggestion_action_allow_app" msgid="7757859972144671588">"Permitir"</string>
<string name="wifi_suggestion_action_disallow_app" msgid="4565857699629860726">"Não, obrigado"</string>
- <string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"Pretende estabelecer ligação à rede Wi-Fi do operador <xliff:g id="CARRIERNAME">%s</xliff:g>?"</string>
+ <string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"Quer estabelecer ligação à rede Wi-Fi do operador <xliff:g id="CARRIERNAME">%s</xliff:g>?"</string>
<string name="wifi_suggestion_imsi_privacy_content" msgid="4266931269306079184">"Estas redes recebem um ID do SIM que pode ser utilizado para monitorizar a localização dos dispositivos."</string>
<string name="wifi_suggestion_action_allow_imsi_privacy_exemption_carrier" msgid="3888538126440442636">"Ligar"</string>
<string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_carrier" msgid="3225397664735676024">"Não ligar"</string>
- <string name="wifi_suggestion_imsi_privacy_exemption_confirmation_title" msgid="4407415300707014525">"Pretende confirmar a ligação?"</string>
+ <string name="wifi_suggestion_imsi_privacy_exemption_confirmation_title" msgid="4407415300707014525">"Quer confirmar a ligação?"</string>
<string name="wifi_suggestion_imsi_privacy_exemption_confirmation_content" msgid="9211241189147807136">"Caso proceda à ligação, as redes Wi-Fi do operador <xliff:g id="CARRIERNAME">%s</xliff:g> podem partilhar ou aceder a um ID exclusivo associado ao seu SIM. Esta ação pode permitir que a localização do seu dispositivo seja monitorizada."</string>
<string name="wifi_suggestion_action_allow_imsi_privacy_exemption_confirmation" msgid="2168947026413431603">"Ligar"</string>
<string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_confirmation" msgid="5156881939985876066">"Não ligar"</string>
@@ -48,7 +48,7 @@
<string name="wifi_watchdog_network_disabled" msgid="5769226742956006362">"Não foi possível ligar a Wi-Fi"</string>
<string name="wifi_watchdog_network_disabled_detailed" msgid="1725243835135539125">" tem uma ligação à internet fraca."</string>
<string name="wifi_connect_alert_title" msgid="2368200646665663612">"Permitir ligação?"</string>
- <string name="wifi_connect_alert_message" msgid="7226456300982080746">"A app %1$s pretende estabelecer ligação à rede Wi-Fi %2$s"</string>
+ <string name="wifi_connect_alert_message" msgid="7226456300982080746">"A app %1$s quer estabelecer ligação à rede Wi-Fi %2$s"</string>
<string name="wifi_connect_default_application" msgid="8917703737222707062">"Uma app"</string>
<string name="accept" msgid="8346431649376483879">"Aceitar"</string>
<string name="decline" msgid="4172251727603762084">"Recusar"</string>
@@ -66,7 +66,7 @@
<string name="dlg_ok" msgid="254496739491689405">"OK"</string>
<string name="wifi_cannot_connect_with_randomized_mac_title" msgid="2344570489693915253">"Não é possível ligar a <xliff:g id="SSID">%1$s</xliff:g>."</string>
<string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"Toque para alterar as definições de privacidade e tente novamente."</string>
- <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"Pretende alterar a definição de privacidade?"</string>
+ <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"Quer alterar a definição de privacidade?"</string>
<string name="wifi_disable_mac_randomization_dialog_message" msgid="8874064864332248988">"Para associar, o <xliff:g id="SSID">%1$s</xliff:g> tem de utilizar o endereço MAC do seu dispositivo, um identificador único. Atualmente, a sua definição de privacidade para esta rede utiliza um identificador aleatorizado. \n\nEsta alteração pode permitir que a localização do seu dispositivo seja monitorizada por dispositivos próximos."</string>
<string name="wifi_disable_mac_randomization_dialog_confirm_text" msgid="6954419863076751626">"Alterar definição"</string>
<string name="wifi_disable_mac_randomization_dialog_success" msgid="5849155828154391387">"Definição atualizada. Experimente estabelecer ligação novamente."</string>
diff --git a/service/ServiceWifiResources/res/values-zh-rCN/strings.xml b/service/ServiceWifiResources/res/values-zh-rCN/strings.xml
index bab6f15..737a627 100644
--- a/service/ServiceWifiResources/res/values-zh-rCN/strings.xml
+++ b/service/ServiceWifiResources/res/values-zh-rCN/strings.xml
@@ -55,7 +55,7 @@
<string name="ok" msgid="847575529546290102">"确定"</string>
<string name="wifi_p2p_invitation_sent_title" msgid="6552639940428040869">"已发出邀请"</string>
<string name="wifi_p2p_invitation_to_connect_title" msgid="8917157937652519251">"连接邀请"</string>
- <string name="wifi_p2p_invitation_seconds_remaining" msgid="4214101104506918344">"{0,plural, =1{# 秒后接受。}other{# 秒后接受。}}"</string>
+ <string name="wifi_p2p_invitation_seconds_remaining" msgid="4214101104506918344">"{0,plural, =1{# 秒内接受。}other{# 秒内接受。}}"</string>
<string name="wifi_p2p_from_message" msgid="5921308150192756898">"发件人:"</string>
<string name="wifi_p2p_to_message" msgid="3809923305696994787">"收件人:"</string>
<string name="wifi_p2p_enter_pin_message" msgid="5200220251738047620">"输入所需的PIN码:"</string>
@@ -84,7 +84,7 @@
</string-array>
<string name="wifi_eap_error_message_code_32762" msgid="2381670648753465737">"<xliff:g id="SSID">%1$s</xliff:g>:EAP 身份验证错误 32762"</string>
<string-array name="wifi_eap_error_message_code_32762_carrier_overrides">
- <item msgid="2911560823350042826">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>:您的 Verizon Wi-Fi Access 帐号出现了问题。请拨打 800-922-0204 与我们联系。(错误 32762)"</item>
+ <item msgid="2911560823350042826">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>:您的 Verizon Wi-Fi Access 账号出现了问题。请拨打 800-922-0204 与我们联系。(错误 32762)"</item>
</string-array>
<string name="wifi_eap_error_message_code_32763" msgid="4467733260757049969">"<xliff:g id="SSID">%1$s</xliff:g>:EAP 身份验证错误 32763"</string>
<string-array name="wifi_eap_error_message_code_32763_carrier_overrides">
@@ -96,7 +96,7 @@
</string-array>
<string name="wifi_eap_error_message_code_32765" msgid="2167528358066037980">"<xliff:g id="SSID">%1$s</xliff:g>:EAP 身份验证错误 32765"</string>
<string-array name="wifi_eap_error_message_code_32765_carrier_overrides">
- <item msgid="7454136618636618962">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>:您的 Verizon Wi-Fi Access 帐号出现了问题。请拨打 800-922-0204 与我们联系。(错误 32765)"</item>
+ <item msgid="7454136618636618962">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>:您的 Verizon Wi-Fi Access 账号出现了问题。请拨打 800-922-0204 与我们联系。(错误 32765)"</item>
</string-array>
<string name="wifi_eap_error_message_code_32766" msgid="2335996367705677670">"<xliff:g id="SSID">%1$s</xliff:g>:EAP 身份验证错误 32766"</string>
<string-array name="wifi_eap_error_message_code_32766_carrier_overrides">
diff --git a/service/coex-table-parser/Android.bp b/service/coex-table-parser/Android.bp
index 4b9d24e..6a696f3 100644
--- a/service/coex-table-parser/Android.bp
+++ b/service/coex-table-parser/Android.bp
@@ -21,4 +21,5 @@
name: "coex-table-parser",
srcs: ["coex_table.xsd"],
package_name: "com.android.server.wifi.coex",
+ root_elements: ["table"],
}
diff --git a/service/coex-table-parser/api/current.txt b/service/coex-table-parser/api/current.txt
index 0b0d787..1aa4418 100644
--- a/service/coex-table-parser/api/current.txt
+++ b/service/coex-table-parser/api/current.txt
@@ -112,13 +112,6 @@
public class XmlParser {
ctor public XmlParser();
- method public static com.android.server.wifi.coex.DefaultChannels readDefaultChannels(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
- method public static com.android.server.wifi.coex.Entry readEntry(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
- method public static com.android.server.wifi.coex.NeighborThresholds readNeighborThresholds(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
- method public static com.android.server.wifi.coex.Override readOverride(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
- method public static com.android.server.wifi.coex.Override2g readOverride2g(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
- method public static com.android.server.wifi.coex.Override5g readOverride5g(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
- method public static com.android.server.wifi.coex.Params readParams(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static com.android.server.wifi.coex.Table readTable(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static String readText(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static void skip(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
diff --git a/service/java/com/android/server/wifi/HostapdHalAidlImp.java b/service/java/com/android/server/wifi/HostapdHalAidlImp.java
index 76f48b5..f8c0791 100644
--- a/service/java/com/android/server/wifi/HostapdHalAidlImp.java
+++ b/service/java/com/android/server/wifi/HostapdHalAidlImp.java
@@ -91,6 +91,7 @@
private Set<String> mActiveInstances = new HashSet<>();
private HostapdDeathEventHandler mDeathEventHandler;
private boolean mServiceDeclared = false;
+ private int mServiceVersion;
private CountDownLatch mWaitForDeathLatch;
/**
@@ -462,6 +463,14 @@
}
/**
+ * Check that the service is running at least the expected version. Use to avoid the case where
+ * the framework is using a newer interface version than the service.
+ */
+ private boolean isServiceVersionAtLeast(int expectedVersion) {
+ return expectedVersion <= mServiceVersion;
+ }
+
+ /**
* Wrapper functions created to be mockable in unit tests
*/
@VisibleForTesting
@@ -501,7 +510,8 @@
Log.i(TAG, "Local Version: " + IHostapd.VERSION);
try {
- Log.i(TAG, "Remote Version: " + mIHostapd.getInterfaceVersion());
+ mServiceVersion = mIHostapd.getInterfaceVersion();
+ Log.i(TAG, "Remote Version: " + mServiceVersion);
IBinder serviceBinder = getServiceBinderMockable();
if (serviceBinder == null) return false;
mWaitForDeathLatch = null;
diff --git a/service/java/com/android/server/wifi/WifiConfigurationUtil.java b/service/java/com/android/server/wifi/WifiConfigurationUtil.java
index 98fb769..d5de419 100644
--- a/service/java/com/android/server/wifi/WifiConfigurationUtil.java
+++ b/service/java/com/android/server/wifi/WifiConfigurationUtil.java
@@ -475,7 +475,8 @@
return true;
}
- private static boolean validatePassword(String password, boolean isAdd, boolean isSae) {
+ private static boolean validatePassword(String password, boolean isAdd, boolean isSae,
+ boolean isWapi) {
if (isAdd) {
if (password == null) {
Log.e(TAG, "validatePassword: null string");
@@ -517,7 +518,14 @@
}
} else {
// HEX PSK string
- if (password.length() != PSK_SAE_HEX_LEN) {
+ if (isWapi) {
+ // Protect system against malicious actors injecting arbitrarily large passwords.
+ if (password.length() > 100) {
+ Log.e(TAG, "validatePassword failed: WAPI hex string too long: "
+ + password.length());
+ return false;
+ }
+ } else if (password.length() != PSK_SAE_HEX_LEN) {
Log.e(TAG, "validatePassword failed: hex string size mismatch: "
+ password.length());
return false;
@@ -725,15 +733,15 @@
return false;
}
if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK)
- && !validatePassword(config.preSharedKey, isAdd, false)) {
+ && !validatePassword(config.preSharedKey, isAdd, false, false)) {
return false;
}
if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)
- && !validatePassword(config.preSharedKey, isAdd, true)) {
+ && !validatePassword(config.preSharedKey, isAdd, true, false)) {
return false;
}
if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_WAPI_PSK)
- && !validatePassword(config.preSharedKey, isAdd, false)) {
+ && !validatePassword(config.preSharedKey, isAdd, false, true)) {
return false;
}
if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_DPP)
@@ -897,11 +905,11 @@
return false;
}
if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_PSK)
- && !validatePassword(config.preSharedKey, true, false)) {
+ && !validatePassword(config.preSharedKey, true, false, false)) {
return false;
}
if (config.isSecurityType(WifiConfiguration.SECURITY_TYPE_SAE)
- && !validatePassword(config.preSharedKey, true, true)) {
+ && !validatePassword(config.preSharedKey, true, true, false)) {
return false;
}
// TBD: Validate some enterprise params as well in the future here.
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index 83d737d..227cabc 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -7837,4 +7837,28 @@
}
});
}
+
+ /**
+ * Set the mock wifi service for testing
+ */
+ public void setMockWifiService(String serviceName) {
+ int uid = Binder.getCallingUid();
+ if (!mWifiPermissionsUtil.checkNetworkSettingsPermission(uid)) {
+ throw new SecurityException(TAG + " Uid " + uid
+ + " Missing NETWORK_SETTINGS permission");
+ }
+ mWifiNative.setMockWifiService(serviceName);
+ }
+
+ /**
+ * Set the mock wifi methods for testing
+ */
+ public boolean setMockWifiMethods(String methods) {
+ int uid = Binder.getCallingUid();
+ if (!mWifiPermissionsUtil.checkNetworkSettingsPermission(uid)) {
+ throw new SecurityException(TAG + " Uid " + uid
+ + " Missing NETWORK_SETTINGS permission");
+ }
+ return mWifiNative.setMockWifiMethods(methods);
+ }
}
diff --git a/service/java/com/android/server/wifi/WifiShellCommand.java b/service/java/com/android/server/wifi/WifiShellCommand.java
index ad50e0a..9093f8e 100644
--- a/service/java/com/android/server/wifi/WifiShellCommand.java
+++ b/service/java/com/android/server/wifi/WifiShellCommand.java
@@ -172,6 +172,9 @@
"get-ipreach-disconnect",
"take-bugreport",
"get-allowed-channel",
+ "set-mock-wifimodem-service",
+ "get-mock-wifimodem-service",
+ "set-mock-wifimodem-methods",
};
private static final Map<String, Pair<NetworkRequest, ConnectivityManager.NetworkCallback>>
@@ -1818,7 +1821,7 @@
return -1;
}
}
- mWifiNative.setMockWifiService(serviceName);
+ mWifiService.setMockWifiService(serviceName);
// The result will be checked, must print result "true"
pw.print("true");
return 0;
@@ -1827,7 +1830,7 @@
return 0;
case "set-mock-wifimodem-methods":
String methods = getNextArgRequired();
- if (mWifiNative.setMockWifiMethods(methods)) {
+ if (mWifiService.setMockWifiMethods(methods)) {
pw.print("true");
} else {
pw.print("fail to set mock method: " + methods);
diff --git a/service/tests/mts/Android.bp b/service/tests/mts/Android.bp
index e016740..f7bd25b 100644
--- a/service/tests/mts/Android.bp
+++ b/service/tests/mts/Android.bp
@@ -32,7 +32,7 @@
"android.test.base.stubs",
],
- srcs: [ "src/**/*.java" ],
+ srcs: ["src/**/*.java"],
static_libs: [
// for ShellIdentityUtils, builds against test_current
@@ -41,7 +41,7 @@
"ctstestserver",
"junit",
"junit-params",
- "truth-prebuilt",
+ "truth",
// for Wifi protos, builds against system_current
"wifi-nano-protos",
// for AndroidJUnit4
diff --git a/service/tests/wifitests/Android.bp b/service/tests/wifitests/Android.bp
index 2ed3885..f3b9483 100644
--- a/service/tests/wifitests/Android.bp
+++ b/service/tests/wifitests/Android.bp
@@ -21,7 +21,7 @@
android_test {
name: "FrameworksWifiTests",
- srcs: [ "**/*.java" ],
+ srcs: ["**/*.java"],
dxflags: ["--multi-dex"],
@@ -33,7 +33,7 @@
"hamcrest-library",
"mockito-target-extended-minus-junit4",
"frameworks-base-testutils",
- "truth-prebuilt",
+ "truth",
// Statically link wifi-service-pre-jarjar since we want to test the working copy of
// service-wifi, not the on-device copy.
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java
index b019a7b..0c62816 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java
@@ -471,7 +471,8 @@
assertTrue(WifiConfigurationUtil.validate(config, SUPPORTED_FEATURES_ALL,
WifiConfigurationUtil.VALIDATE_FOR_ADD));
- config.preSharedKey = "abcd123456788990013453445345465465476546";
+ config.preSharedKey = "01234567890123456789012345678901234567890123456789012345678901234567"
+ + "890123456789012345678901234567890";
assertFalse(WifiConfigurationUtil.validate(config, SUPPORTED_FEATURES_ALL,
WifiConfigurationUtil.VALIDATE_FOR_ADD));
config.preSharedKey = "";