blob: 533a917d26d4a819427848976abd36d4c16f14c2 [file] [log] [blame]
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +00001// 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 hostapd related modules are split into 2 sections:
16// 1. For cuttlefish series products, start from `hostapd_headers` to `hostapd_cli_srcs`.
17// 2. For non-cuttlefish series products, ex: physical devices created by oems,
18// the section starts from `hostapd_driver_srcs_default` to the end of this file.
19
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +000020package {
21 default_applicable_licenses: [
22 "external_wpa_supplicant_8_license",
23 "external_wpa_supplicant_8_hostapd_license",
24 ],
25}
26
27license {
28 name: "external_wpa_supplicant_8_hostapd_license",
29 visibility: [":__subpackages__"],
30 license_kinds: [
31 "SPDX-license-identifier-BSD-3-Clause",
32 "SPDX-license-identifier-ISC",
33 "legacy_unencumbered",
34 ],
35}
36
Bill Yang3ec16372025-01-13 09:55:17 +000037// The section below is for cuttlefish series products. For non-cuttlefish
38// products please update the section starting at `hostapd_driver_srcs_default`.
39// Start of cuttlefish section.
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +000040cc_library_headers {
41 name: "hostapd_headers",
42 export_include_dirs: [
43 ".",
44 "src",
45 "src/utils",
46 ],
47 soc_specific: true,
48}
49
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +000050cc_defaults {
51 name: "hostapd_defaults",
52 defaults: ["hostapd_cflags_defaults"],
53 srcs: [":hostapd_srcs"],
54 shared_libs: [
Les Lee36412a52024-09-06 18:31:55 +000055 "android.hardware.wifi.hostapd-V3-ndk",
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +000056 "libbase",
57 "libutils",
58 "libbinder_ndk",
59 "libc",
60 "libcutils",
61 "liblog",
62 "libcrypto",
63 "libssl",
64 "libnl",
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +000065 ],
66 relative_install_path: "hw",
67 soc_specific: true,
68 static_libs: [
69 "libhostapd_aidl_bp",
70 ],
71 header_libs: [
72 "hostapd_headers",
73 "libhostapd_aidl_headers",
74 ],
75}
76
Cole Faust0b99b522024-08-20 15:34:57 -070077cc_defaults {
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +000078 name: "hostapd_cflags_defaults",
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +000079 // Generated by building hostapd and printing LOCAL_CFLAGS.
80 cflags: [
81 "-DWPA_IGNORE_CONFIG_ERRORS",
82 "-DANDROID_LOG_NAME=\"hostapd\"",
83 "-DANDROID_P2P",
84 "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/hostapd/sockets\"",
85 "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/hostapd/ctrl\"",
86 "-DCONFIG_HOSTAPD_CLI_HISTORY_DIR=\"/data/vendor/wifi/hostapd\"",
87 "-DHOSTAPD",
88 "-DHOSTAPD_DUMP_STATE",
89 "-DCONFIG_NO_RADIUS",
90 "-DCONFIG_NO_ACCOUNTING",
91 "-DCONFIG_CTRL_IFACE",
92 "-DCONFIG_CTRL_IFACE_UNIX",
93 "-DCONFIG_SUITEB",
94 "-DCONFIG_SUITEB192",
95 "-DCONFIG_IEEE80211R",
96 "-DCONFIG_IEEE80211R_AP",
97 "-DCONFIG_ETH_P_OUI",
98 "-DCONFIG_SAE",
99 "-DCONFIG_SAE_PK",
100 "-DCONFIG_OWE",
101 "-DCONFIG_FILS",
102 "-DCONFIG_WNM",
103 "-DCONFIG_WNM_AP",
104 "-DCONFIG_IEEE80211AC",
105 "-DCONFIG_MBO",
106 "-DCONFIG_WEP",
107 "-DCONFIG_DRIVER_NL80211",
108 "-DEAP_SERVER_MD5",
109 "-DEAP_SERVER_TLS",
110 "-DEAP_SERVER_PEAP",
111 "-DEAP_SERVER_TTLS",
112 "-DEAP_SERVER_MSCHAPV2",
113 "-DEAP_SERVER_GTC",
114 "-DEAP_SERVER_SIM",
115 "-DEAP_SERVER_AKA",
116 "-DEAP_SERVER_AKA_PRIME",
117 "-DEAP_SERVER_PWD",
118 "-DCONFIG_WPS",
119 "-DEAP_SERVER_WSC",
120 "-DCONFIG_WPS_NFC",
121 "-DCONFIG_WPS_OOB",
122 "-DCONFIG_DPP",
123 "-DCONFIG_DPP2",
124 "-DEAP_SERVER_IDENTITY",
125 "-DEAP_SERVER",
126 "-DPKCS12_FUNCS",
127 "-DEAP_TLS_FUNCS",
128 "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
129 "-DCONFIG_SHA256",
130 "-DCONFIG_SHA384",
131 "-DCONFIG_SHA512",
132 "-DCONFIG_ECC",
133 "-DCONFIG_NO_RANDOM_POOL",
134 "-DCONFIG_IPV6",
135 "-DCONFIG_JSON",
136 "-DNEED_AP_MLME",
137 "-DCONFIG_HS20",
138 "-DCONFIG_INTERWORKING",
139 "-DCONFIG_PROXYARP",
140 "-DCONFIG_ACS",
141 "-DCONFIG_ANDROID_LOG",
142 "-DCONFIG_CTRL_IFACE_AIDL",
143 "-Wall",
144 "-Werror",
145 "-Wno-unused-parameter",
146 "-Wno-unused-variable",
147 "-Wno-macro-redefined",
Cole Faust0b99b522024-08-20 15:34:57 -0700148 ] +
149 // Devices that include this module should set these soong config vars appropriately.
150 // For example:
151 // $(call soong_config_set, hostapd, platform_version, $(PLATFORM_VERSION))
152 // $(call soong_config_set, hostapd, nl80211_driver, CONFIG_DRIVER_NL80211_QCA)
153 select(soong_config_variable("hostapd", "platform_version"), {
154 any @ version: ["-DVERSION_STR_POSTFIX=\"-" + version + "\""],
155 default: ["-DVERSION_STR_POSTFIX=\"-Android\""],
156 }) +
157 select(soong_config_variable("hostapd", "nl80211_driver"), {
158 any @ driver: ["-D" + driver],
159 // Flag is optional, so no default value provided.
160 default: [],
161 }),
162
Chih-Hung Hsiehf3cee1d2022-12-02 13:06:22 -0800163 // Similar to suppressing clang compiler warnings, here we
164 // suppress clang-tidy warnings to reduce noises in Android build.log.
165 tidy_checks: [
166 "-android-cloexec-*",
167 "-bugprone-branch-clone",
168 "-bugprone-macro-parentheses",
169 "-bugprone-misplaced-widening-cast",
170 "-bugprone-signal-handler",
171 "-bugprone-signed-char-misuse",
172 "-bugprone-sizeof-expression",
173 "-bugprone-suspicious-string-compare",
174 "-bugprone-too-small-loop-variable",
175 "-cert-err34-c",
176 "-cert-msc30-c",
177 "-cert-msc50-cpp",
178 "-cert-msc54-cpp",
179 "-cert-sig30-c",
180 "-cert-str34-c",
181 "-clang-analyzer-core.NullDereference",
182 "-clang-analyzer-core.UndefinedBinaryOperatorResult",
183 "-clang-analyzer-deadcode.DeadStores",
184 "-clang-analyzer-optin.performance.Padding",
185 "-clang-analyzer-optin.portability.UnixAPI",
186 "-clang-analyzer-security.insecureAPI.UncheckedReturn",
187 "-clang-analyzer-unix.cstring.NullArg",
188 "-clang-analyzer-unix.Malloc",
189 "-clang-diagnostic-unused-but-set-variable",
190 "-misc-redundant-expression",
191 ],
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +0000192}
193
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +0000194// Generated by building hostapd and printing LOCAL_SRC_FILES.
195filegroup {
196 name: "hostapd_srcs",
197 srcs: [
198 "main.c",
199 "config_file.c",
200 "ctrl_iface.c",
201 "eap_register.c",
202 "src/ap/hostapd.c",
203 "src/ap/wpa_auth_glue.c",
204 "src/ap/drv_callbacks.c",
205 "src/ap/ap_drv_ops.c",
206 "src/ap/utils.c",
207 "src/ap/authsrv.c",
208 "src/ap/ieee802_1x.c",
209 "src/ap/ap_config.c",
210 "src/ap/eap_user_db.c",
211 "src/ap/ieee802_11_auth.c",
212 "src/ap/sta_info.c",
213 "src/ap/wpa_auth.c",
214 "src/ap/tkip_countermeasures.c",
215 "src/ap/ap_mlme.c",
216 "src/ap/wpa_auth_ie.c",
217 "src/ap/preauth_auth.c",
218 "src/ap/pmksa_cache_auth.c",
219 "src/ap/ieee802_11_shared.c",
220 "src/ap/beacon.c",
221 "src/ap/bss_load.c",
222 "src/ap/neighbor_db.c",
223 "src/ap/rrm.c",
224 "src/drivers/drivers.c",
225 "src/utils/eloop.c",
226 "src/utils/common.c",
227 "src/utils/wpa_debug.c",
228 "src/utils/wpabuf.c",
229 "src/utils/os_unix.c",
230 "src/utils/ip_addr.c",
231 "src/utils/crc32.c",
232 "src/common/ieee802_11_common.c",
233 "src/common/wpa_common.c",
234 "src/common/hw_features_common.c",
Sunil Ravi99c035e2024-07-12 01:42:03 +0000235 "src/common/ptksa_cache.c",
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +0000236 "src/eapol_auth/eapol_auth_sm.c",
237 "src/eapol_auth/eapol_auth_dump.c",
238 "src/ap/vlan_init.c",
239 "src/ap/vlan_ifconfig.c",
240 "src/ap/vlan.c",
241 "src/common/ctrl_iface_common.c",
242 "src/ap/ctrl_iface_ap.c",
243 "src/ap/wpa_auth_ft.c",
244 "src/ap/eth_p_oui.c",
245 "src/common/sae.c",
246 "src/common/sae_pk.c",
247 "src/ap/fils_hlp.c",
248 "src/ap/wnm_ap.c",
249 "src/ap/mbo_ap.c",
250 "src/drivers/driver_nl80211.c",
251 "src/drivers/driver_nl80211_android.c",
252 "src/drivers/driver_nl80211_capa.c",
253 "src/drivers/driver_nl80211_event.c",
254 "src/drivers/driver_nl80211_monitor.c",
255 "src/drivers/driver_nl80211_scan.c",
256 "src/drivers/netlink.c",
257 "src/drivers/rfkill.c",
258 "src/utils/radiotap.c",
259 "src/drivers/linux_ioctl.c",
260 "src/l2_packet/l2_packet_linux.c",
261 "src/eap_server/eap_server_md5.c",
262 "src/eap_server/eap_server_tls.c",
263 "src/eap_server/eap_server_peap.c",
264 "src/eap_common/eap_peap_common.c",
265 "src/eap_server/eap_server_ttls.c",
266 "src/eap_server/eap_server_mschapv2.c",
267 "src/eap_server/eap_server_gtc.c",
268 "src/eap_server/eap_server_sim.c",
269 "src/eap_server/eap_server_aka.c",
270 "src/eap_common/eap_sim_common.c",
271 "src/eap_server/eap_sim_db.c",
272 "src/eap_server/eap_server_pwd.c",
273 "src/eap_common/eap_pwd_common.c",
274 "src/utils/uuid.c",
275 "src/ap/wps_hostapd.c",
276 "src/eap_server/eap_server_wsc.c",
277 "src/eap_common/eap_wsc_common.c",
278 "src/wps/wps.c",
279 "src/wps/wps_common.c",
280 "src/wps/wps_attr_parse.c",
281 "src/wps/wps_attr_build.c",
282 "src/wps/wps_attr_process.c",
283 "src/wps/wps_dev_attr.c",
284 "src/wps/wps_enrollee.c",
285 "src/wps/wps_registrar.c",
286 "src/wps/ndef.c",
287 "src/common/dpp.c",
288 "src/common/dpp_auth.c",
289 "src/common/dpp_backup.c",
290 "src/common/dpp_crypto.c",
291 "src/common/dpp_pkex.c",
292 "src/common/dpp_reconfig.c",
293 "src/common/dpp_tcp.c",
294 "src/ap/dpp_hostapd.c",
295 "src/ap/gas_query_ap.c",
296 "src/eap_server/eap_server.c",
297 "src/eap_common/eap_common.c",
298 "src/eap_server/eap_server_methods.c",
299 "src/eap_server/eap_server_identity.c",
300 "src/common/dragonfly.c",
301 "src/crypto/ms_funcs.c",
302 "src/eap_common/chap.c",
303 "src/eap_server/eap_server_tls_common.c",
304 "src/crypto/tls_openssl.c",
305 "src/crypto/tls_openssl_ocsp.c",
306 "src/crypto/crypto_openssl.c",
307 "src/crypto/fips_prf_openssl.c",
308 "src/crypto/aes-siv.c",
309 "src/crypto/aes-ctr.c",
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +0000310 "src/crypto/sha1-prf.c",
311 "src/crypto/sha1-tlsprf.c",
312 "src/crypto/sha256-prf.c",
313 "src/crypto/sha256-tlsprf.c",
314 "src/crypto/sha256-kdf.c",
315 "src/crypto/sha384-kdf.c",
316 "src/crypto/sha512-kdf.c",
317 "src/crypto/sha384-prf.c",
318 "src/crypto/sha512-prf.c",
319 "src/tls/asn1.c",
320 "src/crypto/dh_groups.c",
321 "src/utils/base64.c",
322 "src/utils/json.c",
323 "src/ap/wmm.c",
324 "src/ap/ap_list.c",
Sunil Ravi38ad1ed2023-01-17 23:58:31 +0000325 "src/ap/comeback_token.c",
326 "src/pasn/pasn_responder.c",
Sunil Ravi99c035e2024-07-12 01:42:03 +0000327 "src/pasn/pasn_common.c",
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +0000328 "src/ap/ieee802_11.c",
329 "src/ap/hw_features.c",
330 "src/ap/dfs.c",
331 "src/ap/ieee802_11_ht.c",
332 "src/ap/ieee802_11_vht.c",
333 "src/ap/hs20.c",
334 "src/common/gas.c",
335 "src/ap/gas_serv.c",
336 "src/ap/x_snoop.c",
337 "src/ap/dhcp_snoop.c",
338 "src/ap/ndisc_snoop.c",
339 "src/drivers/driver_common.c",
340 "src/ap/acs.c",
341 ],
342
343}
Jeongik Chad4cfa122022-11-18 15:09:34 +0900344
345// This manifest can used by a vendor apex module for hostapd as well.
Kiyoung Kimb853dac2024-08-12 08:18:33 +0000346vintf_fragment {
Jeongik Chad4cfa122022-11-18 15:09:34 +0900347 name: "android.hardware.wifi.hostapd.xml",
Kiyoung Kimb853dac2024-08-12 08:18:33 +0000348 src: "android.hardware.wifi.hostapd.xml",
349 soc_specific: true,
Jeongik Chad4cfa122022-11-18 15:09:34 +0900350}
chao.meng4c248f02023-11-18 16:55:52 +0800351
352// Generated by building hostapd_cli and printing LOCAL_SRC_FILES
353filegroup {
354 name: "hostapd_cli_srcs",
355 srcs: [
356 "hostapd_cli.c",
357 "src/common/cli.c",
358 "src/common/wpa_ctrl.c",
359 "src/utils/common.c",
360 "src/utils/edit.c",
361 "src/utils/eloop.c",
362 "src/utils/os_unix.c",
363 "src/utils/wpa_debug.c",
364 ],
365}
Deyao Ren84db0e22024-09-17 00:06:27 +0000366
367prebuilt_etc {
368 name: "android.hardware.wifi.hostapd.xml.prebuilt",
369 src: "android.hardware.wifi.hostapd.xml",
370 relative_install_path: "vintf",
371 installable: false,
372}
Bill Yang08f249a2024-10-08 07:00:08 +0000373
Bill Yang3ec16372025-01-13 09:55:17 +0000374// End of cuttlefish section.
375
376// The section starting below is for non-cuttlefish products.
377// For cuttlefish series please update the section starting from `hostapd_headers`.
378
379// If you need to add a new build setting based on a product config, ex:
380// ifeq ($(BOARD_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL),true)
381// L_CFLAGS += -DENABLE_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL
382// endif
383
384// In order to export the Makefile variable to soong, you will need to use a `soong_config_set` method
385// under `build/core/board_config_wpa_supplicant.mk`. Ex:
386// ifeq ($(BOARD_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL),true)
387// $(call soong_config_set_bool,wpa_supplicant_8,board_hostapd_config_80211w_mfp_optional,true)
388// endif
389
390// And then use the select statement in Android.bp to reflect the condition you need, ex:
391// select(soong_config_variable("wpa_supplicant_8", "board_hostapd_config_80211w_mfp_optional"), {
392// true: ["-DENABLE_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL"],
393// default: [],
394// })
395
396// Start of non-cuttlefish section
Bill Yang08f249a2024-10-08 07:00:08 +0000397cc_defaults {
398 name: "hostapd_driver_srcs_default",
399 srcs: [
400 "src/drivers/driver_nl80211.c",
401 "src/drivers/driver_nl80211_android.c",
402 "src/drivers/driver_nl80211_capa.c",
403 "src/drivers/driver_nl80211_event.c",
404 "src/drivers/driver_nl80211_monitor.c",
405 "src/drivers/driver_nl80211_scan.c",
406 "src/drivers/linux_ioctl.c",
407 "src/drivers/netlink.c",
408 "src/drivers/rfkill.c",
409 "src/utils/radiotap.c",
410 ],
411}
412
413cc_defaults {
414 name: "hostapd_driver_cflags_default",
415 cflags: [
416 "-DCONFIG_DRIVER_NL80211",
417 ] + select(soong_config_variable("wpa_supplicant_8", "board_wlan_device"), {
418 "bcmdhd": ["-DCONFIG_DRIVER_NL80211_BRCM"],
419 "synadhd": ["-DCONFIG_DRIVER_NL80211_SYNA"],
420 default: ["-DCONFIG_DRIVER_NL80211_QCA"],
421 }),
422}
423
424soong_config_module_type {
425 name: "hostapd_cc_defaults_type",
426 module_type: "cc_defaults",
427 config_namespace: "wpa_supplicant_8",
428 value_variables: [
429 "platform_version",
430 ],
431 properties: ["cflags"],
432}
433
434// Hostap related module share the same CFLAGS
435hostapd_cc_defaults_type {
436 name: "hostapd_cflags_default",
437 cflags: [
438 "-DWPA_IGNORE_CONFIG_ERRORS",
439 "-DANDROID_LOG_NAME=\"hostapd\"",
440 "-Wall",
441 "-Werror",
442 "-Wno-unused-parameter",
443 "-Wno-unused-variable",
444 "-Wno-macro-redefined",
445 "-DANDROID_P2P",
446 "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/hostapd/sockets\"",
447 "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/hostapd/ctrl\"",
448 "-DCONFIG_HOSTAPD_CLI_HISTORY_DIR=\"/data/vendor/wifi/hostapd\"",
449 "-DHOSTAPD",
450 "-DHOSTAPD_DUMP_STATE",
451 "-DCONFIG_NO_RADIUS",
452 "-DCONFIG_NO_ACCOUNTING",
453 "-DCONFIG_CTRL_IFACE",
454 "-DCONFIG_CTRL_IFACE_UNIX",
455 "-DCONFIG_SAE",
456 "-DCONFIG_IEEE80211AC",
457 "-DCONFIG_WEP",
458 "-DCONFIG_WPS",
459 "-DEAP_SERVER_WSC",
460 "-DCONFIG_DPP",
461 "-DEAP_SERVER_IDENTITY",
462 "-DEAP_SERVER",
463 "-DPKCS12_FUNCS",
464 "-DCRYPTO_RSA_OAEP_SHA256",
465 "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
466 "-DCONFIG_SHA256",
467 "-DCONFIG_SHA384",
468 "-DCONFIG_SHA512",
469 "-DCONFIG_ECC",
470 "-DCONFIG_NO_RANDOM_POOL",
471 "-DCONFIG_IPV6",
472 "-DCONFIG_JSON",
473 "-DNEED_AP_MLME",
474 "-DCONFIG_INTERWORKING",
475 "-DCONFIG_ACS",
476 "-DCONFIG_ANDROID_LOG",
477 "-DCONFIG_CTRL_IFACE_AIDL",
478 ] + select(soong_config_variable("wpa_supplicant_8", "hostapd_use_stub_lib"), {
479 true: ["-DANDROID_LIB_STUB"],
480 default: [],
481 }) + select(soong_config_variable("wpa_supplicant_8", "hostapd_11ax"), {
482 true: ["-DCONFIG_IEEE80211AX"],
483 default: [],
Les Lee16bb41b2024-12-03 01:50:22 +0000484 }) + select(soong_config_variable("wpa_supplicant_8", "hostapd_11be"), {
485 true: ["-DCONFIG_IEEE80211BE"],
486 default: [],
Bill Yang08f249a2024-10-08 07:00:08 +0000487 }) + select(soong_config_variable("wpa_supplicant_8", "board_hostapd_config_80211w_mfp_optional"), {
488 true: ["-DENABLE_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL"],
489 default: [],
490 }) + select(soong_config_variable("wpa_supplicant_8", "board_hostapd_private_lib_event"), {
491 true: ["-DANDROID_LIB_EVENT"],
492 default: [],
493 }),
494 arch: {
495 arm: {
496 cflags: [
497 "-mabi=aapcs-linux",
498 ],
499 },
500 },
501 defaults: [
502 "hostapd_driver_cflags_default",
503 ],
504 soong_config_variables: {
505 platform_version: {
506 cflags: ["-DVERSION_STR_POSTFIX=\"-%s\""],
507 },
508 },
509 enabled: select(soong_config_variable("wpa_supplicant_8", "wpa_build_hostapd"), {
510 true: true,
511 default: false,
512 }),
513}
514
515cc_defaults {
516 name: "hostapd_includes_default",
517 local_include_dirs: [
518 ".",
519 "src",
520 "src/utils",
521 ],
522 include_dirs: [
523 // There's an if condition for external/libnl but current code base should always have this.
524 "external/libnl/include",
525 "system/security/keystore/include",
526 ],
527}
528
529cc_defaults {
530 name: "hostapd_srcs_default",
531 srcs: [
532 "main.c",
533 "config_file.c",
534 "src/ap/hostapd.c",
535 "src/ap/wpa_auth_glue.c",
536 "src/ap/drv_callbacks.c",
537 "src/ap/ap_drv_ops.c",
538 "src/ap/utils.c",
539 "src/ap/authsrv.c",
540 "src/ap/ieee802_1x.c",
541 "src/ap/ap_config.c",
542 "src/ap/eap_user_db.c",
543 "src/ap/ieee802_11_auth.c",
544 "src/ap/sta_info.c",
545 "src/ap/wpa_auth.c",
546 "src/ap/tkip_countermeasures.c",
547 "src/ap/ap_mlme.c",
548 "src/ap/wpa_auth_ie.c",
549 "src/ap/preauth_auth.c",
550 "src/ap/pmksa_cache_auth.c",
551 "src/ap/ieee802_11_shared.c",
552 "src/ap/beacon.c",
553 "src/ap/bss_load.c",
554 "src/ap/neighbor_db.c",
555 "src/ap/rrm.c",
556 "src/drivers/drivers.c",
557 "src/utils/eloop.c",
558 "src/utils/common.c",
559 "src/utils/wpa_debug.c",
560 "src/utils/wpabuf.c",
561 "src/utils/os_unix.c",
562 "src/utils/ip_addr.c",
563 "src/utils/crc32.c",
564 "src/common/ieee802_11_common.c",
565 "src/common/wpa_common.c",
566 "src/common/hw_features_common.c",
567 "src/common/ptksa_cache.c",
568 "src/eapol_auth/eapol_auth_sm.c",
569 "src/eapol_auth/eapol_auth_dump.c",
570 "src/ap/vlan_init.c",
571 "src/ap/vlan_ifconfig.c",
572 "src/ap/vlan.c",
573 "src/common/ctrl_iface_common.c",
574 "ctrl_iface.c",
575 "src/ap/ctrl_iface_ap.c",
576 "src/common/sae.c",
577 "src/l2_packet/l2_packet_none.c",
578 "src/utils/uuid.c",
579 "src/ap/wps_hostapd.c",
580 "src/eap_server/eap_server_wsc.c",
581 "src/eap_common/eap_wsc_common.c",
582 "src/wps/wps.c",
583 "src/wps/wps_common.c",
584 "src/wps/wps_attr_parse.c",
585 "src/wps/wps_attr_build.c",
586 "src/wps/wps_attr_process.c",
587 "src/wps/wps_dev_attr.c",
588 "src/wps/wps_enrollee.c",
589 "src/wps/wps_registrar.c",
590 "src/common/dpp.c",
591 "src/common/dpp_auth.c",
592 "src/common/dpp_backup.c",
593 "src/common/dpp_crypto.c",
594 "src/common/dpp_pkex.c",
595 "src/common/dpp_reconfig.c",
596 "src/common/dpp_tcp.c",
597 "src/ap/dpp_hostapd.c",
598 "src/ap/gas_query_ap.c",
599 "eap_register.c",
600 "src/eap_server/eap_server.c",
601 "src/eap_common/eap_common.c",
602 "src/eap_server/eap_server_methods.c",
603 "src/eap_server/eap_server_identity.c",
604 "src/common/dragonfly.c",
605 "src/crypto/crypto_openssl.c",
606 "src/crypto/tls_none.c",
607 "src/crypto/aes-siv.c",
608 "src/crypto/aes-ctr.c",
609 "src/crypto/sha1-prf.c",
610 "src/crypto/sha256-prf.c",
611 "src/crypto/sha256-tlsprf.c",
612 "src/crypto/sha256-kdf.c",
613 "src/crypto/sha384-kdf.c",
614 "src/crypto/sha512-kdf.c",
615 "src/crypto/sha384-prf.c",
616 "src/crypto/sha512-prf.c",
617 "src/tls/asn1.c",
618 "src/crypto/dh_groups.c",
619 "src/utils/base64.c",
620 "src/utils/json.c",
621 "src/ap/wmm.c",
622 "src/ap/ap_list.c",
623 "src/ap/comeback_token.c",
624 "src/pasn/pasn_common.c",
625 "src/pasn/pasn_responder.c",
626 "src/ap/ieee802_11.c",
627 "src/ap/hw_features.c",
628 "src/ap/dfs.c",
629 "src/ap/ieee802_11_ht.c",
630 "src/ap/ieee802_11_vht.c",
631 "src/common/gas.c",
632 "src/ap/gas_serv.c",
633 "src/drivers/driver_common.c",
634 "src/ap/acs.c",
635 ] + select(soong_config_variable("wpa_supplicant_8", "hostapd_11ax"), {
636 true: ["src/ap/ieee802_11_he.c"],
637 default: [],
Les Lee16bb41b2024-12-03 01:50:22 +0000638 }) +
639 select(soong_config_variable("wpa_supplicant_8", "hostapd_11be"), {
640 true: ["src/ap/ieee802_11_eht.c"],
641 default: [],
Bill Yang08f249a2024-10-08 07:00:08 +0000642 }),
643 defaults: [
644 "hostapd_driver_srcs_default",
645 ],
646}
647
648cc_binary {
649 name: "hostapd_cli",
650 proprietary: true,
651 srcs: [
652 "hostapd_cli.c",
653 "src/common/cli.c",
654 "src/common/wpa_ctrl.c",
655 "src/utils/common.c",
656 "src/utils/edit.c",
657 "src/utils/eloop.c",
658 "src/utils/os_unix.c",
659 "src/utils/wpa_debug.c",
660 ],
661 shared_libs: [
662 "libc",
663 "libcutils",
664 "liblog",
665 ],
666 defaults: [
667 "hostapd_cflags_default",
668 "hostapd_includes_default",
669 ],
670}
671
672soong_config_module_type {
673 name: "hostapd_cc_binary",
674 module_type: "cc_binary",
675 config_namespace: "wpa_supplicant_8",
676 value_variables: [
677 "board_hostapd_private_lib",
678 ],
679 properties: ["static_libs"],
680}
681
682hostapd_cc_binary {
683 name: "hostapd",
684 proprietary: true,
685 relative_install_path: "hw",
686 //vintf_fragments: ["android.hardware.wifi.hostapd.xml"],
687 required: [
688 "android.hardware.wifi.hostapd.xml",
689 ],
690 static_libs: [
691 "libhostapd_aidl",
692 ],
693 shared_libs: [
694 "libc",
695 "libcutils",
696 "liblog",
697 "libcrypto",
698 "libssl",
699 "libnl",
700 "android.hardware.wifi.hostapd-V3-ndk",
701 "android.hardware.wifi.common-V2-ndk",
702 "libbase",
703 "libutils",
704 "libbinder_ndk",
705 ],
706 init_rc: ["hostapd.android.rc"],
707 defaults: [
708 "hostapd_srcs_default",
709 "hostapd_cflags_default",
710 "hostapd_includes_default",
711 ],
712 soong_config_variables: {
713 board_hostapd_private_lib: {
714 static_libs: ["%s"],
715 },
716 },
717}
718
719cc_library_static {
720 name: "libhostapd_aidl",
721 soc_specific: true,
722 srcs: [
723 "aidl/aidl.cpp",
724 "aidl/hostapd.cpp",
725 ],
726 shared_libs: [
727 "android.hardware.wifi.hostapd-V3-ndk",
728 "android.hardware.wifi.common-V2-ndk",
729 "libbinder_ndk",
730 "libbase",
731 "libutils",
732 "liblog",
733 ],
734 export_include_dirs: ["aidl"],
735 cppflags: [
736 "-Wall",
737 "-Werror",
738 ],
739 defaults: [
740 "hostapd_cflags_default",
741 "hostapd_includes_default",
742 ],
743}
Bill Yang3ec16372025-01-13 09:55:17 +0000744
745// End of non-cuttlefish section