blob: cf902a1b1837d2c33977b744822cb48f640555a9 [file] [log] [blame]
Daniel Norman1f2ba852021-10-04 16:14:43 -07001// Copyright (C) 2021 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Bill Yang3ec16372025-01-13 09:55:17 +000015// The wpa_supplicant related modules are split into 2 sections:
16// 1. For cuttlefish series products, start from `wpa_supplicant_headers` to `libpasn`.
17// 2. For non-cuttlefish series products, ex: physical devices created by oems,
18// the section starts from `wpa_supplicant_driver_srcs_default` to the end of this file.
19
Daniel Norman1f2ba852021-10-04 16:14:43 -070020package {
21 default_applicable_licenses: [
Bob Badour618e16c2022-02-14 12:41:29 -080022 // Inherits SPDX-license-identifier-BSD-3-Clause
23 "external_wpa_supplicant_8_license",
Daniel Norman1f2ba852021-10-04 16:14:43 -070024 ],
25}
26
Bob Badour618e16c2022-02-14 12:41:29 -080027// See: http://go/android-license-faq
Daniel Norman1f2ba852021-10-04 16:14:43 -070028license {
Bob Badour618e16c2022-02-14 12:41:29 -080029 name: "external_wpa_supplicant_8_wpa_supplicant_icons_license",
30 license_kinds: ["SPDX-license-identifier-CC0-1.0"],
31 license_text: ["wpa_gui-qt4/icons/LICENSE"],
32}
33
34// Ostensibly unused.
35filegroup {
36 name: "wpa_supplicant_gui_qt4_icons",
37 srcs: ["wpa_gui-qt4/icons/*.svg"],
38 licenses: [
39 "external_wpa_supplicant_8_license",
40 "external_wpa_supplicant_8_wpa_supplicant_icons_license",
Daniel Norman1f2ba852021-10-04 16:14:43 -070041 ],
42}
43
Bill Yang3ec16372025-01-13 09:55:17 +000044// The section below is for cuttlefish series products. For non-cuttlefish
45// products please update the section starting at `wpa_supplicant_driver_srcs_default`.
46// Start of cuttlefish section
Daniel Norman1f2ba852021-10-04 16:14:43 -070047cc_library_headers {
48 name: "wpa_supplicant_headers",
49 export_include_dirs: [
50 ".",
51 "src",
52 "src/common",
53 "src/drivers",
54 "src/eap_common",
55 "src/eapol_supp",
56 "src/eap_peer",
57 "src/eap_server",
58 "src/l2_packet",
59 "src/radius",
60 "src/rsn_supp",
61 "src/tls",
62 "src/utils",
63 "src/wps",
64 ],
65 soc_specific: true,
66}
67
Gabriel Biren2ba9e6c2024-10-23 19:22:38 +000068cc_library_headers {
69 name: "wpa_supplicant_headers_mainline",
70 export_include_dirs: [
71 ".",
72 "src",
73 "src/common",
74 "src/drivers",
75 "src/eap_common",
76 "src/eapol_supp",
77 "src/eap_peer",
78 "src/eap_server",
79 "src/l2_packet",
80 "src/radius",
81 "src/rsn_supp",
82 "src/tls",
83 "src/utils",
84 "src/wps",
85 ],
86 apex_available: [
87 "//apex_available:platform",
88 "com.android.wifi",
89 ],
90 min_sdk_version: "30",
91}
92
Daniel Norman1f2ba852021-10-04 16:14:43 -070093filegroup {
94 name: "wpa_supplicant_template.conf",
95 srcs: ["wpa_supplicant_template.conf"],
96}
97
98cc_defaults {
99 name: "wpa_supplicant_defaults",
100 defaults: ["wpa_supplicant_cflags_defaults"],
101 srcs: [":wpa_supplicant_srcs"],
102 shared_libs: [
Sunil Ravic1ac7ed2024-09-18 04:46:34 +0000103 "android.hardware.wifi.supplicant-V4-ndk",
Gabriel Biren6b4e8272022-12-14 23:07:53 +0000104 "android.system.keystore2-V1-ndk",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700105 "libbase",
Gabriel Biren57ededa2021-09-03 16:08:50 +0000106 "libbinder_ndk",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700107 "libc",
108 "libcrypto",
109 "libcutils",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700110 "libkeystore-engine-wifi-hidl",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700111 "liblog",
112 "libnl",
113 "libssl",
114 "libutils",
115 ],
116 relative_install_path: "hw",
117 soc_specific: true,
118 static_libs: [
Gabriel Biren57ededa2021-09-03 16:08:50 +0000119 "libwpa_aidl_bp",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700120 ],
121 header_libs: [
122 "wpa_supplicant_headers",
Gabriel Biren57ededa2021-09-03 16:08:50 +0000123 "libwpa_aidl_headers",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700124 ],
125}
126
Cole Faust0b99b522024-08-20 15:34:57 -0700127cc_defaults {
Daniel Norman1f2ba852021-10-04 16:14:43 -0700128 name: "wpa_supplicant_cflags_defaults",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700129 // Generated by building wpa_supplicant and printing LOCAL_CFLAGS.
130 cflags: [
131 "-DANDROID_LOG_NAME=\"wpa_supplicant\"",
132 "-DANDROID_P2P",
133 "-DCONFIG_ACS",
134 "-DCONFIG_ANDROID_LOG",
135 "-DCONFIG_AP",
136 "-DCONFIG_BACKEND_FILE",
137 "-DCONFIG_CTRL_IFACE",
138 "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/wpa/sockets\"",
139 "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/wpa/sockets\"",
Gabriel Biren57ededa2021-09-03 16:08:50 +0000140 "-DCONFIG_CTRL_IFACE_AIDL",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700141 "-DCONFIG_CTRL_IFACE_UNIX",
142 "-DCONFIG_DPP",
143 "-DCONFIG_DPP2",
144 "-DCONFIG_DRIVER_NL80211",
145 "-DCONFIG_ECC",
146 "-DCONFIG_ERP",
147 "-DCONFIG_FILS",
148 "-DCONFIG_GAS",
149 "-DCONFIG_GAS_SERVER",
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +0000150 "-DCONFIG_AIDL",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700151 "-DCONFIG_HMAC_SHA256_KDF",
152 "-DCONFIG_HMAC_SHA384_KDF",
153 "-DCONFIG_HMAC_SHA512_KDF",
154 "-DCONFIG_HS20",
155 "-DCONFIG_IEEE80211AC",
156 "-DCONFIG_IEEE80211R",
157 "-DCONFIG_INTERWORKING",
158 "-DCONFIG_IPV6",
159 "-DCONFIG_JSON",
160 "-DCONFIG_MBO",
Gabriel Biren06fd5252024-12-26 22:10:24 +0000161 "-DCONFIG_NAN_USD",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700162 "-DCONFIG_NO_ACCOUNTING",
163 "-DCONFIG_NO_RADIUS",
164 "-DCONFIG_NO_RADIUS",
165 "-DCONFIG_NO_RANDOM_POOL",
Matthew Wangd79e2672025-03-20 23:23:55 +0000166 "-DCONFIG_NO_ROAMING",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700167 "-DCONFIG_NO_VLAN",
168 "-DCONFIG_OFFCHANNEL",
169 "-DCONFIG_OWE",
170 "-DCONFIG_P2P",
Matthew Wangd79e2672025-03-20 23:23:55 +0000171 "-DCONFIG_PASN",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700172 "-DCONFIG_SAE",
173 "-DCONFIG_SAE_PK",
174 "-DCONFIG_SHA256",
175 "-DCONFIG_SHA384",
176 "-DCONFIG_SHA512",
177 "-DCONFIG_SMARTCARD",
178 "-DCONFIG_SME",
179 "-DCONFIG_SUITEB",
180 "-DCONFIG_SUITEB192",
181 "-DCONFIG_TDLS",
182 "-DCONFIG_WEP",
183 "-DCONFIG_WIFI_DISPLAY",
184 "-DCONFIG_WNM",
185 "-DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/vendor/wifi/wpa\"",
186 "-DCONFIG_WPS",
187 "-DCONFIG_WPS_ER",
188 "-DCONFIG_WPS_NFC",
189 "-DCONFIG_WPS_OOB",
190 "-DCONFIG_WPS_UPNP",
191 "-DEAP_AKA",
192 "-DEAP_AKA_PRIME",
193 "-DEAP_GTC",
194 "-DEAP_LEAP",
195 "-DEAP_MD5",
196 "-DEAP_MSCHAPv2",
197 "-DEAP_OTP",
198 "-DEAP_PEAP",
Vinay Gannevarame008ff32024-07-17 18:53:59 +0530199 "-DCONFIG_PTKSA_CACHE",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700200 "-DEAP_PWD",
201 "-DEAP_SERVER",
202 "-DEAP_SERVER_IDENTITY",
203 "-DEAP_SERVER_WSC",
204 "-DEAP_SIM",
205 "-DEAP_TLS",
206 "-DEAP_TLS_OPENSSL",
207 "-DEAP_TTLS",
208 "-DEAP_WSC",
209 "-DIEEE8021X_EAPOL",
210 "-DNEED_AP_MLME",
211 "-DPKCS12_FUNCS",
212 "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
213 "-DWPA_IGNORE_CONFIG_ERRORS",
214 "-Wall",
215 "-Werror",
216 "-Wno-error=sometimes-uninitialized",
217 "-Wno-incompatible-pointer-types",
218 "-Wno-incompatible-pointer-types-discards-qualifiers",
219 "-Wno-macro-redefined",
220 "-Wno-parentheses-equality",
221 "-Wno-sign-compare",
222 "-Wno-unused-function",
223 "-Wno-unused-parameter",
224 "-Wno-unused-variable",
Cole Faust0b99b522024-08-20 15:34:57 -0700225 ] +
226 // Devices that include this module should set these soong config vars appropriately.
227 // For example:
228 // $(call soong_config_set, wpa_supplicant, platform_version, $(PLATFORM_VERSION))
229 // $(call soong_config_set, wpa_supplicant, nl80211_driver, CONFIG_DRIVER_NL80211_QCA)
230 select(soong_config_variable("wpa_supplicant", "platform_version"), {
231 any @ version: ["-DVERSION_STR_POSTFIX=\"-" + version + "\""],
232 default: ["-DVERSION_STR_POSTFIX=\"-Android\""],
233 }) +
234 select(soong_config_variable("wpa_supplicant", "nl80211_driver"), {
235 any @ driver: ["-D" + driver],
236 // Flag is optional, so no default value provided.
237 default: [],
238 }),
Chih-Hung Hsiehf3cee1d2022-12-02 13:06:22 -0800239 // Similar to suppressing clang compiler warnings, here we
240 // suppress clang-tidy warnings to reduce noises in Android build.log.
241 tidy_checks: [
242 "-android-cloexec-*",
243 "-bugprone-branch-clone",
244 "-bugprone-macro-parentheses",
245 "-bugprone-misplaced-widening-cast",
246 "-bugprone-signal-handler",
247 "-bugprone-signed-char-misuse",
248 "-bugprone-sizeof-expression",
249 "-bugprone-suspicious-string-compare",
250 "-bugprone-too-small-loop-variable",
251 "-cert-err34-c",
252 "-cert-msc30-c",
253 "-cert-msc50-cpp",
254 "-cert-msc54-cpp",
255 "-cert-sig30-c",
256 "-cert-str34-c",
257 "-clang-analyzer-core.NullDereference",
258 "-clang-analyzer-core.UndefinedBinaryOperatorResult",
259 "-clang-analyzer-deadcode.DeadStores",
260 "-clang-analyzer-optin.performance.Padding",
261 "-clang-analyzer-optin.portability.UnixAPI",
262 "-clang-analyzer-security.insecureAPI.UncheckedReturn",
263 "-clang-analyzer-unix.cstring.NullArg",
264 "-clang-analyzer-unix.Malloc",
265 "-clang-diagnostic-unused-but-set-variable",
266 "-misc-redundant-expression",
267 ],
Daniel Norman1f2ba852021-10-04 16:14:43 -0700268}
269
270// Generated by building wpa_supplicant and printing LOCAL_SRC_FILES.
271filegroup {
272 name: "wpa_supplicant_srcs",
273 srcs: [
274 "ap.c",
275 "bss.c",
276 "bssid_ignore.c",
277 "config.c",
278 "config_file.c",
279 "ctrl_iface.c",
280 "ctrl_iface_unix.c",
281 "dpp_supplicant.c",
282 "eap_register.c",
283 "events.c",
284 "gas_query.c",
285 "hs20_supplicant.c",
286 "interworking.c",
287 "main.c",
288 "mbo.c",
Gabriel Biren06fd5252024-12-26 22:10:24 +0000289 "nan_usd.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700290 "notify.c",
291 "offchannel.c",
292 "op_classes.c",
293 "p2p_supplicant.c",
294 "p2p_supplicant_sd.c",
Matthew Wangd79e2672025-03-20 23:23:55 +0000295 "pasn_supplicant.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700296 "robust_av.c",
297 "rrm.c",
298 "scan.c",
299 "sme.c",
300 "src/ap/acs.c",
301 "src/ap/ap_config.c",
302 "src/ap/ap_drv_ops.c",
303 "src/ap/ap_list.c",
Sunil Ravi38ad1ed2023-01-17 23:58:31 +0000304 "src/ap/comeback_token.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700305 "src/ap/ap_mlme.c",
306 "src/ap/authsrv.c",
307 "src/ap/beacon.c",
308 "src/ap/bss_load.c",
309 "src/ap/ctrl_iface_ap.c",
310 "src/ap/dfs.c",
311 "src/ap/dpp_hostapd.c",
312 "src/ap/drv_callbacks.c",
313 "src/ap/eap_user_db.c",
314 "src/ap/fils_hlp.c",
315 "src/ap/gas_query_ap.c",
316 "src/ap/gas_serv.c",
317 "src/ap/hostapd.c",
318 "src/ap/hs20.c",
319 "src/ap/hw_features.c",
320 "src/ap/ieee802_11_auth.c",
321 "src/ap/ieee802_11.c",
322 "src/ap/ieee802_11_ht.c",
323 "src/ap/ieee802_11_shared.c",
324 "src/ap/ieee802_11_vht.c",
325 "src/ap/ieee802_1x.c",
326 "src/ap/mbo_ap.c",
Gabriel Biren06fd5252024-12-26 22:10:24 +0000327 "src/ap/nan_usd_ap.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700328 "src/ap/neighbor_db.c",
329 "src/ap/p2p_hostapd.c",
330 "src/ap/pmksa_cache_auth.c",
331 "src/ap/rrm.c",
332 "src/ap/sta_info.c",
333 "src/ap/tkip_countermeasures.c",
334 "src/ap/utils.c",
335 "src/ap/wmm.c",
336 "src/ap/wpa_auth.c",
337 "src/ap/wpa_auth_glue.c",
338 "src/ap/wpa_auth_ie.c",
339 "src/ap/wps_hostapd.c",
340 "src/common/ctrl_iface_common.c",
341 "src/common/dpp_auth.c",
342 "src/common/dpp_backup.c",
343 "src/common/dpp.c",
344 "src/common/dpp_crypto.c",
345 "src/common/dpp_pkex.c",
346 "src/common/dpp_reconfig.c",
347 "src/common/dpp_tcp.c",
348 "src/common/dragonfly.c",
349 "src/common/gas.c",
350 "src/common/gas_server.c",
351 "src/common/hw_features_common.c",
352 "src/common/ieee802_11_common.c",
Gabriel Biren06fd5252024-12-26 22:10:24 +0000353 "src/common/nan_de.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700354 "src/common/sae.c",
355 "src/common/sae_pk.c",
356 "src/common/wpa_common.c",
Sunil Ravi99c035e2024-07-12 01:42:03 +0000357 "src/common/ptksa_cache.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700358 "src/crypto/aes-ctr.c",
chao.meng4c248f02023-11-18 16:55:52 +0800359 "src/crypto/aes-encblock.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700360 "src/crypto/aes-siv.c",
361 "src/crypto/crypto_openssl.c",
362 "src/crypto/dh_groups.c",
363 "src/crypto/fips_prf_openssl.c",
chao.meng4c248f02023-11-18 16:55:52 +0800364 "src/crypto/milenage.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700365 "src/crypto/ms_funcs.c",
366 "src/crypto/sha1-prf.c",
367 "src/crypto/sha1-tlsprf.c",
368 "src/crypto/sha256-kdf.c",
369 "src/crypto/sha256-prf.c",
370 "src/crypto/sha256-tlsprf.c",
371 "src/crypto/sha384-kdf.c",
372 "src/crypto/sha384-prf.c",
373 "src/crypto/sha512-kdf.c",
374 "src/crypto/sha512-prf.c",
375 "src/crypto/tls_openssl.c",
376 "src/crypto/tls_openssl_ocsp.c",
377 "src/drivers/driver_common.c",
378 "src/drivers/driver_nl80211_android.c",
379 "src/drivers/driver_nl80211.c",
380 "src/drivers/driver_nl80211_capa.c",
381 "src/drivers/driver_nl80211_event.c",
382 "src/drivers/driver_nl80211_monitor.c",
383 "src/drivers/driver_nl80211_scan.c",
384 "src/drivers/drivers.c",
385 "src/drivers/linux_ioctl.c",
386 "src/drivers/netlink.c",
387 "src/drivers/rfkill.c",
388 "src/eap_common/chap.c",
389 "src/eap_common/eap_common.c",
390 "src/eap_common/eap_peap_common.c",
391 "src/eap_common/eap_pwd_common.c",
392 "src/eap_common/eap_sim_common.c",
393 "src/eap_common/eap_wsc_common.c",
394 "src/eapol_auth/eapol_auth_sm.c",
395 "src/eapol_supp/eapol_supp_sm.c",
396 "src/eap_peer/eap_aka.c",
397 "src/eap_peer/eap.c",
398 "src/eap_peer/eap_gtc.c",
399 "src/eap_peer/eap_leap.c",
400 "src/eap_peer/eap_md5.c",
401 "src/eap_peer/eap_methods.c",
402 "src/eap_peer/eap_mschapv2.c",
403 "src/eap_peer/eap_otp.c",
404 "src/eap_peer/eap_peap.c",
405 "src/eap_peer/eap_pwd.c",
406 "src/eap_peer/eap_sim.c",
407 "src/eap_peer/eap_tls.c",
408 "src/eap_peer/eap_tls_common.c",
409 "src/eap_peer/eap_ttls.c",
410 "src/eap_peer/eap_wsc.c",
411 "src/eap_peer/mschapv2.c",
412 "src/eap_server/eap_server.c",
413 "src/eap_server/eap_server_identity.c",
414 "src/eap_server/eap_server_methods.c",
415 "src/eap_server/eap_server_wsc.c",
416 "src/l2_packet/l2_packet_linux.c",
417 "src/p2p/p2p_build.c",
418 "src/p2p/p2p.c",
419 "src/p2p/p2p_dev_disc.c",
420 "src/p2p/p2p_go_neg.c",
421 "src/p2p/p2p_group.c",
422 "src/p2p/p2p_invitation.c",
423 "src/p2p/p2p_parse.c",
424 "src/p2p/p2p_pd.c",
425 "src/p2p/p2p_sd.c",
426 "src/p2p/p2p_utils.c",
Matthew Wangd79e2672025-03-20 23:23:55 +0000427 "src/pasn/pasn_initiator.c",
428 "src/pasn/pasn_responder.c",
429 "src/pasn/pasn_common.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700430 "src/rsn_supp/pmksa_cache.c",
431 "src/rsn_supp/preauth.c",
432 "src/rsn_supp/tdls.c",
433 "src/rsn_supp/wpa.c",
434 "src/rsn_supp/wpa_ft.c",
435 "src/rsn_supp/wpa_ie.c",
436 "src/tls/asn1.c",
437 "src/utils/base64.c",
438 "src/utils/bitfield.c",
439 "src/utils/common.c",
440 "src/utils/config.c",
441 "src/utils/crc32.c",
442 "src/utils/eloop.c",
443 "src/utils/ip_addr.c",
444 "src/utils/json.c",
445 "src/utils/os_unix.c",
446 "src/utils/radiotap.c",
447 "src/utils/uuid.c",
448 "src/utils/wpabuf.c",
449 "src/utils/wpa_debug.c",
450 "src/wps/http_client.c",
451 "src/wps/httpread.c",
452 "src/wps/http_server.c",
453 "src/wps/ndef.c",
454 "src/wps/upnp_xml.c",
455 "src/wps/wps_attr_build.c",
456 "src/wps/wps_attr_parse.c",
457 "src/wps/wps_attr_process.c",
458 "src/wps/wps.c",
459 "src/wps/wps_common.c",
460 "src/wps/wps_dev_attr.c",
461 "src/wps/wps_enrollee.c",
462 "src/wps/wps_er.c",
463 "src/wps/wps_er_ssdp.c",
464 "src/wps/wps_registrar.c",
465 "src/wps/wps_upnp_ap.c",
466 "src/wps/wps_upnp.c",
467 "src/wps/wps_upnp_event.c",
468 "src/wps/wps_upnp_ssdp.c",
469 "src/wps/wps_upnp_web.c",
chao.meng4c248f02023-11-18 16:55:52 +0800470 "twt.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700471 "wifi_display.c",
472 "wmm_ac.c",
473 "wnm_sta.c",
474 "wpas_glue.c",
475 "wpa_supplicant.c",
476 "wps_supplicant.c",
Matthew Wangd79e2672025-03-20 23:23:55 +0000477 ],
Sunil Ravi3db35ff2023-11-06 23:23:30 +0000478}
chao.meng4c248f02023-11-18 16:55:52 +0800479
480// Generated by building wpa_cli and printing LOCAL_SRC_FILES
481filegroup {
482 name: "wpa_cli_srcs",
483 srcs: [
484 "src/common/cli.c",
Gabriel Birenc69c43d2024-05-24 16:58:00 +0000485 "src/common/wpa_ctrl.c",
chao.meng4c248f02023-11-18 16:55:52 +0800486 "src/utils/common.c",
487 "src/utils/edit.c",
488 "src/utils/eloop.c",
489 "src/utils/os_unix.c",
490 "src/utils/wpa_debug.c",
491 "wpa_cli.c",
492 ],
493}
494
495// Generated by building libwpa_client and printing LOCAL_SRC_FILES
496filegroup {
497 name: "libwpa_client_srcs",
498 srcs: [
499 "src/common/wpa_ctrl.c",
500 "src/utils/os_unix.c",
501 ],
502}
503
504cc_library_headers {
505 name: "libwpa_client_headers",
506 export_include_dirs: [
507 ".",
508 "wpa_client_include/libwpa_client",
509 ],
510 soc_specific: true,
511}
Vinay Gannevaram97e30ce2024-04-04 11:37:19 +0530512
513cc_library {
514 name: "libpasn",
515 vendor: true,
516 cflags: [
517 "-DANDROID_LOG_NAME=\"libpasn\"",
518 "-DANDROID_P2P",
519 "-DCONFIG_ACS",
520 "-DCONFIG_ANDROID_LOG",
521 "-DCONFIG_AP",
522 "-DCONFIG_BACKEND_FILE",
523 "-DCONFIG_CTRL_IFACE",
524 "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/wpa/sockets\"",
525 "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/wpa/sockets\"",
526 "-DCONFIG_CTRL_IFACE_AIDL",
527 "-DCONFIG_CTRL_IFACE_UNIX",
528 "-DCONFIG_DPP",
529 "-DCONFIG_DPP2",
530 "-DCONFIG_DRIVER_NL80211",
531 "-DCONFIG_ECC",
532 "-DCONFIG_ERP",
533 "-DCONFIG_FILS",
534 "-DCONFIG_GAS",
535 "-DCONFIG_GAS_SERVER",
536 "-DCONFIG_AIDL",
537 "-DCONFIG_HMAC_SHA256_KDF",
538 "-DCONFIG_HMAC_SHA384_KDF",
539 "-DCONFIG_HMAC_SHA512_KDF",
540 "-DCONFIG_HS20",
541 "-DCONFIG_IEEE80211AC",
542 "-DCONFIG_IEEE80211R",
543 "-DCONFIG_INTERWORKING",
544 "-DCONFIG_IPV6",
545 "-DCONFIG_JSON",
546 "-DCONFIG_MBO",
547 "-DCONFIG_NO_ACCOUNTING",
548 "-DCONFIG_NO_RADIUS",
549 "-DCONFIG_NO_RADIUS",
550 "-DCONFIG_NO_RANDOM_POOL",
551 "-DCONFIG_NO_ROAMING",
552 "-DCONFIG_NO_VLAN",
553 "-DCONFIG_OFFCHANNEL",
554 "-DCONFIG_OWE",
555 "-DCONFIG_P2P",
556 "-DCONFIG_SAE",
557 "-DCONFIG_SAE_PK",
558 "-DCONFIG_SHA256",
559 "-DCONFIG_SHA384",
560 "-DCONFIG_SHA512",
561 "-DCONFIG_SMARTCARD",
562 "-DCONFIG_SME",
563 "-DCONFIG_SUITEB",
564 "-DCONFIG_SUITEB192",
565 "-DCONFIG_TDLS",
566 "-DCONFIG_WEP",
567 "-DCONFIG_WIFI_DISPLAY",
568 "-DCONFIG_WNM",
569 "-DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/vendor/wifi/wpa\"",
570 "-DCONFIG_WPS",
571 "-DCONFIG_WPS_ER",
572 "-DCONFIG_WPS_NFC",
573 "-DCONFIG_WPS_OOB",
574 "-DCONFIG_WPS_UPNP",
575 "-DEAP_AKA",
576 "-DEAP_AKA_PRIME",
577 "-DEAP_GTC",
578 "-DEAP_LEAP",
579 "-DEAP_MD5",
580 "-DEAP_MSCHAPv2",
581 "-DEAP_OTP",
582 "-DEAP_PEAP",
583 "-DCONFIG_PASN",
584 "-DCONFIG_PTKSA_CACHE",
585 "-DEAP_PWD",
586 "-DEAP_SERVER",
587 "-DEAP_SERVER_IDENTITY",
588 "-DEAP_SERVER_WSC",
589 "-DEAP_SIM",
590 "-DEAP_TLS",
591 "-DEAP_TLS_OPENSSL",
592 "-DEAP_TTLS",
593 "-DEAP_WSC",
594 "-DIEEE8021X_EAPOL",
595 "-DNEED_AP_MLME",
596 "-DPKCS12_FUNCS",
597 "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
598 "-DWPA_IGNORE_CONFIG_ERRORS",
599 "-Wall",
600 "-Werror",
601 "-Wno-error=sometimes-uninitialized",
602 "-Wno-incompatible-pointer-types",
603 "-Wno-incompatible-pointer-types-discards-qualifiers",
604 "-Wno-macro-redefined",
605 "-Wno-parentheses-equality",
606 "-Wno-sign-compare",
607 "-Wno-unused-function",
608 "-Wno-unused-parameter",
609 "-Wno-unused-variable",
610 ],
611 product_variables: {
612 debuggable: {
613 cflags: ["-DLOG_NDEBUG=0"],
614 },
615 },
616 local_include_dirs: [
617 ".",
618 "src",
619 "src/common",
620 "src/drivers",
621 "src/eap_common",
622 "src/eapol_supp",
623 "src/eap_peer",
624 "src/eap_server",
625 "src/l2_packet",
626 "src/radius",
627 "src/rsn_supp",
628 "src/tls",
629 "src/utils",
630 "src/wps",
631 ],
632 srcs: [
633 "src/utils/eloop.c",
634 "src/utils/wpa_debug.c",
635 "src/utils/wpabuf.c",
636 "src/utils/os_unix.c",
637 "src/utils/config.c",
638 "src/utils/common.c",
639 "src/utils/base64.c",
640 "src/common/sae.c",
641 "src/common/sae_pk.c",
642 "src/common/wpa_common.c",
643 "src/common/ieee802_11_common.c",
644 "src/common/dragonfly.c",
645 "src/common/ptksa_cache.c",
646 "src/rsn_supp/pmksa_cache.c",
647 "src/rsn_supp/wpa_ie.c",
648 "src/ap/comeback_token.c",
649 "src/ap/pmksa_cache_auth.c",
650 "src/eap_common/eap_common.c",
651 "src/eap_common/chap.c",
652 "src/eap_peer/eap.c",
653 "src/eap_peer/eap_methods.c",
654 "src/eapol_supp/eapol_supp_sm.c",
655 "src/crypto/crypto_openssl.c",
656 "src/crypto/tls_openssl.c",
657 "src/crypto/tls_openssl_ocsp.c",
658 "src/crypto/sha256-tlsprf.c",
659 "src/crypto/sha512-prf.c",
660 "src/crypto/sha384-prf.c",
661 "src/crypto/sha256-prf.c",
662 "src/crypto/sha512-kdf.c",
663 "src/crypto/sha384-kdf.c",
664 "src/crypto/sha256-kdf.c",
665 "src/crypto/dh_groups.c",
666 "src/crypto/aes-siv.c",
667 "src/crypto/aes-ctr.c",
668 "src/crypto/sha1-prf.c",
669 "src/crypto/sha1-tlsprf.c",
670 "src/pasn/pasn_initiator.c",
671 "src/pasn/pasn_responder.c",
672 "src/pasn/pasn_common.c",
673 ],
674 shared_libs: [
675 "libc",
676 "libcutils",
677 "liblog",
678 "libcrypto",
679 "libssl",
680 "libkeystore-engine-wifi-hidl",
681 ],
682 sanitize: {
683 misc_undefined: [
684 "unsigned-integer-overflow",
685 "signed-integer-overflow",
686 ],
687 cfi: true,
688 },
689}
Bill Yang08f249a2024-10-08 07:00:08 +0000690
Bill Yang3ec16372025-01-13 09:55:17 +0000691// End of cuttlefish section
692
693// The section starting below is for non-cuttlefish products.
694// For cuttlefish series please update the section starting from `wpa_supplicant_headers`.
695
696// If you need to add a new build setting based on a product config, ex:
697// ifeq ($(WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS), enabled)
698// L_CFLAGS += -DENABLE_PRIV_CMD_UPDATE_MBO_CELL_STATUS
699// endif
700
701// In order to export the Makefile variable to soong, you will need to use a `soong_config_set` method
702// under `build/core/board_config_wpa_supplicant.mk`. Ex:
703// ifeq ($(WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS), enabled)
704// $(call soong_config_set_bool,wpa_supplicant_8,wifi_priv_cmd_update_mbo_cell_status,true)
705// endif
706
707// And then use the select statement in Android.bp to reflect the condition you need, ex:
708// select(soong_config_variable("wpa_supplicant_8", "wifi_priv_cmd_update_mbo_cell_status"), {
709// true: ["-DENABLE_PRIV_CMD_UPDATE_MBO_CELL_STATUS"],
710// default: [],
711// })
712
713// Start of non-cuttlefish section
Bill Yang08f249a2024-10-08 07:00:08 +0000714cc_defaults {
715 name: "wpa_supplicant_driver_srcs_default",
716 srcs: [
717 "src/drivers/driver_nl80211.c",
718 "src/drivers/driver_nl80211_android.c",
719 "src/drivers/driver_nl80211_capa.c",
720 "src/drivers/driver_nl80211_event.c",
721 "src/drivers/driver_nl80211_monitor.c",
722 "src/drivers/driver_nl80211_scan.c",
723 "src/drivers/linux_ioctl.c",
724 "src/drivers/netlink.c",
725 "src/drivers/rfkill.c",
726 "src/utils/radiotap.c",
727 ],
728}
729
730cc_defaults {
731 name: "wpa_supplicant_driver_cflags_default",
732 cflags: [
733 "-DCONFIG_DRIVER_NL80211",
734 // Because the original Android.mk will call hostapd's Android.mk first and it
735 // will make the flag share with wpa_supplicant, keep the original logic in hostapd.
736 ] + select(soong_config_variable("wpa_supplicant_8", "board_wlan_device"), {
737 "bcmdhd": ["-DCONFIG_DRIVER_NL80211_BRCM"],
738 "synadhd": ["-DCONFIG_DRIVER_NL80211_SYNA"],
739 "qcwcn": ["-DCONFIG_DRIVER_NL80211_QCA"],
740 default: ["-DCONFIG_DRIVER_NL80211_QCA"],
741 }),
742}
743
744cc_defaults {
745 name: "wpa_supplicant_includes_default",
746 local_include_dirs: [
747 ".",
748 "src",
749 "src/common",
750 "src/drivers",
751 "src/eap_common",
752 "src/eap_peer",
753 "src/eap_server",
754 "src/eapol_supp",
755 "src/l2_packet",
756 "src/pasn",
757 "src/radius",
758 "src/rsn_supp",
759 "src/tls",
760 "src/utils",
761 "src/wps",
762 ],
763 include_dirs: [
764 // There's an if condition for external/libnl but current code base should always have this.
765 "external/libnl/include",
766 "system/security/keystore/include",
767 ],
768}
769
770soong_config_module_type {
771 name: "wpa_supplicant_cc_defaults_type",
772 module_type: "cc_defaults",
773 config_namespace: "wpa_supplicant_8",
774 value_variables: [
775 "platform_version",
776 ],
777 properties: ["cflags"],
778}
779
780// Hostap related module share the same CFLAGS
781wpa_supplicant_cc_defaults_type {
782 name: "wpa_supplicant_no_aidl_cflags_default",
783 cflags: [
784 "-DANDROID_LOG_NAME=\"wpa_supplicant\"",
785 "-DANDROID_P2P",
786 "-DCONFIG_ACS",
787 "-DCONFIG_ANDROID_LOG",
788 "-DCONFIG_AP",
789 "-DCONFIG_BACKEND_FILE",
790 "-DCONFIG_CTRL_IFACE",
791 "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/wpa/sockets\"",
792 "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/wpa/sockets\"",
793 "-DCONFIG_CTRL_IFACE_UNIX",
794 "-DCONFIG_DPP",
795 "-DCONFIG_DPP2",
796 "-DCONFIG_DRIVER_NL80211",
Bill Yang08f249a2024-10-08 07:00:08 +0000797 "-DCONFIG_ECC",
798 "-DCONFIG_ERP",
799 "-DCONFIG_FILS",
800 "-DCONFIG_GAS",
801 "-DCONFIG_GAS_SERVER",
802 "-DCONFIG_HMAC_SHA256_KDF",
803 "-DCONFIG_HMAC_SHA384_KDF",
804 "-DCONFIG_HMAC_SHA512_KDF",
805 "-DCONFIG_HS20",
806 "-DCONFIG_IEEE80211AC",
807 "-DCONFIG_IEEE80211R",
808 "-DCONFIG_INTERWORKING",
809 "-DCONFIG_IPV6",
810 "-DCONFIG_JSON",
811 "-DCONFIG_MBO",
812 "-DCONFIG_NO_ACCOUNTING",
813 "-DCONFIG_NO_RADIUS",
814 "-DCONFIG_NO_RADIUS",
815 "-DCONFIG_NO_RANDOM_POOL",
Bill Yang08f249a2024-10-08 07:00:08 +0000816 "-DCONFIG_NO_VLAN",
817 "-DCONFIG_OFFCHANNEL",
818 "-DCONFIG_OWE",
819 "-DCONFIG_P2P",
Bill Yang08f249a2024-10-08 07:00:08 +0000820 "-DCONFIG_PTKSA_CACHE",
821 "-DCONFIG_SAE",
822 "-DCONFIG_SAE_PK",
823 "-DCONFIG_SHA256",
824 "-DCONFIG_SHA384",
825 "-DCONFIG_SHA512",
826 "-DCONFIG_SMARTCARD",
827 "-DCONFIG_SME",
828 "-DCONFIG_SUITEB",
829 "-DCONFIG_SUITEB192",
830 "-DCONFIG_TDLS",
831 "-DCONFIG_WEP",
832 "-DCONFIG_WIFI_DISPLAY",
833 "-DCONFIG_WNM",
834 "-DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/vendor/wifi/wpa\"",
835 "-DCONFIG_WPS",
836 "-DCONFIG_WPS_ER",
837 "-DCONFIG_WPS_NFC",
838 "-DCONFIG_WPS_OOB",
839 "-DCONFIG_WPS_UPNP",
840 "-DCRYPTO_RSA_OAEP_SHA256",
841 "-DEAP_AKA",
842 "-DEAP_AKA_PRIME",
843 "-DEAP_GTC",
844 "-DEAP_LEAP",
845 "-DEAP_MD5",
846 "-DEAP_MSCHAPv2",
847 "-DEAP_OTP",
848 "-DEAP_PEAP",
849 "-DEAP_PWD",
850 "-DEAP_SERVER",
851 "-DEAP_SERVER_IDENTITY",
852 "-DEAP_SERVER_WSC",
853 "-DEAP_SIM",
854 "-DEAP_TLS",
855 "-DEAP_TLSV1_3",
856 "-DEAP_TLS_OPENSSL",
857 "-DEAP_TTLS",
858 "-DEAP_WSC",
859 "-DIEEE8021X_EAPOL",
860 "-DNEED_AP_MLME",
861 "-DPKCS12_FUNCS",
862 "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
863 "-DWPA_IGNORE_CONFIG_ERRORS",
864 "-Wall",
865 "-Werror",
866 "-Wno-error=sometimes-uninitialized",
867 "-Wno-incompatible-pointer-types",
868 "-Wno-incompatible-pointer-types-discards-qualifiers",
869 "-Wno-macro-redefined",
870 "-Wno-parentheses-equality",
871 "-Wno-sign-compare",
872 "-Wno-unused-function",
873 "-Wno-unused-parameter",
874 "-Wno-unused-variable",
875 ] + select(soong_config_variable("wpa_supplicant_8", "wpa_supplicant_use_stub_lib"), {
876 true: ["-DANDROID_LIB_STUB"],
877 default: [],
Bill Yang08f249a2024-10-08 07:00:08 +0000878 }) + select(soong_config_variable("wpa_supplicant_8", "board_wpa_supplicant_private_lib_event"), {
879 true: ["-DANDROID_LIB_EVENT"],
880 default: [],
881 }) + select(soong_config_variable("wpa_supplicant_8", "wifi_priv_cmd_update_mbo_cell_status"), {
882 true: ["-DENABLE_PRIV_CMD_UPDATE_MBO_CELL_STATUS"],
883 default: [],
Bill Yang08f249a2024-10-08 07:00:08 +0000884 }) + select(soong_config_variable("wpa_supplicant_8", "wifi_brcm_open_source_multi_akm"), {
885 true: ["-DWIFI_BRCM_OPEN_SOURCE_MULTI_AKM"],
886 default: [],
Gabriel Birenee26b3d2025-02-12 17:51:24 +0000887 }) + select(soong_config_variable("wpa_supplicant_8", "wpa_supplicant_11ax"), {
888 true: ["-DCONFIG_IEEE80211AX"],
889 default: [],
890 }) + select(soong_config_variable("wpa_supplicant_8", "wpa_supplicant_11be"), {
891 true: ["-DCONFIG_IEEE80211BE"],
892 default: [],
Matthew Wangd79e2672025-03-20 23:23:55 +0000893 }) + select(soong_config_variable("wpa_supplicant", "roaming"), {
894 true: [],
895 default: ["-DCONFIG_NO_ROAMING"],
896 }) + select(soong_config_variable("wpa_supplicant", "pasn"), {
897 false: [],
898 default: ["-DCONFIG_PASN"],
899 }) + select(soong_config_variable("wpa_supplicant", "bgscan_simple"), {
900 true: [
901 "-DCONFIG_BGSCAN",
902 "-DCONFIG_BGSCAN_SIMPLE",
903 ],
904 default: [],
Bill Yang08f249a2024-10-08 07:00:08 +0000905 }),
906 arch: {
907 arm: {
908 cflags: [
909 "-mabi=aapcs-linux",
910 ],
911 },
912 },
913 defaults: [
914 "wpa_supplicant_driver_cflags_default",
915 ],
916 soong_config_variables: {
917 platform_version: {
918 cflags: ["-DVERSION_STR_POSTFIX=\"-%s\""],
919 },
920 },
921}
922
923cc_defaults {
924 name: "wpa_supplicant_cflags_default",
925 cflags: [
926 "-DCONFIG_AIDL",
927 "-DCONFIG_CTRL_IFACE_AIDL",
928 ],
929 defaults: [
930 "wpa_supplicant_no_aidl_cflags_default",
931 ],
932}
933
Gabriel Biren2fc93732024-10-10 00:24:33 +0000934wpa_supplicant_cc_defaults_type {
935 name: "wpa_supplicant_mainline_cflags_default",
936 cflags: [
937 "-DANDROID_LIB_STUB",
938 "-DANDROID_LOG_NAME=\"mainline_supplicant\"",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000939 "-DCONFIG_ANDROID_LOG",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000940 "-DCONFIG_BACKEND_FILE",
941 "-DCONFIG_CTRL_IFACE",
942 "-DCONFIG_CTRL_IFACE_UNIX",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000943 "-DCONFIG_DRIVER_NL80211",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000944 "-DCONFIG_NO_ACCOUNTING",
Matthew Wange1dbf792024-12-02 14:07:11 +0000945 "-DCONFIG_NO_CONFIG_BLOBS",
946 "-DCONFIG_NO_CONFIG_WRITE",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000947 "-DCONFIG_NO_RADIUS",
948 "-DCONFIG_NO_RANDOM_POOL",
949 "-DCONFIG_NO_ROAMING",
Matthew Wange1dbf792024-12-02 14:07:11 +0000950 "-DCONFIG_NO_ROBUST_AV",
951 "-DCONFIG_NO_RRM",
952 "-DCONFIG_NO_SCAN_PROCESSING",
953 "-DCONFIG_NO_TKIP",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000954 "-DCONFIG_NO_VLAN",
Matthew Wange1dbf792024-12-02 14:07:11 +0000955 "-DCONFIG_NO_WMM_AC",
956 "-DCONFIG_NO_WPA",
957 "-DCONFIG_NO_WPA_PASSPHRASE",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000958 "-DCONFIG_OFFCHANNEL",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000959 "-DMAINLINE_SUPPLICANT",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000960 "-DOPENSSL_NO_ENGINE",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000961 "-DWPA_IGNORE_CONFIG_ERRORS",
962 "-Wall",
963 "-Werror",
964 "-Wno-error=sometimes-uninitialized",
965 "-Wno-incompatible-pointer-types",
966 "-Wno-incompatible-pointer-types-discards-qualifiers",
967 "-Wno-macro-redefined",
968 "-Wno-parentheses-equality",
969 "-Wno-sign-compare",
970 "-Wno-unused-function",
971 "-Wno-unused-parameter",
972 "-Wno-unused-variable",
Matthew Wange1dbf792024-12-02 14:07:11 +0000973 ],
Gabriel Biren2fc93732024-10-10 00:24:33 +0000974}
975
Bill Yang08f249a2024-10-08 07:00:08 +0000976cc_defaults {
977 name: "wpa_supplicant_srcs_default",
978 srcs: [
979 "ap.c",
980 "bss.c",
981 "bssid_ignore.c",
982 "config.c",
983 "config_file.c",
984 "ctrl_iface.c",
985 "ctrl_iface_unix.c",
986 "dpp_supplicant.c",
987 "eap_register.c",
988 "events.c",
989 "gas_query.c",
990 "hs20_supplicant.c",
991 "interworking.c",
992 "main.c",
993 "mbo.c",
994 "notify.c",
995 "offchannel.c",
996 "op_classes.c",
997 "p2p_supplicant.c",
998 "p2p_supplicant_sd.c",
Bill Yang08f249a2024-10-08 07:00:08 +0000999 "robust_av.c",
1000 "rrm.c",
1001 "scan.c",
1002 "sme.c",
1003 "twt.c",
1004 "wifi_display.c",
1005 "wmm_ac.c",
1006 "wnm_sta.c",
1007 "wpa_supplicant.c",
1008 "wpas_glue.c",
1009 "wps_supplicant.c",
1010 "src/ap/acs.c",
1011 "src/ap/ap_config.c",
1012 "src/ap/ap_drv_ops.c",
1013 "src/ap/ap_list.c",
1014 "src/ap/ap_mlme.c",
1015 "src/ap/authsrv.c",
1016 "src/ap/beacon.c",
1017 "src/ap/bss_load.c",
1018 "src/ap/comeback_token.c",
1019 "src/ap/ctrl_iface_ap.c",
1020 "src/ap/dfs.c",
1021 "src/ap/dpp_hostapd.c",
1022 "src/ap/drv_callbacks.c",
1023 "src/ap/eap_user_db.c",
1024 "src/ap/fils_hlp.c",
1025 "src/ap/gas_query_ap.c",
1026 "src/ap/gas_serv.c",
1027 "src/ap/hostapd.c",
1028 "src/ap/hs20.c",
1029 "src/ap/hw_features.c",
1030 "src/ap/ieee802_11.c",
1031 "src/ap/ieee802_11_auth.c",
1032 "src/ap/ieee802_11_ht.c",
1033 "src/ap/ieee802_11_shared.c",
1034 "src/ap/ieee802_11_vht.c",
1035 "src/ap/ieee802_1x.c",
1036 "src/ap/mbo_ap.c",
1037 "src/ap/neighbor_db.c",
1038 "src/ap/p2p_hostapd.c",
1039 "src/ap/pmksa_cache_auth.c",
1040 "src/ap/rrm.c",
1041 "src/ap/sta_info.c",
1042 "src/ap/tkip_countermeasures.c",
1043 "src/ap/utils.c",
1044 "src/ap/wmm.c",
1045 "src/ap/wpa_auth.c",
1046 "src/ap/wpa_auth_glue.c",
1047 "src/ap/wpa_auth_ie.c",
1048 "src/ap/wps_hostapd.c",
1049 "src/common/ctrl_iface_common.c",
1050 "src/common/dpp.c",
1051 "src/common/dpp_auth.c",
1052 "src/common/dpp_backup.c",
1053 "src/common/dpp_crypto.c",
1054 "src/common/dpp_pkex.c",
1055 "src/common/dpp_reconfig.c",
1056 "src/common/dpp_tcp.c",
1057 "src/common/dragonfly.c",
1058 "src/common/gas.c",
1059 "src/common/gas_server.c",
1060 "src/common/hw_features_common.c",
1061 "src/common/ieee802_11_common.c",
1062 "src/common/ptksa_cache.c",
1063 "src/common/sae.c",
1064 "src/common/sae_pk.c",
1065 "src/common/wpa_common.c",
1066 "src/crypto/aes-ctr.c",
1067 "src/crypto/aes-siv.c",
1068 "src/crypto/crypto_openssl.c",
1069 "src/crypto/dh_groups.c",
1070 "src/crypto/fips_prf_openssl.c",
1071 "src/crypto/ms_funcs.c",
1072 "src/crypto/sha1-prf.c",
1073 "src/crypto/sha1-tlsprf.c",
1074 "src/crypto/sha256-kdf.c",
1075 "src/crypto/sha256-prf.c",
1076 "src/crypto/sha256-tlsprf.c",
1077 "src/crypto/sha384-kdf.c",
1078 "src/crypto/sha384-prf.c",
1079 "src/crypto/sha512-kdf.c",
1080 "src/crypto/sha512-prf.c",
1081 "src/crypto/tls_openssl.c",
1082 "src/crypto/tls_openssl_ocsp.c",
1083 "src/drivers/driver_common.c",
1084 "src/drivers/driver_nl80211.c",
1085 "src/drivers/driver_nl80211_android.c",
1086 "src/drivers/driver_nl80211_capa.c",
1087 "src/drivers/driver_nl80211_event.c",
1088 "src/drivers/driver_nl80211_monitor.c",
1089 "src/drivers/driver_nl80211_scan.c",
1090 "src/drivers/drivers.c",
1091 "src/drivers/linux_ioctl.c",
1092 "src/drivers/netlink.c",
1093 "src/drivers/rfkill.c",
1094 "src/eap_common/chap.c",
1095 "src/eap_common/eap_common.c",
1096 "src/eap_common/eap_peap_common.c",
1097 "src/eap_common/eap_pwd_common.c",
1098 "src/eap_common/eap_sim_common.c",
1099 "src/eap_common/eap_wsc_common.c",
1100 "src/eap_peer/eap.c",
1101 "src/eap_peer/eap_aka.c",
1102 "src/eap_peer/eap_gtc.c",
1103 "src/eap_peer/eap_leap.c",
1104 "src/eap_peer/eap_md5.c",
1105 "src/eap_peer/eap_methods.c",
1106 "src/eap_peer/eap_mschapv2.c",
1107 "src/eap_peer/eap_otp.c",
1108 "src/eap_peer/eap_peap.c",
1109 "src/eap_peer/eap_pwd.c",
1110 "src/eap_peer/eap_sim.c",
1111 "src/eap_peer/eap_tls.c",
1112 "src/eap_peer/eap_tls_common.c",
1113 "src/eap_peer/eap_ttls.c",
1114 "src/eap_peer/eap_wsc.c",
1115 "src/eap_peer/mschapv2.c",
1116 "src/eap_server/eap_server.c",
1117 "src/eap_server/eap_server_identity.c",
1118 "src/eap_server/eap_server_methods.c",
1119 "src/eap_server/eap_server_wsc.c",
1120 "src/eapol_auth/eapol_auth_sm.c",
1121 "src/eapol_supp/eapol_supp_sm.c",
1122 "src/l2_packet/l2_packet_linux.c",
1123 "src/p2p/p2p.c",
1124 "src/p2p/p2p_build.c",
1125 "src/p2p/p2p_dev_disc.c",
1126 "src/p2p/p2p_go_neg.c",
1127 "src/p2p/p2p_group.c",
1128 "src/p2p/p2p_invitation.c",
1129 "src/p2p/p2p_parse.c",
1130 "src/p2p/p2p_pd.c",
1131 "src/p2p/p2p_sd.c",
1132 "src/p2p/p2p_utils.c",
Bill Yang08f249a2024-10-08 07:00:08 +00001133 "src/rsn_supp/pmksa_cache.c",
1134 "src/rsn_supp/preauth.c",
1135 "src/rsn_supp/tdls.c",
1136 "src/rsn_supp/wpa.c",
1137 "src/rsn_supp/wpa_ft.c",
1138 "src/rsn_supp/wpa_ie.c",
1139 "src/tls/asn1.c",
1140 "src/utils/base64.c",
1141 "src/utils/bitfield.c",
1142 "src/utils/common.c",
1143 "src/utils/config.c",
1144 "src/utils/crc32.c",
1145 "src/utils/eloop.c",
1146 "src/utils/ip_addr.c",
1147 "src/utils/json.c",
1148 "src/utils/os_unix.c",
1149 "src/utils/radiotap.c",
1150 "src/utils/uuid.c",
1151 "src/utils/wpa_debug.c",
1152 "src/utils/wpabuf.c",
1153 "src/wps/http_client.c",
1154 "src/wps/http_server.c",
1155 "src/wps/httpread.c",
1156 "src/wps/ndef.c",
1157 "src/wps/upnp_xml.c",
1158 "src/wps/wps.c",
1159 "src/wps/wps_attr_build.c",
1160 "src/wps/wps_attr_parse.c",
1161 "src/wps/wps_attr_process.c",
1162 "src/wps/wps_common.c",
1163 "src/wps/wps_dev_attr.c",
1164 "src/wps/wps_enrollee.c",
1165 "src/wps/wps_er.c",
1166 "src/wps/wps_er_ssdp.c",
1167 "src/wps/wps_registrar.c",
1168 "src/wps/wps_upnp.c",
1169 "src/wps/wps_upnp_ap.c",
1170 "src/wps/wps_upnp_event.c",
1171 "src/wps/wps_upnp_ssdp.c",
1172 "src/wps/wps_upnp_web.c",
Gabriel Biren917b30e2025-02-19 19:19:25 +00001173 ] + select(soong_config_variable("wpa_supplicant_8", "wpa_supplicant_11ax"), {
1174 true: ["src/ap/ieee802_11_he.c"],
1175 default: [],
1176 }) + select(soong_config_variable("wpa_supplicant_8", "wpa_supplicant_11be"), {
1177 true: ["src/ap/ieee802_11_eht.c"],
1178 default: [],
Matthew Wangd79e2672025-03-20 23:23:55 +00001179 }) + select(soong_config_variable("wpa_supplicant", "bgscan_simple"), {
1180 true: [
1181 "bgscan.c",
1182 "bgscan_simple.c",
1183 ],
1184 default: [],
1185 }) + select(soong_config_variable("wpa_supplicant", "pasn"), {
1186 false: [],
1187 default: [
1188 "pasn_supplicant.c",
1189 "src/pasn/pasn_initiator.c",
1190 "src/pasn/pasn_responder.c",
1191 "src/pasn/pasn_common.c",
1192 ],
Gabriel Biren917b30e2025-02-19 19:19:25 +00001193 }),
Bill Yang08f249a2024-10-08 07:00:08 +00001194 defaults: [
1195 "wpa_supplicant_driver_srcs_default",
1196 ],
1197}
1198
Matthew Wange1dbf792024-12-02 14:07:11 +00001199cc_defaults {
1200 name: "wpa_supplicant_mainline_srcs_default",
1201 srcs: [
1202 "bss.c",
1203 "bssid_ignore.c",
1204 "config.c",
1205 "config_file.c",
1206 "ctrl_iface.c",
1207 "ctrl_iface_unix.c",
1208 "eap_register.c",
1209 "events.c",
1210 "main.c",
1211 "notify.c",
1212 "offchannel.c",
1213 "op_classes.c",
1214 "rrm.c",
1215 "scan.c",
1216 "wpa_supplicant.c",
1217 "wpas_glue.c",
1218 "src/common/ctrl_iface_common.c",
1219 "src/common/hw_features_common.c",
1220 "src/common/ieee802_11_common.c",
1221 "src/common/ptksa_cache.c",
1222 "src/common/wpa_common.c",
1223 "src/crypto/crypto_openssl.c",
1224 "src/crypto/tls_none.c",
1225 "src/drivers/driver_common.c",
1226 "src/drivers/driver_nl80211.c",
1227 "src/drivers/driver_nl80211_android.c",
1228 "src/drivers/driver_nl80211_capa.c",
1229 "src/drivers/driver_nl80211_event.c",
1230 "src/drivers/driver_nl80211_monitor.c",
1231 "src/drivers/driver_nl80211_scan.c",
1232 "src/drivers/drivers.c",
1233 "src/drivers/linux_ioctl.c",
1234 "src/drivers/netlink.c",
1235 "src/drivers/rfkill.c",
1236 "src/l2_packet/l2_packet_linux.c",
1237 "src/rsn_supp/pmksa_cache.c",
1238 "src/utils/base64.c",
1239 "src/utils/bitfield.c",
1240 "src/utils/common.c",
1241 "src/utils/config.c",
1242 "src/utils/crc32.c",
1243 "src/utils/eloop.c",
1244 "src/utils/ip_addr.c",
1245 "src/utils/os_unix.c",
1246 "src/utils/radiotap.c",
1247 "src/utils/wpa_debug.c",
1248 "src/utils/wpabuf.c",
1249 ],
1250 defaults: [
1251 "wpa_supplicant_driver_srcs_default",
1252 ],
1253}
1254
Gabriel Birenf9a14272024-12-09 18:16:21 +00001255cc_defaults {
1256 name: "wpa_supplicant_usd_defaults",
1257 cflags: [
1258 "-DCONFIG_NAN_USD",
1259 ],
1260 srcs: [
1261 "nan_usd.c",
1262 "src/ap/nan_usd_ap.c",
1263 "src/common/nan_de.c",
1264 ],
1265}
1266
Bill Yang08f249a2024-10-08 07:00:08 +00001267cc_binary {
1268 name: "wpa_cli",
1269 proprietary: true,
1270 srcs: [
1271 "wpa_cli.c",
1272 "src/common/cli.c",
1273 "src/common/wpa_ctrl.c",
1274 "src/utils/common.c",
1275 "src/utils/edit.c",
1276 "src/utils/eloop.c",
1277 "src/utils/os_unix.c",
1278 "src/utils/wpa_debug.c",
1279 ],
1280 shared_libs: [
1281 "libcutils",
1282 "liblog",
1283 ],
1284 defaults: [
1285 "wpa_supplicant_cflags_default",
1286 "wpa_supplicant_includes_default",
1287 ],
1288}
1289
1290soong_config_module_type {
1291 name: "wpa_supplicant_cc_binary",
1292 module_type: "cc_binary",
1293 config_namespace: "wpa_supplicant_8",
1294 value_variables: [
1295 "board_wpa_supplicant_private_lib",
1296 ],
1297 bool_variables: [
1298 "wifi_hidl_unified_supplicant_service_rc_entry",
1299 ],
1300 properties: [
1301 "init_rc",
1302 "static_libs",
1303 ],
1304}
1305
1306wpa_supplicant_cc_binary {
1307 name: "wpa_supplicant",
1308 proprietary: true,
1309 relative_install_path: "hw",
1310 // vintf_fragments: wpa_supplicant only
1311 // vintf_fragments: ["aidl/android.hardware.wifi.supplicant.xml"],
1312 required: [
1313 "android.hardware.wifi.supplicant.xml",
1314 ],
1315 // wpa_supplicant only
1316 static_libs: [
1317 "libwpa_aidl",
1318 ],
1319 shared_libs: [
1320 // Share between wpa_supplicant and wpa_supplicant_macsec
1321 "libc",
1322 "libcrypto",
1323 "libcutils",
1324 "libkeystore-engine-wifi-hidl",
1325 "liblog",
1326 "libnl",
1327 "libssl",
1328 ] + [
1329 // wpa_supplicant only
1330 "android.hardware.wifi.supplicant-V4-ndk",
1331 "android.system.keystore2-V1-ndk",
1332 "libbase",
1333 "libbinder_ndk",
1334 "libutils",
1335 ],
1336 defaults: [
1337 "wpa_supplicant_srcs_default",
1338 "wpa_supplicant_cflags_default",
1339 "wpa_supplicant_includes_default",
Gabriel Biren557fe492024-12-11 00:12:43 +00001340 "wpa_supplicant_usd_defaults",
Bill Yang08f249a2024-10-08 07:00:08 +00001341 ],
1342 soong_config_variables: {
1343 board_wpa_supplicant_private_lib: {
1344 static_libs: ["%s"],
1345 },
1346 // init_rc: wpa_supplicant only
1347 wifi_hidl_unified_supplicant_service_rc_entry: {
Gabriel Biren3c401c52024-10-10 20:11:18 +00001348 init_rc: ["aidl/vendor/android.hardware.wifi.supplicant-service.rc"],
Bill Yang08f249a2024-10-08 07:00:08 +00001349 },
1350 },
1351}
1352
1353wpa_supplicant_cc_binary {
1354 name: "wpa_supplicant_macsec",
1355 proprietary: true,
1356 relative_install_path: "hw",
1357 srcs: [
1358 // wpa_supplicant_macsec only
1359 ":wpa_supplicant_macsec_extra_driver_srcs",
1360 "wpas_kay.c",
1361 "src/ap/wpa_auth_kay.c",
1362 "src/pae/ieee802_1x_cp.c",
1363 "src/pae/ieee802_1x_kay.c",
1364 "src/pae/ieee802_1x_key.c",
1365 "src/pae/ieee802_1x_secy_ops.c",
1366 "src/pae/aidl/aidl_psk.cpp",
1367 ],
1368 shared_libs: [
1369 // Share between wpa_supplicant and wpa_supplicant_macsec
1370 "libc",
1371 "libcrypto",
1372 "libcutils",
1373 "libkeystore-engine-wifi-hidl",
1374 "liblog",
1375 "libnl",
1376 "libssl",
1377 ] + [
1378 // wpa_supplicant_macsec only
1379 "android.hardware.macsec-V1-ndk",
1380 "libbinder_ndk",
1381 ],
1382 cflags: [
1383 "-DCONFIG_AIDL_MACSEC_PSK_METHODS",
1384 "-DCONFIG_DRIVER_MACSEC_LINUX",
1385 "-DCONFIG_MACSEC",
1386 ],
1387 local_include_dirs: [
1388 // wpa_supplicant_macsec only
1389 "aidl",
1390 ],
1391 defaults: [
1392 "wpa_supplicant_srcs_default",
1393 "wpa_supplicant_includes_default",
1394 "wpa_supplicant_no_aidl_cflags_default",
1395 ],
1396 soong_config_variables: {
1397 board_wpa_supplicant_private_lib: {
1398 static_libs: ["%s"],
1399 },
1400 },
1401}
1402
Gabriel Biren2fc93732024-10-10 00:24:33 +00001403wpa_supplicant_cc_binary {
1404 name: "wpa_supplicant_mainline",
1405 shared_libs: [
Gabriel Biren2ba9e6c2024-10-23 19:22:38 +00001406 "android.system.wifi.mainline_supplicant-ndk",
1407 "libbase",
1408 "libbinder_ndk",
Gabriel Biren2fc93732024-10-10 00:24:33 +00001409 "libc",
1410 "libcrypto",
1411 "libcutils_sockets",
1412 "liblog",
1413 "libnl",
1414 "libssl",
1415 ],
Gabriel Biren2ba9e6c2024-10-23 19:22:38 +00001416 static_libs: [
1417 "mainline_supplicant_aidl_bp",
1418 ],
Gabriel Biren2fc93732024-10-10 00:24:33 +00001419 defaults: [
Matthew Wange1dbf792024-12-02 14:07:11 +00001420 "wpa_supplicant_mainline_srcs_default",
Gabriel Biren2fc93732024-10-10 00:24:33 +00001421 "wpa_supplicant_includes_default",
1422 "wpa_supplicant_mainline_cflags_default",
Gabriel Biren26c81ac2025-03-06 19:48:43 +00001423 "wpa_supplicant_usd_defaults",
Gabriel Biren2fc93732024-10-10 00:24:33 +00001424 ],
1425 apex_available: [
1426 "//apex_available:platform",
1427 "com.android.wifi",
1428 ],
1429 min_sdk_version: "30",
1430}
1431
Bill Yang08f249a2024-10-08 07:00:08 +00001432cc_library_shared {
1433 name: "libwpa_client",
1434 proprietary: true,
1435 srcs: [
1436 "src/common/wpa_ctrl.c",
1437 "src/utils/os_unix.c",
1438 ],
1439 shared_libs: [
1440 "libc",
1441 "libcutils",
1442 "liblog",
1443 ],
1444 defaults: [
1445 "wpa_supplicant_cflags_default",
1446 "wpa_supplicant_includes_default",
1447 ],
1448}
1449
Gabriel Birenc98b77e2024-11-12 23:40:02 +00001450cc_fuzz {
1451 name: "mainline_supplicant_service_fuzzer",
1452 team: "trendy_team_fwk_wifi_hal",
1453 srcs: [
1454 "aidl/mainline/fuzzers/mainline_supplicant_service_fuzzer.cpp",
1455 ],
1456 defaults: [
1457 "fuzzer_disable_leaks",
1458 "service_fuzzer_defaults",
1459 "wpa_supplicant_includes_default",
1460 "wpa_supplicant_mainline_cflags_default",
Matthew Wange1dbf792024-12-02 14:07:11 +00001461 "wpa_supplicant_mainline_srcs_default",
Gabriel Biren26c81ac2025-03-06 19:48:43 +00001462 "wpa_supplicant_usd_defaults",
Gabriel Birenc98b77e2024-11-12 23:40:02 +00001463 ],
1464 shared_libs: [
1465 "android.system.wifi.mainline_supplicant-ndk",
1466 "libbase",
1467 "libbinder_ndk",
1468 "libc",
1469 "libcrypto",
1470 "libcutils_sockets",
1471 "liblog",
1472 "libnl",
1473 "libssl",
1474 ],
1475 static_libs: [
1476 "mainline_supplicant_aidl_bp",
1477 ],
1478 cflags: [
1479 "-DSUPPLICANT_SERVICE_FUZZER",
1480 ],
1481 fuzz_config: {
1482 triage_assignee: "android-wifi-team@google.com",
1483 },
1484 proto: {
1485 type: "lite",
1486 static: true,
1487 },
1488}
1489
Bill Yang08f249a2024-10-08 07:00:08 +00001490//## Aidl service library ###
1491//#######################
1492cc_library_static {
1493 name: "libwpa_aidl",
1494 vendor: true,
1495 cppflags: [
Gabriel Biren80acc412025-01-30 22:11:33 +00001496 "-DCONFIG_NAN_USD",
Bill Yang08f249a2024-10-08 07:00:08 +00001497 "-Wall",
1498 "-Werror",
1499 "-Wno-unused-parameter",
1500 "-Wno-unused-private-field",
1501 "-Wno-unused-variable",
1502 ],
1503 srcs: [
Gabriel Biren3c401c52024-10-10 20:11:18 +00001504 "aidl/vendor/aidl.cpp",
1505 "aidl/vendor/aidl_manager.cpp",
1506 "aidl/vendor/certificate_utils.cpp",
1507 "aidl/vendor/iface_config_utils.cpp",
1508 "aidl/vendor/p2p_iface.cpp",
1509 "aidl/vendor/p2p_network.cpp",
1510 "aidl/vendor/sta_iface.cpp",
1511 "aidl/vendor/sta_network.cpp",
1512 "aidl/vendor/supplicant.cpp",
Bill Yang08f249a2024-10-08 07:00:08 +00001513 ],
1514 shared_libs: [
1515 "android.hardware.wifi.supplicant-V4-ndk",
1516 "android.system.keystore2-V1-ndk",
1517 "libbinder_ndk",
1518 "libbase",
1519 "libutils",
1520 "liblog",
1521 "libssl",
1522 ],
1523 export_include_dirs: ["aidl"],
1524 defaults: [
1525 "wpa_supplicant_cflags_default",
1526 "wpa_supplicant_includes_default",
1527 ],
1528}
Bill Yang3ec16372025-01-13 09:55:17 +00001529
1530// End of non-cuttlefish section
Deyao Renfbcb6482024-10-29 00:08:28 +00001531
1532genrule {
1533 name: "com.android.hardware.wpa_supplicant.rc-gen",
1534 srcs: ["aidl/vendor/android.hardware.wifi.supplicant-service.rc"],
1535 out: ["com.android.hardware.wpa_supplicant.rc"],
1536 cmd: "sed -E 's@/vendor/bin@/apex/com.android.hardware.wpa_supplicant/bin@' $(in) > $(out)",
1537}
1538
1539prebuilt_etc {
1540 name: "com.android.hardware.wpa_supplicant.rc",
1541 src: ":com.android.hardware.wpa_supplicant.rc-gen",
1542 installable: false,
1543}