blob: fb74517c42c977ec1e1b4744fd58741ae98531ad [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
15package {
16 default_applicable_licenses: [
Bob Badour618e16c2022-02-14 12:41:29 -080017 // Inherits SPDX-license-identifier-BSD-3-Clause
18 "external_wpa_supplicant_8_license",
Daniel Norman1f2ba852021-10-04 16:14:43 -070019 ],
20}
21
Bob Badour618e16c2022-02-14 12:41:29 -080022// See: http://go/android-license-faq
Daniel Norman1f2ba852021-10-04 16:14:43 -070023license {
Bob Badour618e16c2022-02-14 12:41:29 -080024 name: "external_wpa_supplicant_8_wpa_supplicant_icons_license",
25 license_kinds: ["SPDX-license-identifier-CC0-1.0"],
26 license_text: ["wpa_gui-qt4/icons/LICENSE"],
27}
28
29// Ostensibly unused.
30filegroup {
31 name: "wpa_supplicant_gui_qt4_icons",
32 srcs: ["wpa_gui-qt4/icons/*.svg"],
33 licenses: [
34 "external_wpa_supplicant_8_license",
35 "external_wpa_supplicant_8_wpa_supplicant_icons_license",
Daniel Norman1f2ba852021-10-04 16:14:43 -070036 ],
37}
38
39cc_library_headers {
40 name: "wpa_supplicant_headers",
41 export_include_dirs: [
42 ".",
43 "src",
44 "src/common",
45 "src/drivers",
46 "src/eap_common",
47 "src/eapol_supp",
48 "src/eap_peer",
49 "src/eap_server",
50 "src/l2_packet",
51 "src/radius",
52 "src/rsn_supp",
53 "src/tls",
54 "src/utils",
55 "src/wps",
56 ],
57 soc_specific: true,
58}
59
Gabriel Biren2ba9e6c2024-10-23 19:22:38 +000060cc_library_headers {
61 name: "wpa_supplicant_headers_mainline",
62 export_include_dirs: [
63 ".",
64 "src",
65 "src/common",
66 "src/drivers",
67 "src/eap_common",
68 "src/eapol_supp",
69 "src/eap_peer",
70 "src/eap_server",
71 "src/l2_packet",
72 "src/radius",
73 "src/rsn_supp",
74 "src/tls",
75 "src/utils",
76 "src/wps",
77 ],
78 apex_available: [
79 "//apex_available:platform",
80 "com.android.wifi",
81 ],
82 min_sdk_version: "30",
83}
84
Daniel Norman1f2ba852021-10-04 16:14:43 -070085filegroup {
86 name: "wpa_supplicant_template.conf",
87 srcs: ["wpa_supplicant_template.conf"],
88}
89
90cc_defaults {
91 name: "wpa_supplicant_defaults",
92 defaults: ["wpa_supplicant_cflags_defaults"],
93 srcs: [":wpa_supplicant_srcs"],
94 shared_libs: [
Sunil Ravic1ac7ed2024-09-18 04:46:34 +000095 "android.hardware.wifi.supplicant-V4-ndk",
Gabriel Biren6b4e8272022-12-14 23:07:53 +000096 "android.system.keystore2-V1-ndk",
Daniel Norman1f2ba852021-10-04 16:14:43 -070097 "libbase",
Gabriel Biren57ededa2021-09-03 16:08:50 +000098 "libbinder_ndk",
Daniel Norman1f2ba852021-10-04 16:14:43 -070099 "libc",
100 "libcrypto",
101 "libcutils",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700102 "libkeystore-engine-wifi-hidl",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700103 "liblog",
104 "libnl",
105 "libssl",
106 "libutils",
107 ],
108 relative_install_path: "hw",
109 soc_specific: true,
110 static_libs: [
Gabriel Biren57ededa2021-09-03 16:08:50 +0000111 "libwpa_aidl_bp",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700112 ],
113 header_libs: [
114 "wpa_supplicant_headers",
Gabriel Biren57ededa2021-09-03 16:08:50 +0000115 "libwpa_aidl_headers",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700116 ],
117}
118
Cole Faust0b99b522024-08-20 15:34:57 -0700119cc_defaults {
Daniel Norman1f2ba852021-10-04 16:14:43 -0700120 name: "wpa_supplicant_cflags_defaults",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700121 // Generated by building wpa_supplicant and printing LOCAL_CFLAGS.
122 cflags: [
123 "-DANDROID_LOG_NAME=\"wpa_supplicant\"",
124 "-DANDROID_P2P",
125 "-DCONFIG_ACS",
126 "-DCONFIG_ANDROID_LOG",
127 "-DCONFIG_AP",
128 "-DCONFIG_BACKEND_FILE",
129 "-DCONFIG_CTRL_IFACE",
130 "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/wpa/sockets\"",
131 "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/wpa/sockets\"",
Gabriel Biren57ededa2021-09-03 16:08:50 +0000132 "-DCONFIG_CTRL_IFACE_AIDL",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700133 "-DCONFIG_CTRL_IFACE_UNIX",
134 "-DCONFIG_DPP",
135 "-DCONFIG_DPP2",
136 "-DCONFIG_DRIVER_NL80211",
137 "-DCONFIG_ECC",
138 "-DCONFIG_ERP",
139 "-DCONFIG_FILS",
140 "-DCONFIG_GAS",
141 "-DCONFIG_GAS_SERVER",
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +0000142 "-DCONFIG_AIDL",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700143 "-DCONFIG_HMAC_SHA256_KDF",
144 "-DCONFIG_HMAC_SHA384_KDF",
145 "-DCONFIG_HMAC_SHA512_KDF",
146 "-DCONFIG_HS20",
147 "-DCONFIG_IEEE80211AC",
148 "-DCONFIG_IEEE80211R",
149 "-DCONFIG_INTERWORKING",
150 "-DCONFIG_IPV6",
151 "-DCONFIG_JSON",
152 "-DCONFIG_MBO",
Gabriel Biren06fd5252024-12-26 22:10:24 +0000153 "-DCONFIG_NAN_USD",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700154 "-DCONFIG_NO_ACCOUNTING",
155 "-DCONFIG_NO_RADIUS",
156 "-DCONFIG_NO_RADIUS",
157 "-DCONFIG_NO_RANDOM_POOL",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700158 "-DCONFIG_NO_VLAN",
159 "-DCONFIG_OFFCHANNEL",
160 "-DCONFIG_OWE",
161 "-DCONFIG_P2P",
162 "-DCONFIG_SAE",
163 "-DCONFIG_SAE_PK",
164 "-DCONFIG_SHA256",
165 "-DCONFIG_SHA384",
166 "-DCONFIG_SHA512",
167 "-DCONFIG_SMARTCARD",
168 "-DCONFIG_SME",
169 "-DCONFIG_SUITEB",
170 "-DCONFIG_SUITEB192",
171 "-DCONFIG_TDLS",
172 "-DCONFIG_WEP",
173 "-DCONFIG_WIFI_DISPLAY",
174 "-DCONFIG_WNM",
175 "-DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/vendor/wifi/wpa\"",
176 "-DCONFIG_WPS",
177 "-DCONFIG_WPS_ER",
178 "-DCONFIG_WPS_NFC",
179 "-DCONFIG_WPS_OOB",
180 "-DCONFIG_WPS_UPNP",
181 "-DEAP_AKA",
182 "-DEAP_AKA_PRIME",
183 "-DEAP_GTC",
184 "-DEAP_LEAP",
185 "-DEAP_MD5",
186 "-DEAP_MSCHAPv2",
187 "-DEAP_OTP",
188 "-DEAP_PEAP",
Vinay Gannevarame008ff32024-07-17 18:53:59 +0530189 "-DCONFIG_PTKSA_CACHE",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700190 "-DEAP_PWD",
191 "-DEAP_SERVER",
192 "-DEAP_SERVER_IDENTITY",
193 "-DEAP_SERVER_WSC",
194 "-DEAP_SIM",
195 "-DEAP_TLS",
196 "-DEAP_TLS_OPENSSL",
197 "-DEAP_TTLS",
198 "-DEAP_WSC",
199 "-DIEEE8021X_EAPOL",
200 "-DNEED_AP_MLME",
201 "-DPKCS12_FUNCS",
202 "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
203 "-DWPA_IGNORE_CONFIG_ERRORS",
204 "-Wall",
205 "-Werror",
206 "-Wno-error=sometimes-uninitialized",
207 "-Wno-incompatible-pointer-types",
208 "-Wno-incompatible-pointer-types-discards-qualifiers",
209 "-Wno-macro-redefined",
210 "-Wno-parentheses-equality",
211 "-Wno-sign-compare",
212 "-Wno-unused-function",
213 "-Wno-unused-parameter",
214 "-Wno-unused-variable",
Cole Faust0b99b522024-08-20 15:34:57 -0700215 ] +
216 // Devices that include this module should set these soong config vars appropriately.
217 // For example:
218 // $(call soong_config_set, wpa_supplicant, platform_version, $(PLATFORM_VERSION))
219 // $(call soong_config_set, wpa_supplicant, nl80211_driver, CONFIG_DRIVER_NL80211_QCA)
220 select(soong_config_variable("wpa_supplicant", "platform_version"), {
221 any @ version: ["-DVERSION_STR_POSTFIX=\"-" + version + "\""],
222 default: ["-DVERSION_STR_POSTFIX=\"-Android\""],
223 }) +
224 select(soong_config_variable("wpa_supplicant", "nl80211_driver"), {
225 any @ driver: ["-D" + driver],
226 // Flag is optional, so no default value provided.
227 default: [],
Matthew Wangb1297142024-09-25 16:08:47 +0000228 }) +
229 select(soong_config_variable("wpa_supplicant", "roaming"), {
230 true: [],
231 default: ["-DCONFIG_NO_ROAMING"],
Matthew Wang532c5982024-10-10 12:23:20 +0000232 }) +
233 select(soong_config_variable("wpa_supplicant", "pasn"), {
234 false: [],
235 default: ["-DCONFIG_PASN"],
236 }) +
237 select(soong_config_variable("wpa_supplicant", "bgscan_simple"), {
238 true: [
239 "-DCONFIG_BGSCAN",
240 "-DCONFIG_BGSCAN_SIMPLE",
241 ],
242 default: [],
Cole Faust0b99b522024-08-20 15:34:57 -0700243 }),
Chih-Hung Hsiehf3cee1d2022-12-02 13:06:22 -0800244 // Similar to suppressing clang compiler warnings, here we
245 // suppress clang-tidy warnings to reduce noises in Android build.log.
246 tidy_checks: [
247 "-android-cloexec-*",
248 "-bugprone-branch-clone",
249 "-bugprone-macro-parentheses",
250 "-bugprone-misplaced-widening-cast",
251 "-bugprone-signal-handler",
252 "-bugprone-signed-char-misuse",
253 "-bugprone-sizeof-expression",
254 "-bugprone-suspicious-string-compare",
255 "-bugprone-too-small-loop-variable",
256 "-cert-err34-c",
257 "-cert-msc30-c",
258 "-cert-msc50-cpp",
259 "-cert-msc54-cpp",
260 "-cert-sig30-c",
261 "-cert-str34-c",
262 "-clang-analyzer-core.NullDereference",
263 "-clang-analyzer-core.UndefinedBinaryOperatorResult",
264 "-clang-analyzer-deadcode.DeadStores",
265 "-clang-analyzer-optin.performance.Padding",
266 "-clang-analyzer-optin.portability.UnixAPI",
267 "-clang-analyzer-security.insecureAPI.UncheckedReturn",
268 "-clang-analyzer-unix.cstring.NullArg",
269 "-clang-analyzer-unix.Malloc",
270 "-clang-diagnostic-unused-but-set-variable",
271 "-misc-redundant-expression",
272 ],
Daniel Norman1f2ba852021-10-04 16:14:43 -0700273}
274
275// Generated by building wpa_supplicant and printing LOCAL_SRC_FILES.
276filegroup {
277 name: "wpa_supplicant_srcs",
278 srcs: [
279 "ap.c",
280 "bss.c",
281 "bssid_ignore.c",
282 "config.c",
283 "config_file.c",
284 "ctrl_iface.c",
285 "ctrl_iface_unix.c",
286 "dpp_supplicant.c",
287 "eap_register.c",
288 "events.c",
289 "gas_query.c",
290 "hs20_supplicant.c",
291 "interworking.c",
292 "main.c",
293 "mbo.c",
Gabriel Biren06fd5252024-12-26 22:10:24 +0000294 "nan_usd.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700295 "notify.c",
296 "offchannel.c",
297 "op_classes.c",
298 "p2p_supplicant.c",
299 "p2p_supplicant_sd.c",
300 "robust_av.c",
301 "rrm.c",
302 "scan.c",
303 "sme.c",
304 "src/ap/acs.c",
305 "src/ap/ap_config.c",
306 "src/ap/ap_drv_ops.c",
307 "src/ap/ap_list.c",
Sunil Ravi38ad1ed2023-01-17 23:58:31 +0000308 "src/ap/comeback_token.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700309 "src/ap/ap_mlme.c",
310 "src/ap/authsrv.c",
311 "src/ap/beacon.c",
312 "src/ap/bss_load.c",
313 "src/ap/ctrl_iface_ap.c",
314 "src/ap/dfs.c",
315 "src/ap/dpp_hostapd.c",
316 "src/ap/drv_callbacks.c",
317 "src/ap/eap_user_db.c",
318 "src/ap/fils_hlp.c",
319 "src/ap/gas_query_ap.c",
320 "src/ap/gas_serv.c",
321 "src/ap/hostapd.c",
322 "src/ap/hs20.c",
323 "src/ap/hw_features.c",
324 "src/ap/ieee802_11_auth.c",
325 "src/ap/ieee802_11.c",
326 "src/ap/ieee802_11_ht.c",
327 "src/ap/ieee802_11_shared.c",
328 "src/ap/ieee802_11_vht.c",
329 "src/ap/ieee802_1x.c",
330 "src/ap/mbo_ap.c",
Gabriel Biren06fd5252024-12-26 22:10:24 +0000331 "src/ap/nan_usd_ap.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700332 "src/ap/neighbor_db.c",
333 "src/ap/p2p_hostapd.c",
334 "src/ap/pmksa_cache_auth.c",
335 "src/ap/rrm.c",
336 "src/ap/sta_info.c",
337 "src/ap/tkip_countermeasures.c",
338 "src/ap/utils.c",
339 "src/ap/wmm.c",
340 "src/ap/wpa_auth.c",
341 "src/ap/wpa_auth_glue.c",
342 "src/ap/wpa_auth_ie.c",
343 "src/ap/wps_hostapd.c",
344 "src/common/ctrl_iface_common.c",
345 "src/common/dpp_auth.c",
346 "src/common/dpp_backup.c",
347 "src/common/dpp.c",
348 "src/common/dpp_crypto.c",
349 "src/common/dpp_pkex.c",
350 "src/common/dpp_reconfig.c",
351 "src/common/dpp_tcp.c",
352 "src/common/dragonfly.c",
353 "src/common/gas.c",
354 "src/common/gas_server.c",
355 "src/common/hw_features_common.c",
356 "src/common/ieee802_11_common.c",
Gabriel Biren06fd5252024-12-26 22:10:24 +0000357 "src/common/nan_de.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700358 "src/common/sae.c",
359 "src/common/sae_pk.c",
360 "src/common/wpa_common.c",
Sunil Ravi99c035e2024-07-12 01:42:03 +0000361 "src/common/ptksa_cache.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700362 "src/crypto/aes-ctr.c",
chao.meng4c248f02023-11-18 16:55:52 +0800363 "src/crypto/aes-encblock.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700364 "src/crypto/aes-siv.c",
365 "src/crypto/crypto_openssl.c",
366 "src/crypto/dh_groups.c",
367 "src/crypto/fips_prf_openssl.c",
chao.meng4c248f02023-11-18 16:55:52 +0800368 "src/crypto/milenage.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700369 "src/crypto/ms_funcs.c",
370 "src/crypto/sha1-prf.c",
371 "src/crypto/sha1-tlsprf.c",
372 "src/crypto/sha256-kdf.c",
373 "src/crypto/sha256-prf.c",
374 "src/crypto/sha256-tlsprf.c",
375 "src/crypto/sha384-kdf.c",
376 "src/crypto/sha384-prf.c",
377 "src/crypto/sha512-kdf.c",
378 "src/crypto/sha512-prf.c",
379 "src/crypto/tls_openssl.c",
380 "src/crypto/tls_openssl_ocsp.c",
381 "src/drivers/driver_common.c",
382 "src/drivers/driver_nl80211_android.c",
383 "src/drivers/driver_nl80211.c",
384 "src/drivers/driver_nl80211_capa.c",
385 "src/drivers/driver_nl80211_event.c",
386 "src/drivers/driver_nl80211_monitor.c",
387 "src/drivers/driver_nl80211_scan.c",
388 "src/drivers/drivers.c",
389 "src/drivers/linux_ioctl.c",
390 "src/drivers/netlink.c",
391 "src/drivers/rfkill.c",
392 "src/eap_common/chap.c",
393 "src/eap_common/eap_common.c",
394 "src/eap_common/eap_peap_common.c",
395 "src/eap_common/eap_pwd_common.c",
396 "src/eap_common/eap_sim_common.c",
397 "src/eap_common/eap_wsc_common.c",
398 "src/eapol_auth/eapol_auth_sm.c",
399 "src/eapol_supp/eapol_supp_sm.c",
400 "src/eap_peer/eap_aka.c",
401 "src/eap_peer/eap.c",
402 "src/eap_peer/eap_gtc.c",
403 "src/eap_peer/eap_leap.c",
404 "src/eap_peer/eap_md5.c",
405 "src/eap_peer/eap_methods.c",
406 "src/eap_peer/eap_mschapv2.c",
407 "src/eap_peer/eap_otp.c",
408 "src/eap_peer/eap_peap.c",
409 "src/eap_peer/eap_pwd.c",
410 "src/eap_peer/eap_sim.c",
411 "src/eap_peer/eap_tls.c",
412 "src/eap_peer/eap_tls_common.c",
413 "src/eap_peer/eap_ttls.c",
414 "src/eap_peer/eap_wsc.c",
415 "src/eap_peer/mschapv2.c",
416 "src/eap_server/eap_server.c",
417 "src/eap_server/eap_server_identity.c",
418 "src/eap_server/eap_server_methods.c",
419 "src/eap_server/eap_server_wsc.c",
420 "src/l2_packet/l2_packet_linux.c",
421 "src/p2p/p2p_build.c",
422 "src/p2p/p2p.c",
423 "src/p2p/p2p_dev_disc.c",
424 "src/p2p/p2p_go_neg.c",
425 "src/p2p/p2p_group.c",
426 "src/p2p/p2p_invitation.c",
427 "src/p2p/p2p_parse.c",
428 "src/p2p/p2p_pd.c",
429 "src/p2p/p2p_sd.c",
430 "src/p2p/p2p_utils.c",
431 "src/rsn_supp/pmksa_cache.c",
432 "src/rsn_supp/preauth.c",
433 "src/rsn_supp/tdls.c",
434 "src/rsn_supp/wpa.c",
435 "src/rsn_supp/wpa_ft.c",
436 "src/rsn_supp/wpa_ie.c",
437 "src/tls/asn1.c",
438 "src/utils/base64.c",
439 "src/utils/bitfield.c",
440 "src/utils/common.c",
441 "src/utils/config.c",
442 "src/utils/crc32.c",
443 "src/utils/eloop.c",
444 "src/utils/ip_addr.c",
445 "src/utils/json.c",
446 "src/utils/os_unix.c",
447 "src/utils/radiotap.c",
448 "src/utils/uuid.c",
449 "src/utils/wpabuf.c",
450 "src/utils/wpa_debug.c",
451 "src/wps/http_client.c",
452 "src/wps/httpread.c",
453 "src/wps/http_server.c",
454 "src/wps/ndef.c",
455 "src/wps/upnp_xml.c",
456 "src/wps/wps_attr_build.c",
457 "src/wps/wps_attr_parse.c",
458 "src/wps/wps_attr_process.c",
459 "src/wps/wps.c",
460 "src/wps/wps_common.c",
461 "src/wps/wps_dev_attr.c",
462 "src/wps/wps_enrollee.c",
463 "src/wps/wps_er.c",
464 "src/wps/wps_er_ssdp.c",
465 "src/wps/wps_registrar.c",
466 "src/wps/wps_upnp_ap.c",
467 "src/wps/wps_upnp.c",
468 "src/wps/wps_upnp_event.c",
469 "src/wps/wps_upnp_ssdp.c",
470 "src/wps/wps_upnp_web.c",
chao.meng4c248f02023-11-18 16:55:52 +0800471 "twt.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700472 "wifi_display.c",
473 "wmm_ac.c",
474 "wnm_sta.c",
475 "wpas_glue.c",
476 "wpa_supplicant.c",
477 "wps_supplicant.c",
Matthew Wang532c5982024-10-10 12:23:20 +0000478 ] +
479 select(soong_config_variable("wpa_supplicant", "bgscan_simple"), {
480 true: [
481 "bgscan.c",
482 "bgscan_simple.c",
483 ],
484 default: [],
485 }) +
486 select(soong_config_variable("wpa_supplicant", "pasn"), {
487 false: [],
488 default: [
489 "pasn_supplicant.c",
490 "src/pasn/pasn_initiator.c",
491 "src/pasn/pasn_responder.c",
492 "src/pasn/pasn_common.c",
493 ],
494 }),
495
Sunil Ravi3db35ff2023-11-06 23:23:30 +0000496}
chao.meng4c248f02023-11-18 16:55:52 +0800497
498// Generated by building wpa_cli and printing LOCAL_SRC_FILES
499filegroup {
500 name: "wpa_cli_srcs",
501 srcs: [
502 "src/common/cli.c",
Gabriel Birenc69c43d2024-05-24 16:58:00 +0000503 "src/common/wpa_ctrl.c",
chao.meng4c248f02023-11-18 16:55:52 +0800504 "src/utils/common.c",
505 "src/utils/edit.c",
506 "src/utils/eloop.c",
507 "src/utils/os_unix.c",
508 "src/utils/wpa_debug.c",
509 "wpa_cli.c",
510 ],
511}
512
513// Generated by building libwpa_client and printing LOCAL_SRC_FILES
514filegroup {
515 name: "libwpa_client_srcs",
516 srcs: [
517 "src/common/wpa_ctrl.c",
518 "src/utils/os_unix.c",
519 ],
520}
521
522cc_library_headers {
523 name: "libwpa_client_headers",
524 export_include_dirs: [
525 ".",
526 "wpa_client_include/libwpa_client",
527 ],
528 soc_specific: true,
529}
Vinay Gannevaram97e30ce2024-04-04 11:37:19 +0530530
531cc_library {
532 name: "libpasn",
533 vendor: true,
534 cflags: [
535 "-DANDROID_LOG_NAME=\"libpasn\"",
536 "-DANDROID_P2P",
537 "-DCONFIG_ACS",
538 "-DCONFIG_ANDROID_LOG",
539 "-DCONFIG_AP",
540 "-DCONFIG_BACKEND_FILE",
541 "-DCONFIG_CTRL_IFACE",
542 "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/wpa/sockets\"",
543 "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/wpa/sockets\"",
544 "-DCONFIG_CTRL_IFACE_AIDL",
545 "-DCONFIG_CTRL_IFACE_UNIX",
546 "-DCONFIG_DPP",
547 "-DCONFIG_DPP2",
548 "-DCONFIG_DRIVER_NL80211",
549 "-DCONFIG_ECC",
550 "-DCONFIG_ERP",
551 "-DCONFIG_FILS",
552 "-DCONFIG_GAS",
553 "-DCONFIG_GAS_SERVER",
554 "-DCONFIG_AIDL",
555 "-DCONFIG_HMAC_SHA256_KDF",
556 "-DCONFIG_HMAC_SHA384_KDF",
557 "-DCONFIG_HMAC_SHA512_KDF",
558 "-DCONFIG_HS20",
559 "-DCONFIG_IEEE80211AC",
560 "-DCONFIG_IEEE80211R",
561 "-DCONFIG_INTERWORKING",
562 "-DCONFIG_IPV6",
563 "-DCONFIG_JSON",
564 "-DCONFIG_MBO",
565 "-DCONFIG_NO_ACCOUNTING",
566 "-DCONFIG_NO_RADIUS",
567 "-DCONFIG_NO_RADIUS",
568 "-DCONFIG_NO_RANDOM_POOL",
569 "-DCONFIG_NO_ROAMING",
570 "-DCONFIG_NO_VLAN",
571 "-DCONFIG_OFFCHANNEL",
572 "-DCONFIG_OWE",
573 "-DCONFIG_P2P",
574 "-DCONFIG_SAE",
575 "-DCONFIG_SAE_PK",
576 "-DCONFIG_SHA256",
577 "-DCONFIG_SHA384",
578 "-DCONFIG_SHA512",
579 "-DCONFIG_SMARTCARD",
580 "-DCONFIG_SME",
581 "-DCONFIG_SUITEB",
582 "-DCONFIG_SUITEB192",
583 "-DCONFIG_TDLS",
584 "-DCONFIG_WEP",
585 "-DCONFIG_WIFI_DISPLAY",
586 "-DCONFIG_WNM",
587 "-DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/vendor/wifi/wpa\"",
588 "-DCONFIG_WPS",
589 "-DCONFIG_WPS_ER",
590 "-DCONFIG_WPS_NFC",
591 "-DCONFIG_WPS_OOB",
592 "-DCONFIG_WPS_UPNP",
593 "-DEAP_AKA",
594 "-DEAP_AKA_PRIME",
595 "-DEAP_GTC",
596 "-DEAP_LEAP",
597 "-DEAP_MD5",
598 "-DEAP_MSCHAPv2",
599 "-DEAP_OTP",
600 "-DEAP_PEAP",
601 "-DCONFIG_PASN",
602 "-DCONFIG_PTKSA_CACHE",
603 "-DEAP_PWD",
604 "-DEAP_SERVER",
605 "-DEAP_SERVER_IDENTITY",
606 "-DEAP_SERVER_WSC",
607 "-DEAP_SIM",
608 "-DEAP_TLS",
609 "-DEAP_TLS_OPENSSL",
610 "-DEAP_TTLS",
611 "-DEAP_WSC",
612 "-DIEEE8021X_EAPOL",
613 "-DNEED_AP_MLME",
614 "-DPKCS12_FUNCS",
615 "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
616 "-DWPA_IGNORE_CONFIG_ERRORS",
617 "-Wall",
618 "-Werror",
619 "-Wno-error=sometimes-uninitialized",
620 "-Wno-incompatible-pointer-types",
621 "-Wno-incompatible-pointer-types-discards-qualifiers",
622 "-Wno-macro-redefined",
623 "-Wno-parentheses-equality",
624 "-Wno-sign-compare",
625 "-Wno-unused-function",
626 "-Wno-unused-parameter",
627 "-Wno-unused-variable",
628 ],
629 product_variables: {
630 debuggable: {
631 cflags: ["-DLOG_NDEBUG=0"],
632 },
633 },
634 local_include_dirs: [
635 ".",
636 "src",
637 "src/common",
638 "src/drivers",
639 "src/eap_common",
640 "src/eapol_supp",
641 "src/eap_peer",
642 "src/eap_server",
643 "src/l2_packet",
644 "src/radius",
645 "src/rsn_supp",
646 "src/tls",
647 "src/utils",
648 "src/wps",
649 ],
650 srcs: [
651 "src/utils/eloop.c",
652 "src/utils/wpa_debug.c",
653 "src/utils/wpabuf.c",
654 "src/utils/os_unix.c",
655 "src/utils/config.c",
656 "src/utils/common.c",
657 "src/utils/base64.c",
658 "src/common/sae.c",
659 "src/common/sae_pk.c",
660 "src/common/wpa_common.c",
661 "src/common/ieee802_11_common.c",
662 "src/common/dragonfly.c",
663 "src/common/ptksa_cache.c",
664 "src/rsn_supp/pmksa_cache.c",
665 "src/rsn_supp/wpa_ie.c",
666 "src/ap/comeback_token.c",
667 "src/ap/pmksa_cache_auth.c",
668 "src/eap_common/eap_common.c",
669 "src/eap_common/chap.c",
670 "src/eap_peer/eap.c",
671 "src/eap_peer/eap_methods.c",
672 "src/eapol_supp/eapol_supp_sm.c",
673 "src/crypto/crypto_openssl.c",
674 "src/crypto/tls_openssl.c",
675 "src/crypto/tls_openssl_ocsp.c",
676 "src/crypto/sha256-tlsprf.c",
677 "src/crypto/sha512-prf.c",
678 "src/crypto/sha384-prf.c",
679 "src/crypto/sha256-prf.c",
680 "src/crypto/sha512-kdf.c",
681 "src/crypto/sha384-kdf.c",
682 "src/crypto/sha256-kdf.c",
683 "src/crypto/dh_groups.c",
684 "src/crypto/aes-siv.c",
685 "src/crypto/aes-ctr.c",
686 "src/crypto/sha1-prf.c",
687 "src/crypto/sha1-tlsprf.c",
688 "src/pasn/pasn_initiator.c",
689 "src/pasn/pasn_responder.c",
690 "src/pasn/pasn_common.c",
691 ],
692 shared_libs: [
693 "libc",
694 "libcutils",
695 "liblog",
696 "libcrypto",
697 "libssl",
698 "libkeystore-engine-wifi-hidl",
699 ],
700 sanitize: {
701 misc_undefined: [
702 "unsigned-integer-overflow",
703 "signed-integer-overflow",
704 ],
705 cfi: true,
706 },
707}
Bill Yang08f249a2024-10-08 07:00:08 +0000708
709// For converting the default to soong
710cc_defaults {
711 name: "wpa_supplicant_driver_srcs_default",
712 srcs: [
713 "src/drivers/driver_nl80211.c",
714 "src/drivers/driver_nl80211_android.c",
715 "src/drivers/driver_nl80211_capa.c",
716 "src/drivers/driver_nl80211_event.c",
717 "src/drivers/driver_nl80211_monitor.c",
718 "src/drivers/driver_nl80211_scan.c",
719 "src/drivers/linux_ioctl.c",
720 "src/drivers/netlink.c",
721 "src/drivers/rfkill.c",
722 "src/utils/radiotap.c",
723 ],
724}
725
726cc_defaults {
727 name: "wpa_supplicant_driver_cflags_default",
728 cflags: [
729 "-DCONFIG_DRIVER_NL80211",
730 // Because the original Android.mk will call hostapd's Android.mk first and it
731 // will make the flag share with wpa_supplicant, keep the original logic in hostapd.
732 ] + select(soong_config_variable("wpa_supplicant_8", "board_wlan_device"), {
733 "bcmdhd": ["-DCONFIG_DRIVER_NL80211_BRCM"],
734 "synadhd": ["-DCONFIG_DRIVER_NL80211_SYNA"],
735 "qcwcn": ["-DCONFIG_DRIVER_NL80211_QCA"],
736 default: ["-DCONFIG_DRIVER_NL80211_QCA"],
737 }),
738}
739
740cc_defaults {
741 name: "wpa_supplicant_includes_default",
742 local_include_dirs: [
743 ".",
744 "src",
745 "src/common",
746 "src/drivers",
747 "src/eap_common",
748 "src/eap_peer",
749 "src/eap_server",
750 "src/eapol_supp",
751 "src/l2_packet",
752 "src/pasn",
753 "src/radius",
754 "src/rsn_supp",
755 "src/tls",
756 "src/utils",
757 "src/wps",
758 ],
759 include_dirs: [
760 // There's an if condition for external/libnl but current code base should always have this.
761 "external/libnl/include",
762 "system/security/keystore/include",
763 ],
764}
765
766soong_config_module_type {
767 name: "wpa_supplicant_cc_defaults_type",
768 module_type: "cc_defaults",
769 config_namespace: "wpa_supplicant_8",
770 value_variables: [
771 "platform_version",
772 ],
773 properties: ["cflags"],
774}
775
776// Hostap related module share the same CFLAGS
777wpa_supplicant_cc_defaults_type {
778 name: "wpa_supplicant_no_aidl_cflags_default",
779 cflags: [
780 "-DANDROID_LOG_NAME=\"wpa_supplicant\"",
781 "-DANDROID_P2P",
782 "-DCONFIG_ACS",
783 "-DCONFIG_ANDROID_LOG",
784 "-DCONFIG_AP",
785 "-DCONFIG_BACKEND_FILE",
786 "-DCONFIG_CTRL_IFACE",
787 "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/wpa/sockets\"",
788 "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/wpa/sockets\"",
789 "-DCONFIG_CTRL_IFACE_UNIX",
790 "-DCONFIG_DPP",
791 "-DCONFIG_DPP2",
792 "-DCONFIG_DRIVER_NL80211",
793 "-DCONFIG_DRIVER_NL80211_QCA",
794 "-DCONFIG_ECC",
795 "-DCONFIG_ERP",
796 "-DCONFIG_FILS",
797 "-DCONFIG_GAS",
798 "-DCONFIG_GAS_SERVER",
799 "-DCONFIG_HMAC_SHA256_KDF",
800 "-DCONFIG_HMAC_SHA384_KDF",
801 "-DCONFIG_HMAC_SHA512_KDF",
802 "-DCONFIG_HS20",
803 "-DCONFIG_IEEE80211AC",
804 "-DCONFIG_IEEE80211R",
805 "-DCONFIG_INTERWORKING",
806 "-DCONFIG_IPV6",
807 "-DCONFIG_JSON",
808 "-DCONFIG_MBO",
809 "-DCONFIG_NO_ACCOUNTING",
810 "-DCONFIG_NO_RADIUS",
811 "-DCONFIG_NO_RADIUS",
812 "-DCONFIG_NO_RANDOM_POOL",
813 "-DCONFIG_NO_ROAMING",
814 "-DCONFIG_NO_VLAN",
815 "-DCONFIG_OFFCHANNEL",
816 "-DCONFIG_OWE",
817 "-DCONFIG_P2P",
818 "-DCONFIG_PASN",
819 "-DCONFIG_PTKSA_CACHE",
820 "-DCONFIG_SAE",
821 "-DCONFIG_SAE_PK",
822 "-DCONFIG_SHA256",
823 "-DCONFIG_SHA384",
824 "-DCONFIG_SHA512",
825 "-DCONFIG_SMARTCARD",
826 "-DCONFIG_SME",
827 "-DCONFIG_SUITEB",
828 "-DCONFIG_SUITEB192",
829 "-DCONFIG_TDLS",
830 "-DCONFIG_WEP",
831 "-DCONFIG_WIFI_DISPLAY",
832 "-DCONFIG_WNM",
833 "-DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/vendor/wifi/wpa\"",
834 "-DCONFIG_WPS",
835 "-DCONFIG_WPS_ER",
836 "-DCONFIG_WPS_NFC",
837 "-DCONFIG_WPS_OOB",
838 "-DCONFIG_WPS_UPNP",
839 "-DCRYPTO_RSA_OAEP_SHA256",
840 "-DEAP_AKA",
841 "-DEAP_AKA_PRIME",
842 "-DEAP_GTC",
843 "-DEAP_LEAP",
844 "-DEAP_MD5",
845 "-DEAP_MSCHAPv2",
846 "-DEAP_OTP",
847 "-DEAP_PEAP",
848 "-DEAP_PWD",
849 "-DEAP_SERVER",
850 "-DEAP_SERVER_IDENTITY",
851 "-DEAP_SERVER_WSC",
852 "-DEAP_SIM",
853 "-DEAP_TLS",
854 "-DEAP_TLSV1_3",
855 "-DEAP_TLS_OPENSSL",
856 "-DEAP_TTLS",
857 "-DEAP_WSC",
858 "-DIEEE8021X_EAPOL",
859 "-DNEED_AP_MLME",
860 "-DPKCS12_FUNCS",
861 "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
862 "-DWPA_IGNORE_CONFIG_ERRORS",
863 "-Wall",
864 "-Werror",
865 "-Wno-error=sometimes-uninitialized",
866 "-Wno-incompatible-pointer-types",
867 "-Wno-incompatible-pointer-types-discards-qualifiers",
868 "-Wno-macro-redefined",
869 "-Wno-parentheses-equality",
870 "-Wno-sign-compare",
871 "-Wno-unused-function",
872 "-Wno-unused-parameter",
873 "-Wno-unused-variable",
874 ] + select(soong_config_variable("wpa_supplicant_8", "wpa_supplicant_use_stub_lib"), {
875 true: ["-DANDROID_LIB_STUB"],
876 default: [],
877 }) + select(soong_config_variable("wpa_supplicant_8", "board_hostapd_config_80211w_mfp_optional"), {
878 true: ["-DENABLE_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL"],
879 default: [],
880 }) + select(soong_config_variable("wpa_supplicant_8", "board_wpa_supplicant_private_lib_event"), {
881 true: ["-DANDROID_LIB_EVENT"],
882 default: [],
883 }) + select(soong_config_variable("wpa_supplicant_8", "wifi_priv_cmd_update_mbo_cell_status"), {
884 true: ["-DENABLE_PRIV_CMD_UPDATE_MBO_CELL_STATUS"],
885 default: [],
886 }) + select(soong_config_variable("wpa_supplicant_8", "hostapd_11ax"), {
887 true: ["-DCONFIG_IEEE80211AX"],
888 default: [],
889 }) + select(soong_config_variable("wpa_supplicant_8", "wifi_brcm_open_source_multi_akm"), {
890 true: ["-DWIFI_BRCM_OPEN_SOURCE_MULTI_AKM"],
891 default: [],
892 }),
893 arch: {
894 arm: {
895 cflags: [
896 "-mabi=aapcs-linux",
897 ],
898 },
899 },
900 defaults: [
901 "wpa_supplicant_driver_cflags_default",
902 ],
903 soong_config_variables: {
904 platform_version: {
905 cflags: ["-DVERSION_STR_POSTFIX=\"-%s\""],
906 },
907 },
908}
909
910cc_defaults {
911 name: "wpa_supplicant_cflags_default",
912 cflags: [
913 "-DCONFIG_AIDL",
914 "-DCONFIG_CTRL_IFACE_AIDL",
915 ],
916 defaults: [
917 "wpa_supplicant_no_aidl_cflags_default",
918 ],
919}
920
Gabriel Biren2fc93732024-10-10 00:24:33 +0000921wpa_supplicant_cc_defaults_type {
922 name: "wpa_supplicant_mainline_cflags_default",
923 cflags: [
924 "-DANDROID_LIB_STUB",
925 "-DANDROID_LOG_NAME=\"mainline_supplicant\"",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000926 "-DCONFIG_ANDROID_LOG",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000927 "-DCONFIG_BACKEND_FILE",
928 "-DCONFIG_CTRL_IFACE",
929 "-DCONFIG_CTRL_IFACE_UNIX",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000930 "-DCONFIG_DRIVER_NL80211",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000931 "-DCONFIG_NO_ACCOUNTING",
Matthew Wange1dbf792024-12-02 14:07:11 +0000932 "-DCONFIG_NO_CONFIG_BLOBS",
933 "-DCONFIG_NO_CONFIG_WRITE",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000934 "-DCONFIG_NO_RADIUS",
935 "-DCONFIG_NO_RANDOM_POOL",
936 "-DCONFIG_NO_ROAMING",
Matthew Wange1dbf792024-12-02 14:07:11 +0000937 "-DCONFIG_NO_ROBUST_AV",
938 "-DCONFIG_NO_RRM",
939 "-DCONFIG_NO_SCAN_PROCESSING",
940 "-DCONFIG_NO_TKIP",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000941 "-DCONFIG_NO_VLAN",
Matthew Wange1dbf792024-12-02 14:07:11 +0000942 "-DCONFIG_NO_WMM_AC",
943 "-DCONFIG_NO_WPA",
944 "-DCONFIG_NO_WPA_PASSPHRASE",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000945 "-DCONFIG_OFFCHANNEL",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000946 "-DMAINLINE_SUPPLICANT",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000947 "-DOPENSSL_NO_ENGINE",
Gabriel Biren2fc93732024-10-10 00:24:33 +0000948 "-DWPA_IGNORE_CONFIG_ERRORS",
949 "-Wall",
950 "-Werror",
951 "-Wno-error=sometimes-uninitialized",
952 "-Wno-incompatible-pointer-types",
953 "-Wno-incompatible-pointer-types-discards-qualifiers",
954 "-Wno-macro-redefined",
955 "-Wno-parentheses-equality",
956 "-Wno-sign-compare",
957 "-Wno-unused-function",
958 "-Wno-unused-parameter",
959 "-Wno-unused-variable",
Matthew Wange1dbf792024-12-02 14:07:11 +0000960 ],
Gabriel Biren2fc93732024-10-10 00:24:33 +0000961}
962
Bill Yang08f249a2024-10-08 07:00:08 +0000963cc_defaults {
964 name: "wpa_supplicant_srcs_default",
965 srcs: [
966 "ap.c",
967 "bss.c",
968 "bssid_ignore.c",
969 "config.c",
970 "config_file.c",
971 "ctrl_iface.c",
972 "ctrl_iface_unix.c",
973 "dpp_supplicant.c",
974 "eap_register.c",
975 "events.c",
976 "gas_query.c",
977 "hs20_supplicant.c",
978 "interworking.c",
979 "main.c",
980 "mbo.c",
981 "notify.c",
982 "offchannel.c",
983 "op_classes.c",
984 "p2p_supplicant.c",
985 "p2p_supplicant_sd.c",
986 "pasn_supplicant.c",
987 "robust_av.c",
988 "rrm.c",
989 "scan.c",
990 "sme.c",
991 "twt.c",
992 "wifi_display.c",
993 "wmm_ac.c",
994 "wnm_sta.c",
995 "wpa_supplicant.c",
996 "wpas_glue.c",
997 "wps_supplicant.c",
998 "src/ap/acs.c",
999 "src/ap/ap_config.c",
1000 "src/ap/ap_drv_ops.c",
1001 "src/ap/ap_list.c",
1002 "src/ap/ap_mlme.c",
1003 "src/ap/authsrv.c",
1004 "src/ap/beacon.c",
1005 "src/ap/bss_load.c",
1006 "src/ap/comeback_token.c",
1007 "src/ap/ctrl_iface_ap.c",
1008 "src/ap/dfs.c",
1009 "src/ap/dpp_hostapd.c",
1010 "src/ap/drv_callbacks.c",
1011 "src/ap/eap_user_db.c",
1012 "src/ap/fils_hlp.c",
1013 "src/ap/gas_query_ap.c",
1014 "src/ap/gas_serv.c",
1015 "src/ap/hostapd.c",
1016 "src/ap/hs20.c",
1017 "src/ap/hw_features.c",
1018 "src/ap/ieee802_11.c",
1019 "src/ap/ieee802_11_auth.c",
1020 "src/ap/ieee802_11_ht.c",
1021 "src/ap/ieee802_11_shared.c",
1022 "src/ap/ieee802_11_vht.c",
1023 "src/ap/ieee802_1x.c",
1024 "src/ap/mbo_ap.c",
1025 "src/ap/neighbor_db.c",
1026 "src/ap/p2p_hostapd.c",
1027 "src/ap/pmksa_cache_auth.c",
1028 "src/ap/rrm.c",
1029 "src/ap/sta_info.c",
1030 "src/ap/tkip_countermeasures.c",
1031 "src/ap/utils.c",
1032 "src/ap/wmm.c",
1033 "src/ap/wpa_auth.c",
1034 "src/ap/wpa_auth_glue.c",
1035 "src/ap/wpa_auth_ie.c",
1036 "src/ap/wps_hostapd.c",
1037 "src/common/ctrl_iface_common.c",
1038 "src/common/dpp.c",
1039 "src/common/dpp_auth.c",
1040 "src/common/dpp_backup.c",
1041 "src/common/dpp_crypto.c",
1042 "src/common/dpp_pkex.c",
1043 "src/common/dpp_reconfig.c",
1044 "src/common/dpp_tcp.c",
1045 "src/common/dragonfly.c",
1046 "src/common/gas.c",
1047 "src/common/gas_server.c",
1048 "src/common/hw_features_common.c",
1049 "src/common/ieee802_11_common.c",
1050 "src/common/ptksa_cache.c",
1051 "src/common/sae.c",
1052 "src/common/sae_pk.c",
1053 "src/common/wpa_common.c",
1054 "src/crypto/aes-ctr.c",
1055 "src/crypto/aes-siv.c",
1056 "src/crypto/crypto_openssl.c",
1057 "src/crypto/dh_groups.c",
1058 "src/crypto/fips_prf_openssl.c",
1059 "src/crypto/ms_funcs.c",
1060 "src/crypto/sha1-prf.c",
1061 "src/crypto/sha1-tlsprf.c",
1062 "src/crypto/sha256-kdf.c",
1063 "src/crypto/sha256-prf.c",
1064 "src/crypto/sha256-tlsprf.c",
1065 "src/crypto/sha384-kdf.c",
1066 "src/crypto/sha384-prf.c",
1067 "src/crypto/sha512-kdf.c",
1068 "src/crypto/sha512-prf.c",
1069 "src/crypto/tls_openssl.c",
1070 "src/crypto/tls_openssl_ocsp.c",
1071 "src/drivers/driver_common.c",
1072 "src/drivers/driver_nl80211.c",
1073 "src/drivers/driver_nl80211_android.c",
1074 "src/drivers/driver_nl80211_capa.c",
1075 "src/drivers/driver_nl80211_event.c",
1076 "src/drivers/driver_nl80211_monitor.c",
1077 "src/drivers/driver_nl80211_scan.c",
1078 "src/drivers/drivers.c",
1079 "src/drivers/linux_ioctl.c",
1080 "src/drivers/netlink.c",
1081 "src/drivers/rfkill.c",
1082 "src/eap_common/chap.c",
1083 "src/eap_common/eap_common.c",
1084 "src/eap_common/eap_peap_common.c",
1085 "src/eap_common/eap_pwd_common.c",
1086 "src/eap_common/eap_sim_common.c",
1087 "src/eap_common/eap_wsc_common.c",
1088 "src/eap_peer/eap.c",
1089 "src/eap_peer/eap_aka.c",
1090 "src/eap_peer/eap_gtc.c",
1091 "src/eap_peer/eap_leap.c",
1092 "src/eap_peer/eap_md5.c",
1093 "src/eap_peer/eap_methods.c",
1094 "src/eap_peer/eap_mschapv2.c",
1095 "src/eap_peer/eap_otp.c",
1096 "src/eap_peer/eap_peap.c",
1097 "src/eap_peer/eap_pwd.c",
1098 "src/eap_peer/eap_sim.c",
1099 "src/eap_peer/eap_tls.c",
1100 "src/eap_peer/eap_tls_common.c",
1101 "src/eap_peer/eap_ttls.c",
1102 "src/eap_peer/eap_wsc.c",
1103 "src/eap_peer/mschapv2.c",
1104 "src/eap_server/eap_server.c",
1105 "src/eap_server/eap_server_identity.c",
1106 "src/eap_server/eap_server_methods.c",
1107 "src/eap_server/eap_server_wsc.c",
1108 "src/eapol_auth/eapol_auth_sm.c",
1109 "src/eapol_supp/eapol_supp_sm.c",
1110 "src/l2_packet/l2_packet_linux.c",
1111 "src/p2p/p2p.c",
1112 "src/p2p/p2p_build.c",
1113 "src/p2p/p2p_dev_disc.c",
1114 "src/p2p/p2p_go_neg.c",
1115 "src/p2p/p2p_group.c",
1116 "src/p2p/p2p_invitation.c",
1117 "src/p2p/p2p_parse.c",
1118 "src/p2p/p2p_pd.c",
1119 "src/p2p/p2p_sd.c",
1120 "src/p2p/p2p_utils.c",
1121 "src/pasn/pasn_common.c",
1122 "src/pasn/pasn_initiator.c",
1123 "src/pasn/pasn_responder.c",
1124 "src/rsn_supp/pmksa_cache.c",
1125 "src/rsn_supp/preauth.c",
1126 "src/rsn_supp/tdls.c",
1127 "src/rsn_supp/wpa.c",
1128 "src/rsn_supp/wpa_ft.c",
1129 "src/rsn_supp/wpa_ie.c",
1130 "src/tls/asn1.c",
1131 "src/utils/base64.c",
1132 "src/utils/bitfield.c",
1133 "src/utils/common.c",
1134 "src/utils/config.c",
1135 "src/utils/crc32.c",
1136 "src/utils/eloop.c",
1137 "src/utils/ip_addr.c",
1138 "src/utils/json.c",
1139 "src/utils/os_unix.c",
1140 "src/utils/radiotap.c",
1141 "src/utils/uuid.c",
1142 "src/utils/wpa_debug.c",
1143 "src/utils/wpabuf.c",
1144 "src/wps/http_client.c",
1145 "src/wps/http_server.c",
1146 "src/wps/httpread.c",
1147 "src/wps/ndef.c",
1148 "src/wps/upnp_xml.c",
1149 "src/wps/wps.c",
1150 "src/wps/wps_attr_build.c",
1151 "src/wps/wps_attr_parse.c",
1152 "src/wps/wps_attr_process.c",
1153 "src/wps/wps_common.c",
1154 "src/wps/wps_dev_attr.c",
1155 "src/wps/wps_enrollee.c",
1156 "src/wps/wps_er.c",
1157 "src/wps/wps_er_ssdp.c",
1158 "src/wps/wps_registrar.c",
1159 "src/wps/wps_upnp.c",
1160 "src/wps/wps_upnp_ap.c",
1161 "src/wps/wps_upnp_event.c",
1162 "src/wps/wps_upnp_ssdp.c",
1163 "src/wps/wps_upnp_web.c",
1164 ] + select(soong_config_variable("wpa_supplicant_8", "hostapd_11ax"), {
1165 true: ["src/ap/ieee802_11_he.c"],
1166 default: [],
1167 }),
1168 defaults: [
1169 "wpa_supplicant_driver_srcs_default",
1170 ],
1171}
1172
Matthew Wange1dbf792024-12-02 14:07:11 +00001173cc_defaults {
1174 name: "wpa_supplicant_mainline_srcs_default",
1175 srcs: [
1176 "bss.c",
1177 "bssid_ignore.c",
1178 "config.c",
1179 "config_file.c",
1180 "ctrl_iface.c",
1181 "ctrl_iface_unix.c",
1182 "eap_register.c",
1183 "events.c",
1184 "main.c",
1185 "notify.c",
1186 "offchannel.c",
1187 "op_classes.c",
1188 "rrm.c",
1189 "scan.c",
1190 "wpa_supplicant.c",
1191 "wpas_glue.c",
1192 "src/common/ctrl_iface_common.c",
1193 "src/common/hw_features_common.c",
1194 "src/common/ieee802_11_common.c",
1195 "src/common/ptksa_cache.c",
1196 "src/common/wpa_common.c",
1197 "src/crypto/crypto_openssl.c",
1198 "src/crypto/tls_none.c",
1199 "src/drivers/driver_common.c",
1200 "src/drivers/driver_nl80211.c",
1201 "src/drivers/driver_nl80211_android.c",
1202 "src/drivers/driver_nl80211_capa.c",
1203 "src/drivers/driver_nl80211_event.c",
1204 "src/drivers/driver_nl80211_monitor.c",
1205 "src/drivers/driver_nl80211_scan.c",
1206 "src/drivers/drivers.c",
1207 "src/drivers/linux_ioctl.c",
1208 "src/drivers/netlink.c",
1209 "src/drivers/rfkill.c",
1210 "src/l2_packet/l2_packet_linux.c",
1211 "src/rsn_supp/pmksa_cache.c",
1212 "src/utils/base64.c",
1213 "src/utils/bitfield.c",
1214 "src/utils/common.c",
1215 "src/utils/config.c",
1216 "src/utils/crc32.c",
1217 "src/utils/eloop.c",
1218 "src/utils/ip_addr.c",
1219 "src/utils/os_unix.c",
1220 "src/utils/radiotap.c",
1221 "src/utils/wpa_debug.c",
1222 "src/utils/wpabuf.c",
1223 ],
1224 defaults: [
1225 "wpa_supplicant_driver_srcs_default",
1226 ],
1227}
1228
Gabriel Birenf9a14272024-12-09 18:16:21 +00001229cc_defaults {
1230 name: "wpa_supplicant_usd_defaults",
1231 cflags: [
1232 "-DCONFIG_NAN_USD",
1233 ],
1234 srcs: [
1235 "nan_usd.c",
1236 "src/ap/nan_usd_ap.c",
1237 "src/common/nan_de.c",
1238 ],
1239}
1240
Bill Yang08f249a2024-10-08 07:00:08 +00001241cc_binary {
1242 name: "wpa_cli",
1243 proprietary: true,
1244 srcs: [
1245 "wpa_cli.c",
1246 "src/common/cli.c",
1247 "src/common/wpa_ctrl.c",
1248 "src/utils/common.c",
1249 "src/utils/edit.c",
1250 "src/utils/eloop.c",
1251 "src/utils/os_unix.c",
1252 "src/utils/wpa_debug.c",
1253 ],
1254 shared_libs: [
1255 "libcutils",
1256 "liblog",
1257 ],
1258 defaults: [
1259 "wpa_supplicant_cflags_default",
1260 "wpa_supplicant_includes_default",
1261 ],
1262}
1263
1264soong_config_module_type {
1265 name: "wpa_supplicant_cc_binary",
1266 module_type: "cc_binary",
1267 config_namespace: "wpa_supplicant_8",
1268 value_variables: [
1269 "board_wpa_supplicant_private_lib",
1270 ],
1271 bool_variables: [
1272 "wifi_hidl_unified_supplicant_service_rc_entry",
1273 ],
1274 properties: [
1275 "init_rc",
1276 "static_libs",
1277 ],
1278}
1279
1280wpa_supplicant_cc_binary {
1281 name: "wpa_supplicant",
1282 proprietary: true,
1283 relative_install_path: "hw",
1284 // vintf_fragments: wpa_supplicant only
1285 // vintf_fragments: ["aidl/android.hardware.wifi.supplicant.xml"],
1286 required: [
1287 "android.hardware.wifi.supplicant.xml",
1288 ],
1289 // wpa_supplicant only
1290 static_libs: [
1291 "libwpa_aidl",
1292 ],
1293 shared_libs: [
1294 // Share between wpa_supplicant and wpa_supplicant_macsec
1295 "libc",
1296 "libcrypto",
1297 "libcutils",
1298 "libkeystore-engine-wifi-hidl",
1299 "liblog",
1300 "libnl",
1301 "libssl",
1302 ] + [
1303 // wpa_supplicant only
1304 "android.hardware.wifi.supplicant-V4-ndk",
1305 "android.system.keystore2-V1-ndk",
1306 "libbase",
1307 "libbinder_ndk",
1308 "libutils",
1309 ],
1310 defaults: [
1311 "wpa_supplicant_srcs_default",
1312 "wpa_supplicant_cflags_default",
1313 "wpa_supplicant_includes_default",
Gabriel Biren557fe492024-12-11 00:12:43 +00001314 "wpa_supplicant_usd_defaults",
Bill Yang08f249a2024-10-08 07:00:08 +00001315 ],
1316 soong_config_variables: {
1317 board_wpa_supplicant_private_lib: {
1318 static_libs: ["%s"],
1319 },
1320 // init_rc: wpa_supplicant only
1321 wifi_hidl_unified_supplicant_service_rc_entry: {
Gabriel Biren3c401c52024-10-10 20:11:18 +00001322 init_rc: ["aidl/vendor/android.hardware.wifi.supplicant-service.rc"],
Bill Yang08f249a2024-10-08 07:00:08 +00001323 },
1324 },
1325}
1326
1327wpa_supplicant_cc_binary {
1328 name: "wpa_supplicant_macsec",
1329 proprietary: true,
1330 relative_install_path: "hw",
1331 srcs: [
1332 // wpa_supplicant_macsec only
1333 ":wpa_supplicant_macsec_extra_driver_srcs",
1334 "wpas_kay.c",
1335 "src/ap/wpa_auth_kay.c",
1336 "src/pae/ieee802_1x_cp.c",
1337 "src/pae/ieee802_1x_kay.c",
1338 "src/pae/ieee802_1x_key.c",
1339 "src/pae/ieee802_1x_secy_ops.c",
1340 "src/pae/aidl/aidl_psk.cpp",
1341 ],
1342 shared_libs: [
1343 // Share between wpa_supplicant and wpa_supplicant_macsec
1344 "libc",
1345 "libcrypto",
1346 "libcutils",
1347 "libkeystore-engine-wifi-hidl",
1348 "liblog",
1349 "libnl",
1350 "libssl",
1351 ] + [
1352 // wpa_supplicant_macsec only
1353 "android.hardware.macsec-V1-ndk",
1354 "libbinder_ndk",
1355 ],
1356 cflags: [
1357 "-DCONFIG_AIDL_MACSEC_PSK_METHODS",
1358 "-DCONFIG_DRIVER_MACSEC_LINUX",
1359 "-DCONFIG_MACSEC",
1360 ],
1361 local_include_dirs: [
1362 // wpa_supplicant_macsec only
1363 "aidl",
1364 ],
1365 defaults: [
1366 "wpa_supplicant_srcs_default",
1367 "wpa_supplicant_includes_default",
1368 "wpa_supplicant_no_aidl_cflags_default",
1369 ],
1370 soong_config_variables: {
1371 board_wpa_supplicant_private_lib: {
1372 static_libs: ["%s"],
1373 },
1374 },
1375}
1376
Gabriel Biren2fc93732024-10-10 00:24:33 +00001377wpa_supplicant_cc_binary {
1378 name: "wpa_supplicant_mainline",
1379 shared_libs: [
Gabriel Biren2ba9e6c2024-10-23 19:22:38 +00001380 "android.system.wifi.mainline_supplicant-ndk",
1381 "libbase",
1382 "libbinder_ndk",
Gabriel Biren2fc93732024-10-10 00:24:33 +00001383 "libc",
1384 "libcrypto",
1385 "libcutils_sockets",
1386 "liblog",
1387 "libnl",
1388 "libssl",
1389 ],
Gabriel Biren2ba9e6c2024-10-23 19:22:38 +00001390 static_libs: [
1391 "mainline_supplicant_aidl_bp",
1392 ],
Gabriel Biren2fc93732024-10-10 00:24:33 +00001393 defaults: [
Matthew Wange1dbf792024-12-02 14:07:11 +00001394 "wpa_supplicant_mainline_srcs_default",
Gabriel Biren2fc93732024-10-10 00:24:33 +00001395 "wpa_supplicant_includes_default",
1396 "wpa_supplicant_mainline_cflags_default",
1397 ],
1398 apex_available: [
1399 "//apex_available:platform",
1400 "com.android.wifi",
1401 ],
1402 min_sdk_version: "30",
1403}
1404
Bill Yang08f249a2024-10-08 07:00:08 +00001405cc_library_shared {
1406 name: "libwpa_client",
1407 proprietary: true,
1408 srcs: [
1409 "src/common/wpa_ctrl.c",
1410 "src/utils/os_unix.c",
1411 ],
1412 shared_libs: [
1413 "libc",
1414 "libcutils",
1415 "liblog",
1416 ],
1417 defaults: [
1418 "wpa_supplicant_cflags_default",
1419 "wpa_supplicant_includes_default",
1420 ],
1421}
1422
Gabriel Birenc98b77e2024-11-12 23:40:02 +00001423cc_fuzz {
1424 name: "mainline_supplicant_service_fuzzer",
1425 team: "trendy_team_fwk_wifi_hal",
1426 srcs: [
1427 "aidl/mainline/fuzzers/mainline_supplicant_service_fuzzer.cpp",
1428 ],
1429 defaults: [
1430 "fuzzer_disable_leaks",
1431 "service_fuzzer_defaults",
1432 "wpa_supplicant_includes_default",
1433 "wpa_supplicant_mainline_cflags_default",
Matthew Wange1dbf792024-12-02 14:07:11 +00001434 "wpa_supplicant_mainline_srcs_default",
Gabriel Birenc98b77e2024-11-12 23:40:02 +00001435 ],
1436 shared_libs: [
1437 "android.system.wifi.mainline_supplicant-ndk",
1438 "libbase",
1439 "libbinder_ndk",
1440 "libc",
1441 "libcrypto",
1442 "libcutils_sockets",
1443 "liblog",
1444 "libnl",
1445 "libssl",
1446 ],
1447 static_libs: [
1448 "mainline_supplicant_aidl_bp",
1449 ],
1450 cflags: [
1451 "-DSUPPLICANT_SERVICE_FUZZER",
1452 ],
1453 fuzz_config: {
1454 triage_assignee: "android-wifi-team@google.com",
1455 },
1456 proto: {
1457 type: "lite",
1458 static: true,
1459 },
1460}
1461
Bill Yang08f249a2024-10-08 07:00:08 +00001462//## Aidl service library ###
1463//#######################
1464cc_library_static {
1465 name: "libwpa_aidl",
1466 vendor: true,
1467 cppflags: [
1468 "-Wall",
1469 "-Werror",
1470 "-Wno-unused-parameter",
1471 "-Wno-unused-private-field",
1472 "-Wno-unused-variable",
1473 ],
1474 srcs: [
Gabriel Biren3c401c52024-10-10 20:11:18 +00001475 "aidl/vendor/aidl.cpp",
1476 "aidl/vendor/aidl_manager.cpp",
1477 "aidl/vendor/certificate_utils.cpp",
1478 "aidl/vendor/iface_config_utils.cpp",
1479 "aidl/vendor/p2p_iface.cpp",
1480 "aidl/vendor/p2p_network.cpp",
1481 "aidl/vendor/sta_iface.cpp",
1482 "aidl/vendor/sta_network.cpp",
1483 "aidl/vendor/supplicant.cpp",
Bill Yang08f249a2024-10-08 07:00:08 +00001484 ],
1485 shared_libs: [
1486 "android.hardware.wifi.supplicant-V4-ndk",
1487 "android.system.keystore2-V1-ndk",
1488 "libbinder_ndk",
1489 "libbase",
1490 "libutils",
1491 "liblog",
1492 "libssl",
1493 ],
1494 export_include_dirs: ["aidl"],
1495 defaults: [
1496 "wpa_supplicant_cflags_default",
1497 "wpa_supplicant_includes_default",
1498 ],
1499}