Add build target for the mainline supplicant.
Also adds a new set of cflags specific to
the mainline supplicant. These will be
trimmed down in a future CL.
Bug: 365585450
Test: m
Change-Id: I8c487f853a8a2d8667a5e9c5152e8f0da56a3144
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..9026386 100644
--- a/wpa_supplicant/Android.bp
+++ b/wpa_supplicant/Android.bp
@@ -889,6 +889,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: [
@@ -1234,6 +1351,28 @@
},
}
+wpa_supplicant_cc_binary {
+ name: "wpa_supplicant_mainline",
+ shared_libs: [
+ "libc",
+ "libcrypto",
+ "libcutils_sockets",
+ "liblog",
+ "libnl",
+ "libssl",
+ ],
+ 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,