Snap for 12623742 from 2ba9e6c4f9210c35ef4e8f00d3fe75b564301707 to 25Q1-release
Change-Id: If7df27dc9be6158e2e59168946de65ca7f29a682
diff --git a/src/crypto/tls_openssl.c b/src/crypto/tls_openssl.c
index f5d734d..d849933 100644
--- a/src/crypto/tls_openssl.c
+++ b/src/crypto/tls_openssl.c
@@ -1290,8 +1290,9 @@
#endif /* OPENSSL_NO_ENGINE */
-#ifdef ANDROID
-/* EVP_PKEY_from_keystore comes from system/security/keystore-engine. */
+// Imported from system/security/keystore-engine. This method
+// is not used by the mainline supplicant.
+#if defined(ANDROID) && !defined(MAINLINE_SUPPLICANT)
EVP_PKEY * EVP_PKEY_from_keystore(const char *key_id);
#endif /* ANDROID */
@@ -1299,7 +1300,7 @@
const char *pin, const char *key_id,
const char *cert_id, const char *ca_cert_id)
{
-#if defined(ANDROID) && defined(OPENSSL_IS_BORINGSSL)
+#if defined(ANDROID) && !defined(MAINLINE_SUPPLICANT) && defined(OPENSSL_IS_BORINGSSL)
#if !defined(OPENSSL_NO_ENGINE)
#error "This code depends on OPENSSL_NO_ENGINE being defined by BoringSSL."
#endif
@@ -1307,6 +1308,7 @@
return TLS_SET_PARAMS_ENGINE_PRV_INIT_FAILED;
conn->engine = NULL;
conn->private_key = EVP_PKEY_from_keystore(key_id);
+
if (!conn->private_key) {
wpa_printf(MSG_ERROR,
"ENGINE: cannot load private key with id '%s' [%s]",
diff --git a/wpa_supplicant/Android.bp b/wpa_supplicant/Android.bp
index 3be5990..210325b 100644
--- a/wpa_supplicant/Android.bp
+++ b/wpa_supplicant/Android.bp
@@ -57,6 +57,31 @@
soc_specific: true,
}
+cc_library_headers {
+ name: "wpa_supplicant_headers_mainline",
+ export_include_dirs: [
+ ".",
+ "src",
+ "src/common",
+ "src/drivers",
+ "src/eap_common",
+ "src/eapol_supp",
+ "src/eap_peer",
+ "src/eap_server",
+ "src/l2_packet",
+ "src/radius",
+ "src/rsn_supp",
+ "src/tls",
+ "src/utils",
+ "src/wps",
+ ],
+ apex_available: [
+ "//apex_available:platform",
+ "com.android.wifi",
+ ],
+ min_sdk_version: "30",
+}
+
filegroup {
name: "wpa_supplicant_template.conf",
srcs: ["wpa_supplicant_template.conf"],
@@ -889,6 +914,123 @@
],
}
+wpa_supplicant_cc_defaults_type {
+ name: "wpa_supplicant_mainline_cflags_default",
+ cflags: [
+ "-DANDROID_LIB_STUB",
+ "-DANDROID_LOG_NAME=\"mainline_supplicant\"",
+ "-DCONFIG_ACS",
+ "-DCONFIG_ANDROID_LOG",
+ "-DCONFIG_AP",
+ "-DCONFIG_BACKEND_FILE",
+ "-DCONFIG_CTRL_IFACE",
+ "-DCONFIG_CTRL_IFACE_UNIX",
+ "-DCONFIG_DPP",
+ "-DCONFIG_DPP2",
+ "-DCONFIG_DRIVER_NL80211",
+ "-DCONFIG_DRIVER_NL80211_QCA",
+ "-DCONFIG_ECC",
+ "-DCONFIG_ERP",
+ "-DCONFIG_FILS",
+ "-DCONFIG_GAS",
+ "-DCONFIG_GAS_SERVER",
+ "-DCONFIG_HMAC_SHA256_KDF",
+ "-DCONFIG_HMAC_SHA384_KDF",
+ "-DCONFIG_HMAC_SHA512_KDF",
+ "-DCONFIG_HS20",
+ "-DCONFIG_IEEE80211AC",
+ "-DCONFIG_IEEE80211R",
+ "-DCONFIG_INTERWORKING",
+ "-DCONFIG_IPV6",
+ "-DCONFIG_JSON",
+ "-DCONFIG_MBO",
+ "-DCONFIG_NO_ACCOUNTING",
+ "-DCONFIG_NO_RADIUS",
+ "-DCONFIG_NO_RADIUS",
+ "-DCONFIG_NO_RANDOM_POOL",
+ "-DCONFIG_NO_ROAMING",
+ "-DCONFIG_NO_VLAN",
+ "-DCONFIG_OFFCHANNEL",
+ "-DCONFIG_OWE",
+ "-DCONFIG_P2P",
+ "-DCONFIG_PASN",
+ "-DCONFIG_PTKSA_CACHE",
+ "-DCONFIG_SAE",
+ "-DCONFIG_SAE_PK",
+ "-DCONFIG_SHA256",
+ "-DCONFIG_SHA384",
+ "-DCONFIG_SHA512",
+ "-DCONFIG_SMARTCARD",
+ "-DCONFIG_SME",
+ "-DCONFIG_SUITEB",
+ "-DCONFIG_SUITEB192",
+ "-DCONFIG_TDLS",
+ "-DCONFIG_WEP",
+ "-DCONFIG_WIFI_DISPLAY",
+ "-DCONFIG_WNM",
+ "-DCONFIG_WPS",
+ "-DCONFIG_WPS_ER",
+ "-DCONFIG_WPS_NFC",
+ "-DCONFIG_WPS_OOB",
+ "-DCONFIG_WPS_UPNP",
+ "-DCRYPTO_RSA_OAEP_SHA256",
+ "-DEAP_AKA",
+ "-DEAP_AKA_PRIME",
+ "-DEAP_GTC",
+ "-DEAP_LEAP",
+ "-DEAP_MD5",
+ "-DEAP_MSCHAPv2",
+ "-DEAP_OTP",
+ "-DEAP_PEAP",
+ "-DEAP_PWD",
+ "-DEAP_SERVER",
+ "-DEAP_SERVER_IDENTITY",
+ "-DEAP_SERVER_WSC",
+ "-DEAP_SIM",
+ "-DEAP_TLS",
+ "-DEAP_TLSV1_3",
+ "-DEAP_TLS_OPENSSL",
+ "-DEAP_TTLS",
+ "-DEAP_WSC",
+ "-DIEEE8021X_EAPOL",
+ "-DMAINLINE_SUPPLICANT",
+ "-DNEED_AP_MLME",
+ "-DOPENSSL_NO_ENGINE",
+ "-DPKCS12_FUNCS",
+ "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
+ "-DWPA_IGNORE_CONFIG_ERRORS",
+ "-Wall",
+ "-Werror",
+ "-Wno-error=sometimes-uninitialized",
+ "-Wno-incompatible-pointer-types",
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ "-Wno-macro-redefined",
+ "-Wno-parentheses-equality",
+ "-Wno-sign-compare",
+ "-Wno-unused-function",
+ "-Wno-unused-parameter",
+ "-Wno-unused-variable",
+ ] + select(soong_config_variable("wpa_supplicant_8", "wpa_supplicant_use_stub_lib"), {
+ true: ["-DANDROID_LIB_STUB"],
+ default: [],
+ }) + select(soong_config_variable("wpa_supplicant_8", "board_hostapd_config_80211w_mfp_optional"), {
+ true: ["-DENABLE_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL"],
+ default: [],
+ }) + select(soong_config_variable("wpa_supplicant_8", "board_wpa_supplicant_private_lib_event"), {
+ true: ["-DANDROID_LIB_EVENT"],
+ default: [],
+ }) + select(soong_config_variable("wpa_supplicant_8", "wifi_priv_cmd_update_mbo_cell_status"), {
+ true: ["-DENABLE_PRIV_CMD_UPDATE_MBO_CELL_STATUS"],
+ default: [],
+ }) + select(soong_config_variable("wpa_supplicant_8", "hostapd_11ax"), {
+ true: ["-DCONFIG_IEEE80211AX"],
+ default: [],
+ }) + select(soong_config_variable("wpa_supplicant_8", "wifi_brcm_open_source_multi_akm"), {
+ true: ["-DWIFI_BRCM_OPEN_SOURCE_MULTI_AKM"],
+ default: [],
+ }),
+}
+
cc_defaults {
name: "wpa_supplicant_srcs_default",
srcs: [
@@ -1179,7 +1321,7 @@
},
// init_rc: wpa_supplicant only
wifi_hidl_unified_supplicant_service_rc_entry: {
- init_rc: ["aidl/android.hardware.wifi.supplicant-service.rc"],
+ init_rc: ["aidl/vendor/android.hardware.wifi.supplicant-service.rc"],
},
},
}
@@ -1234,6 +1376,34 @@
},
}
+wpa_supplicant_cc_binary {
+ name: "wpa_supplicant_mainline",
+ shared_libs: [
+ "android.system.wifi.mainline_supplicant-ndk",
+ "libbase",
+ "libbinder_ndk",
+ "libc",
+ "libcrypto",
+ "libcutils_sockets",
+ "liblog",
+ "libnl",
+ "libssl",
+ ],
+ static_libs: [
+ "mainline_supplicant_aidl_bp",
+ ],
+ defaults: [
+ "wpa_supplicant_srcs_default",
+ "wpa_supplicant_includes_default",
+ "wpa_supplicant_mainline_cflags_default",
+ ],
+ apex_available: [
+ "//apex_available:platform",
+ "com.android.wifi",
+ ],
+ min_sdk_version: "30",
+}
+
cc_library_shared {
name: "libwpa_client",
proprietary: true,
@@ -1265,15 +1435,15 @@
"-Wno-unused-variable",
],
srcs: [
- "aidl/aidl.cpp",
- "aidl/aidl_manager.cpp",
- "aidl/certificate_utils.cpp",
- "aidl/iface_config_utils.cpp",
- "aidl/p2p_iface.cpp",
- "aidl/p2p_network.cpp",
- "aidl/sta_iface.cpp",
- "aidl/sta_network.cpp",
- "aidl/supplicant.cpp",
+ "aidl/vendor/aidl.cpp",
+ "aidl/vendor/aidl_manager.cpp",
+ "aidl/vendor/certificate_utils.cpp",
+ "aidl/vendor/iface_config_utils.cpp",
+ "aidl/vendor/p2p_iface.cpp",
+ "aidl/vendor/p2p_network.cpp",
+ "aidl/vendor/sta_iface.cpp",
+ "aidl/vendor/sta_network.cpp",
+ "aidl/vendor/supplicant.cpp",
],
shared_libs: [
"android.hardware.wifi.supplicant-V4-ndk",
diff --git a/wpa_supplicant/aidl/mainline/Android.bp b/wpa_supplicant/aidl/mainline/Android.bp
new file mode 100644
index 0000000..68407a3
--- /dev/null
+++ b/wpa_supplicant/aidl/mainline/Android.bp
@@ -0,0 +1,53 @@
+// Copyright (C) 2024 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+cc_library_headers {
+ name: "mainline_supplicant_aidl_headers",
+ export_include_dirs: ["."],
+ apex_available: [
+ "//apex_available:platform",
+ "com.android.wifi",
+ ],
+ min_sdk_version: "30",
+}
+
+cc_library_static {
+ name: "mainline_supplicant_aidl_bp",
+ srcs: ["*.cpp"],
+ shared_libs: [
+ "android.system.wifi.mainline_supplicant-ndk",
+ "libbase",
+ "libbinder_ndk",
+ ],
+ cppflags: [
+ "-Wall",
+ "-Werror",
+ "-Wno-unused-parameter",
+ "-Wno-unused-private-field",
+ "-Wno-unused-variable",
+ ],
+ header_libs: [
+ // Shared headers with vendor supplicant
+ "libwpa_shared_aidl_headers_mainline",
+ // Mainline supplicant headers
+ "mainline_supplicant_aidl_headers",
+ // Core supplicant headers
+ "wpa_supplicant_headers_mainline",
+ ],
+ apex_available: [
+ "//apex_available:platform",
+ "com.android.wifi",
+ ],
+ min_sdk_version: "30",
+}
diff --git a/wpa_supplicant/aidl/shared/Android.bp b/wpa_supplicant/aidl/shared/Android.bp
new file mode 100644
index 0000000..25cb5fa
--- /dev/null
+++ b/wpa_supplicant/aidl/shared/Android.bp
@@ -0,0 +1,29 @@
+// Copyright (C) 2024 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+cc_library_headers {
+ name: "libwpa_shared_aidl_headers_vendor",
+ export_include_dirs: ["."],
+ soc_specific: true,
+}
+
+cc_library_headers {
+ name: "libwpa_shared_aidl_headers_mainline",
+ export_include_dirs: ["."],
+ apex_available: [
+ "//apex_available:platform",
+ "com.android.wifi",
+ ],
+ min_sdk_version: "30",
+}
diff --git a/wpa_supplicant/aidl/aidl_i.h b/wpa_supplicant/aidl/shared/aidl_i.h
similarity index 100%
rename from wpa_supplicant/aidl/aidl_i.h
rename to wpa_supplicant/aidl/shared/aidl_i.h
diff --git a/wpa_supplicant/aidl/.clang-format b/wpa_supplicant/aidl/vendor/.clang-format
similarity index 100%
rename from wpa_supplicant/aidl/.clang-format
rename to wpa_supplicant/aidl/vendor/.clang-format
diff --git a/wpa_supplicant/aidl/Android.bp b/wpa_supplicant/aidl/vendor/Android.bp
similarity index 97%
rename from wpa_supplicant/aidl/Android.bp
rename to wpa_supplicant/aidl/vendor/Android.bp
index 5976ff9..a972dd6 100644
--- a/wpa_supplicant/aidl/Android.bp
+++ b/wpa_supplicant/aidl/vendor/Android.bp
@@ -56,6 +56,7 @@
header_libs: [
"wpa_supplicant_headers",
"libwpa_aidl_headers",
+ "libwpa_shared_aidl_headers_vendor",
],
}
diff --git a/wpa_supplicant/aidl/aidl.cpp b/wpa_supplicant/aidl/vendor/aidl.cpp
similarity index 99%
rename from wpa_supplicant/aidl/aidl.cpp
rename to wpa_supplicant/aidl/vendor/aidl.cpp
index d1cf891..a0446fe 100644
--- a/wpa_supplicant/aidl/aidl.cpp
+++ b/wpa_supplicant/aidl/vendor/aidl.cpp
@@ -14,7 +14,7 @@
extern "C"
{
#include "aidl.h"
-#include "aidl_i.h"
+#include "aidl/shared/aidl_i.h"
#include "utils/common.h"
#include "utils/eloop.h"
#include "utils/includes.h"
diff --git a/wpa_supplicant/aidl/aidl.h b/wpa_supplicant/aidl/vendor/aidl.h
similarity index 100%
rename from wpa_supplicant/aidl/aidl.h
rename to wpa_supplicant/aidl/vendor/aidl.h
diff --git a/wpa_supplicant/aidl/aidl_manager.cpp b/wpa_supplicant/aidl/vendor/aidl_manager.cpp
similarity index 100%
rename from wpa_supplicant/aidl/aidl_manager.cpp
rename to wpa_supplicant/aidl/vendor/aidl_manager.cpp
diff --git a/wpa_supplicant/aidl/aidl_manager.h b/wpa_supplicant/aidl/vendor/aidl_manager.h
similarity index 100%
rename from wpa_supplicant/aidl/aidl_manager.h
rename to wpa_supplicant/aidl/vendor/aidl_manager.h
diff --git a/wpa_supplicant/aidl/aidl_return_util.h b/wpa_supplicant/aidl/vendor/aidl_return_util.h
similarity index 100%
rename from wpa_supplicant/aidl/aidl_return_util.h
rename to wpa_supplicant/aidl/vendor/aidl_return_util.h
diff --git a/wpa_supplicant/aidl/android.hardware.wifi.supplicant-service.rc b/wpa_supplicant/aidl/vendor/android.hardware.wifi.supplicant-service.rc
similarity index 100%
rename from wpa_supplicant/aidl/android.hardware.wifi.supplicant-service.rc
rename to wpa_supplicant/aidl/vendor/android.hardware.wifi.supplicant-service.rc
diff --git a/wpa_supplicant/aidl/android.hardware.wifi.supplicant.xml b/wpa_supplicant/aidl/vendor/android.hardware.wifi.supplicant.xml
similarity index 100%
rename from wpa_supplicant/aidl/android.hardware.wifi.supplicant.xml
rename to wpa_supplicant/aidl/vendor/android.hardware.wifi.supplicant.xml
diff --git a/wpa_supplicant/aidl/certificate_utils.cpp b/wpa_supplicant/aidl/vendor/certificate_utils.cpp
similarity index 100%
rename from wpa_supplicant/aidl/certificate_utils.cpp
rename to wpa_supplicant/aidl/vendor/certificate_utils.cpp
diff --git a/wpa_supplicant/aidl/certificate_utils.h b/wpa_supplicant/aidl/vendor/certificate_utils.h
similarity index 100%
rename from wpa_supplicant/aidl/certificate_utils.h
rename to wpa_supplicant/aidl/vendor/certificate_utils.h
diff --git a/wpa_supplicant/aidl/iface_config_utils.cpp b/wpa_supplicant/aidl/vendor/iface_config_utils.cpp
similarity index 100%
rename from wpa_supplicant/aidl/iface_config_utils.cpp
rename to wpa_supplicant/aidl/vendor/iface_config_utils.cpp
diff --git a/wpa_supplicant/aidl/iface_config_utils.h b/wpa_supplicant/aidl/vendor/iface_config_utils.h
similarity index 100%
rename from wpa_supplicant/aidl/iface_config_utils.h
rename to wpa_supplicant/aidl/vendor/iface_config_utils.h
diff --git a/wpa_supplicant/aidl/misc_utils.h b/wpa_supplicant/aidl/vendor/misc_utils.h
similarity index 100%
rename from wpa_supplicant/aidl/misc_utils.h
rename to wpa_supplicant/aidl/vendor/misc_utils.h
diff --git a/wpa_supplicant/aidl/p2p_iface.cpp b/wpa_supplicant/aidl/vendor/p2p_iface.cpp
similarity index 100%
rename from wpa_supplicant/aidl/p2p_iface.cpp
rename to wpa_supplicant/aidl/vendor/p2p_iface.cpp
diff --git a/wpa_supplicant/aidl/p2p_iface.h b/wpa_supplicant/aidl/vendor/p2p_iface.h
similarity index 100%
rename from wpa_supplicant/aidl/p2p_iface.h
rename to wpa_supplicant/aidl/vendor/p2p_iface.h
diff --git a/wpa_supplicant/aidl/p2p_network.cpp b/wpa_supplicant/aidl/vendor/p2p_network.cpp
similarity index 100%
rename from wpa_supplicant/aidl/p2p_network.cpp
rename to wpa_supplicant/aidl/vendor/p2p_network.cpp
diff --git a/wpa_supplicant/aidl/p2p_network.h b/wpa_supplicant/aidl/vendor/p2p_network.h
similarity index 100%
rename from wpa_supplicant/aidl/p2p_network.h
rename to wpa_supplicant/aidl/vendor/p2p_network.h
diff --git a/wpa_supplicant/aidl/sta_iface.cpp b/wpa_supplicant/aidl/vendor/sta_iface.cpp
similarity index 100%
rename from wpa_supplicant/aidl/sta_iface.cpp
rename to wpa_supplicant/aidl/vendor/sta_iface.cpp
diff --git a/wpa_supplicant/aidl/sta_iface.h b/wpa_supplicant/aidl/vendor/sta_iface.h
similarity index 100%
rename from wpa_supplicant/aidl/sta_iface.h
rename to wpa_supplicant/aidl/vendor/sta_iface.h
diff --git a/wpa_supplicant/aidl/sta_network.cpp b/wpa_supplicant/aidl/vendor/sta_network.cpp
similarity index 100%
rename from wpa_supplicant/aidl/sta_network.cpp
rename to wpa_supplicant/aidl/vendor/sta_network.cpp
diff --git a/wpa_supplicant/aidl/sta_network.h b/wpa_supplicant/aidl/vendor/sta_network.h
similarity index 100%
rename from wpa_supplicant/aidl/sta_network.h
rename to wpa_supplicant/aidl/vendor/sta_network.h
diff --git a/wpa_supplicant/aidl/supplicant.cpp b/wpa_supplicant/aidl/vendor/supplicant.cpp
similarity index 100%
rename from wpa_supplicant/aidl/supplicant.cpp
rename to wpa_supplicant/aidl/vendor/supplicant.cpp
diff --git a/wpa_supplicant/aidl/supplicant.h b/wpa_supplicant/aidl/vendor/supplicant.h
similarity index 100%
rename from wpa_supplicant/aidl/supplicant.h
rename to wpa_supplicant/aidl/vendor/supplicant.h
diff --git a/wpa_supplicant/dpp_supplicant.c b/wpa_supplicant/dpp_supplicant.c
index 75a3d78..1b2c756 100644
--- a/wpa_supplicant/dpp_supplicant.c
+++ b/wpa_supplicant/dpp_supplicant.c
@@ -29,7 +29,7 @@
#include "scan.h"
#include "notify.h"
#include "dpp_supplicant.h"
-#include "aidl/aidl.h"
+#include "aidl/vendor/aidl.h"
static int wpas_dpp_listen_start(struct wpa_supplicant *wpa_s,
diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c
index b8fdf29..c1258a8 100644
--- a/wpa_supplicant/notify.c
+++ b/wpa_supplicant/notify.c
@@ -26,7 +26,7 @@
#include "p2p_supplicant.h"
#include "sme.h"
#include "notify.h"
-#include "aidl/aidl.h"
+#include "aidl/vendor/aidl.h"
int wpas_notify_supplicant_initialized(struct wpa_global *global)
{
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 6df886f..982ff6c 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -70,7 +70,7 @@
#include "ap/ap_config.h"
#include "ap/hostapd.h"
#endif /* CONFIG_MESH */
-#include "aidl/aidl.h"
+#include "aidl/vendor/aidl.h"
const char *const wpa_supplicant_version =
"wpa_supplicant v" VERSION_STR "\n"