• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// 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
15// 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
20package {
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
37// 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.
40cc_library_headers {
41    name: "hostapd_headers",
42    export_include_dirs: [
43        ".",
44        "src",
45        "src/utils",
46    ],
47    soc_specific: true,
48}
49
50cc_defaults {
51    name: "hostapd_defaults",
52    defaults: ["hostapd_cflags_defaults"],
53    srcs: [":hostapd_srcs"],
54    shared_libs: [
55        "android.hardware.wifi.hostapd-V3-ndk",
56        "libbase",
57        "libutils",
58        "libbinder_ndk",
59        "libc",
60        "libcutils",
61        "liblog",
62        "libcrypto",
63        "libssl",
64        "libnl",
65    ],
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
77cc_defaults {
78    name: "hostapd_cflags_defaults",
79    // 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",
148    ] +
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
163    // 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    ],
192}
193
194// 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",
235        "src/common/ptksa_cache.c",
236        "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",
310        "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",
325        "src/ap/comeback_token.c",
326        "src/pasn/pasn_responder.c",
327        "src/pasn/pasn_common.c",
328        "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}
344
345// This manifest can used by a vendor apex module for hostapd as well.
346vintf_fragment {
347    name: "android.hardware.wifi.hostapd.xml",
348    src: "android.hardware.wifi.hostapd.xml",
349    soc_specific: true,
350}
351
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}
366
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}
373
374// 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
397cc_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: [],
484    }) + select(soong_config_variable("wpa_supplicant_8", "hostapd_11be"), {
485        true: ["-DCONFIG_IEEE80211BE"],
486        default: [],
487    }) + 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: [],
638    }) +
639    select(soong_config_variable("wpa_supplicant_8", "hostapd_11be"), {
640        true: ["src/ap/ieee802_11_eht.c"],
641        default: [],
642    }),
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}
744
745// End of non-cuttlefish section
746