blob: f566556976c13ef35578cd30826c6968e388ed89 [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
60filegroup {
61 name: "wpa_supplicant_template.conf",
62 srcs: ["wpa_supplicant_template.conf"],
63}
64
65cc_defaults {
66 name: "wpa_supplicant_defaults",
67 defaults: ["wpa_supplicant_cflags_defaults"],
68 srcs: [":wpa_supplicant_srcs"],
69 shared_libs: [
Sunil Ravic1ac7ed2024-09-18 04:46:34 +000070 "android.hardware.wifi.supplicant-V4-ndk",
Gabriel Biren6b4e8272022-12-14 23:07:53 +000071 "android.system.keystore2-V1-ndk",
Daniel Norman1f2ba852021-10-04 16:14:43 -070072 "libbase",
Gabriel Biren57ededa2021-09-03 16:08:50 +000073 "libbinder_ndk",
Daniel Norman1f2ba852021-10-04 16:14:43 -070074 "libc",
75 "libcrypto",
76 "libcutils",
Daniel Norman1f2ba852021-10-04 16:14:43 -070077 "libkeystore-engine-wifi-hidl",
Daniel Norman1f2ba852021-10-04 16:14:43 -070078 "liblog",
79 "libnl",
80 "libssl",
81 "libutils",
82 ],
83 relative_install_path: "hw",
84 soc_specific: true,
85 static_libs: [
Gabriel Biren57ededa2021-09-03 16:08:50 +000086 "libwpa_aidl_bp",
Daniel Norman1f2ba852021-10-04 16:14:43 -070087 ],
88 header_libs: [
89 "wpa_supplicant_headers",
Gabriel Biren57ededa2021-09-03 16:08:50 +000090 "libwpa_aidl_headers",
Daniel Norman1f2ba852021-10-04 16:14:43 -070091 ],
92}
93
Cole Faust0b99b522024-08-20 15:34:57 -070094cc_defaults {
Daniel Norman1f2ba852021-10-04 16:14:43 -070095 name: "wpa_supplicant_cflags_defaults",
Daniel Norman1f2ba852021-10-04 16:14:43 -070096 // Generated by building wpa_supplicant and printing LOCAL_CFLAGS.
97 cflags: [
98 "-DANDROID_LOG_NAME=\"wpa_supplicant\"",
99 "-DANDROID_P2P",
100 "-DCONFIG_ACS",
101 "-DCONFIG_ANDROID_LOG",
102 "-DCONFIG_AP",
103 "-DCONFIG_BACKEND_FILE",
104 "-DCONFIG_CTRL_IFACE",
105 "-DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/vendor/wifi/wpa/sockets\"",
106 "-DCONFIG_CTRL_IFACE_DIR=\"/data/vendor/wifi/wpa/sockets\"",
Gabriel Biren57ededa2021-09-03 16:08:50 +0000107 "-DCONFIG_CTRL_IFACE_AIDL",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700108 "-DCONFIG_CTRL_IFACE_UNIX",
109 "-DCONFIG_DPP",
110 "-DCONFIG_DPP2",
111 "-DCONFIG_DRIVER_NL80211",
112 "-DCONFIG_ECC",
113 "-DCONFIG_ERP",
114 "-DCONFIG_FILS",
115 "-DCONFIG_GAS",
116 "-DCONFIG_GAS_SERVER",
Sundong Ahn4f6ca3a2021-12-02 01:04:41 +0000117 "-DCONFIG_AIDL",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700118 "-DCONFIG_HMAC_SHA256_KDF",
119 "-DCONFIG_HMAC_SHA384_KDF",
120 "-DCONFIG_HMAC_SHA512_KDF",
121 "-DCONFIG_HS20",
122 "-DCONFIG_IEEE80211AC",
123 "-DCONFIG_IEEE80211R",
124 "-DCONFIG_INTERWORKING",
125 "-DCONFIG_IPV6",
126 "-DCONFIG_JSON",
127 "-DCONFIG_MBO",
128 "-DCONFIG_NO_ACCOUNTING",
129 "-DCONFIG_NO_RADIUS",
130 "-DCONFIG_NO_RADIUS",
131 "-DCONFIG_NO_RANDOM_POOL",
132 "-DCONFIG_NO_ROAMING",
133 "-DCONFIG_NO_VLAN",
134 "-DCONFIG_OFFCHANNEL",
135 "-DCONFIG_OWE",
136 "-DCONFIG_P2P",
137 "-DCONFIG_SAE",
138 "-DCONFIG_SAE_PK",
139 "-DCONFIG_SHA256",
140 "-DCONFIG_SHA384",
141 "-DCONFIG_SHA512",
142 "-DCONFIG_SMARTCARD",
143 "-DCONFIG_SME",
144 "-DCONFIG_SUITEB",
145 "-DCONFIG_SUITEB192",
146 "-DCONFIG_TDLS",
147 "-DCONFIG_WEP",
148 "-DCONFIG_WIFI_DISPLAY",
149 "-DCONFIG_WNM",
150 "-DCONFIG_WPA_CLI_HISTORY_DIR=\"/data/vendor/wifi/wpa\"",
151 "-DCONFIG_WPS",
152 "-DCONFIG_WPS_ER",
153 "-DCONFIG_WPS_NFC",
154 "-DCONFIG_WPS_OOB",
155 "-DCONFIG_WPS_UPNP",
156 "-DEAP_AKA",
157 "-DEAP_AKA_PRIME",
158 "-DEAP_GTC",
159 "-DEAP_LEAP",
160 "-DEAP_MD5",
161 "-DEAP_MSCHAPv2",
162 "-DEAP_OTP",
163 "-DEAP_PEAP",
Vinay Gannevarame008ff32024-07-17 18:53:59 +0530164 "-DCONFIG_PASN",
165 "-DCONFIG_PTKSA_CACHE",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700166 "-DEAP_PWD",
167 "-DEAP_SERVER",
168 "-DEAP_SERVER_IDENTITY",
169 "-DEAP_SERVER_WSC",
170 "-DEAP_SIM",
171 "-DEAP_TLS",
172 "-DEAP_TLS_OPENSSL",
173 "-DEAP_TTLS",
174 "-DEAP_WSC",
175 "-DIEEE8021X_EAPOL",
176 "-DNEED_AP_MLME",
177 "-DPKCS12_FUNCS",
178 "-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"",
179 "-DWPA_IGNORE_CONFIG_ERRORS",
180 "-Wall",
181 "-Werror",
182 "-Wno-error=sometimes-uninitialized",
183 "-Wno-incompatible-pointer-types",
184 "-Wno-incompatible-pointer-types-discards-qualifiers",
185 "-Wno-macro-redefined",
186 "-Wno-parentheses-equality",
187 "-Wno-sign-compare",
188 "-Wno-unused-function",
189 "-Wno-unused-parameter",
190 "-Wno-unused-variable",
Cole Faust0b99b522024-08-20 15:34:57 -0700191 ] +
192 // Devices that include this module should set these soong config vars appropriately.
193 // For example:
194 // $(call soong_config_set, wpa_supplicant, platform_version, $(PLATFORM_VERSION))
195 // $(call soong_config_set, wpa_supplicant, nl80211_driver, CONFIG_DRIVER_NL80211_QCA)
196 select(soong_config_variable("wpa_supplicant", "platform_version"), {
197 any @ version: ["-DVERSION_STR_POSTFIX=\"-" + version + "\""],
198 default: ["-DVERSION_STR_POSTFIX=\"-Android\""],
199 }) +
200 select(soong_config_variable("wpa_supplicant", "nl80211_driver"), {
201 any @ driver: ["-D" + driver],
202 // Flag is optional, so no default value provided.
203 default: [],
204 }),
Chih-Hung Hsiehf3cee1d2022-12-02 13:06:22 -0800205 // Similar to suppressing clang compiler warnings, here we
206 // suppress clang-tidy warnings to reduce noises in Android build.log.
207 tidy_checks: [
208 "-android-cloexec-*",
209 "-bugprone-branch-clone",
210 "-bugprone-macro-parentheses",
211 "-bugprone-misplaced-widening-cast",
212 "-bugprone-signal-handler",
213 "-bugprone-signed-char-misuse",
214 "-bugprone-sizeof-expression",
215 "-bugprone-suspicious-string-compare",
216 "-bugprone-too-small-loop-variable",
217 "-cert-err34-c",
218 "-cert-msc30-c",
219 "-cert-msc50-cpp",
220 "-cert-msc54-cpp",
221 "-cert-sig30-c",
222 "-cert-str34-c",
223 "-clang-analyzer-core.NullDereference",
224 "-clang-analyzer-core.UndefinedBinaryOperatorResult",
225 "-clang-analyzer-deadcode.DeadStores",
226 "-clang-analyzer-optin.performance.Padding",
227 "-clang-analyzer-optin.portability.UnixAPI",
228 "-clang-analyzer-security.insecureAPI.UncheckedReturn",
229 "-clang-analyzer-unix.cstring.NullArg",
230 "-clang-analyzer-unix.Malloc",
231 "-clang-diagnostic-unused-but-set-variable",
232 "-misc-redundant-expression",
233 ],
Daniel Norman1f2ba852021-10-04 16:14:43 -0700234}
235
236// Generated by building wpa_supplicant and printing LOCAL_SRC_FILES.
237filegroup {
238 name: "wpa_supplicant_srcs",
239 srcs: [
240 "ap.c",
241 "bss.c",
242 "bssid_ignore.c",
243 "config.c",
244 "config_file.c",
245 "ctrl_iface.c",
246 "ctrl_iface_unix.c",
247 "dpp_supplicant.c",
248 "eap_register.c",
249 "events.c",
250 "gas_query.c",
251 "hs20_supplicant.c",
252 "interworking.c",
253 "main.c",
254 "mbo.c",
255 "notify.c",
256 "offchannel.c",
257 "op_classes.c",
258 "p2p_supplicant.c",
259 "p2p_supplicant_sd.c",
Vinay Gannevarame008ff32024-07-17 18:53:59 +0530260 "pasn_supplicant.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700261 "robust_av.c",
262 "rrm.c",
263 "scan.c",
264 "sme.c",
265 "src/ap/acs.c",
266 "src/ap/ap_config.c",
267 "src/ap/ap_drv_ops.c",
268 "src/ap/ap_list.c",
Sunil Ravi38ad1ed2023-01-17 23:58:31 +0000269 "src/ap/comeback_token.c",
Vinay Gannevarame008ff32024-07-17 18:53:59 +0530270 "src/pasn/pasn_initiator.c",
Sunil Ravi38ad1ed2023-01-17 23:58:31 +0000271 "src/pasn/pasn_responder.c",
Vinay Gannevarame008ff32024-07-17 18:53:59 +0530272 "src/pasn/pasn_common.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700273 "src/ap/ap_mlme.c",
274 "src/ap/authsrv.c",
275 "src/ap/beacon.c",
276 "src/ap/bss_load.c",
277 "src/ap/ctrl_iface_ap.c",
278 "src/ap/dfs.c",
279 "src/ap/dpp_hostapd.c",
280 "src/ap/drv_callbacks.c",
281 "src/ap/eap_user_db.c",
282 "src/ap/fils_hlp.c",
283 "src/ap/gas_query_ap.c",
284 "src/ap/gas_serv.c",
285 "src/ap/hostapd.c",
286 "src/ap/hs20.c",
287 "src/ap/hw_features.c",
288 "src/ap/ieee802_11_auth.c",
289 "src/ap/ieee802_11.c",
290 "src/ap/ieee802_11_ht.c",
291 "src/ap/ieee802_11_shared.c",
292 "src/ap/ieee802_11_vht.c",
293 "src/ap/ieee802_1x.c",
294 "src/ap/mbo_ap.c",
295 "src/ap/neighbor_db.c",
296 "src/ap/p2p_hostapd.c",
297 "src/ap/pmksa_cache_auth.c",
298 "src/ap/rrm.c",
299 "src/ap/sta_info.c",
300 "src/ap/tkip_countermeasures.c",
301 "src/ap/utils.c",
302 "src/ap/wmm.c",
303 "src/ap/wpa_auth.c",
304 "src/ap/wpa_auth_glue.c",
305 "src/ap/wpa_auth_ie.c",
306 "src/ap/wps_hostapd.c",
307 "src/common/ctrl_iface_common.c",
308 "src/common/dpp_auth.c",
309 "src/common/dpp_backup.c",
310 "src/common/dpp.c",
311 "src/common/dpp_crypto.c",
312 "src/common/dpp_pkex.c",
313 "src/common/dpp_reconfig.c",
314 "src/common/dpp_tcp.c",
315 "src/common/dragonfly.c",
316 "src/common/gas.c",
317 "src/common/gas_server.c",
318 "src/common/hw_features_common.c",
319 "src/common/ieee802_11_common.c",
320 "src/common/sae.c",
321 "src/common/sae_pk.c",
322 "src/common/wpa_common.c",
Sunil Ravi99c035e2024-07-12 01:42:03 +0000323 "src/common/ptksa_cache.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700324 "src/crypto/aes-ctr.c",
chao.meng4c248f02023-11-18 16:55:52 +0800325 "src/crypto/aes-encblock.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700326 "src/crypto/aes-siv.c",
327 "src/crypto/crypto_openssl.c",
328 "src/crypto/dh_groups.c",
329 "src/crypto/fips_prf_openssl.c",
chao.meng4c248f02023-11-18 16:55:52 +0800330 "src/crypto/milenage.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700331 "src/crypto/ms_funcs.c",
332 "src/crypto/sha1-prf.c",
333 "src/crypto/sha1-tlsprf.c",
334 "src/crypto/sha256-kdf.c",
335 "src/crypto/sha256-prf.c",
336 "src/crypto/sha256-tlsprf.c",
337 "src/crypto/sha384-kdf.c",
338 "src/crypto/sha384-prf.c",
339 "src/crypto/sha512-kdf.c",
340 "src/crypto/sha512-prf.c",
341 "src/crypto/tls_openssl.c",
342 "src/crypto/tls_openssl_ocsp.c",
343 "src/drivers/driver_common.c",
344 "src/drivers/driver_nl80211_android.c",
345 "src/drivers/driver_nl80211.c",
346 "src/drivers/driver_nl80211_capa.c",
347 "src/drivers/driver_nl80211_event.c",
348 "src/drivers/driver_nl80211_monitor.c",
349 "src/drivers/driver_nl80211_scan.c",
350 "src/drivers/drivers.c",
351 "src/drivers/linux_ioctl.c",
352 "src/drivers/netlink.c",
353 "src/drivers/rfkill.c",
354 "src/eap_common/chap.c",
355 "src/eap_common/eap_common.c",
356 "src/eap_common/eap_peap_common.c",
357 "src/eap_common/eap_pwd_common.c",
358 "src/eap_common/eap_sim_common.c",
359 "src/eap_common/eap_wsc_common.c",
360 "src/eapol_auth/eapol_auth_sm.c",
361 "src/eapol_supp/eapol_supp_sm.c",
362 "src/eap_peer/eap_aka.c",
363 "src/eap_peer/eap.c",
364 "src/eap_peer/eap_gtc.c",
365 "src/eap_peer/eap_leap.c",
366 "src/eap_peer/eap_md5.c",
367 "src/eap_peer/eap_methods.c",
368 "src/eap_peer/eap_mschapv2.c",
369 "src/eap_peer/eap_otp.c",
370 "src/eap_peer/eap_peap.c",
371 "src/eap_peer/eap_pwd.c",
372 "src/eap_peer/eap_sim.c",
373 "src/eap_peer/eap_tls.c",
374 "src/eap_peer/eap_tls_common.c",
375 "src/eap_peer/eap_ttls.c",
376 "src/eap_peer/eap_wsc.c",
377 "src/eap_peer/mschapv2.c",
378 "src/eap_server/eap_server.c",
379 "src/eap_server/eap_server_identity.c",
380 "src/eap_server/eap_server_methods.c",
381 "src/eap_server/eap_server_wsc.c",
382 "src/l2_packet/l2_packet_linux.c",
383 "src/p2p/p2p_build.c",
384 "src/p2p/p2p.c",
385 "src/p2p/p2p_dev_disc.c",
386 "src/p2p/p2p_go_neg.c",
387 "src/p2p/p2p_group.c",
388 "src/p2p/p2p_invitation.c",
389 "src/p2p/p2p_parse.c",
390 "src/p2p/p2p_pd.c",
391 "src/p2p/p2p_sd.c",
392 "src/p2p/p2p_utils.c",
393 "src/rsn_supp/pmksa_cache.c",
394 "src/rsn_supp/preauth.c",
395 "src/rsn_supp/tdls.c",
396 "src/rsn_supp/wpa.c",
397 "src/rsn_supp/wpa_ft.c",
398 "src/rsn_supp/wpa_ie.c",
399 "src/tls/asn1.c",
400 "src/utils/base64.c",
401 "src/utils/bitfield.c",
402 "src/utils/common.c",
403 "src/utils/config.c",
404 "src/utils/crc32.c",
405 "src/utils/eloop.c",
406 "src/utils/ip_addr.c",
407 "src/utils/json.c",
408 "src/utils/os_unix.c",
409 "src/utils/radiotap.c",
410 "src/utils/uuid.c",
411 "src/utils/wpabuf.c",
412 "src/utils/wpa_debug.c",
413 "src/wps/http_client.c",
414 "src/wps/httpread.c",
415 "src/wps/http_server.c",
416 "src/wps/ndef.c",
417 "src/wps/upnp_xml.c",
418 "src/wps/wps_attr_build.c",
419 "src/wps/wps_attr_parse.c",
420 "src/wps/wps_attr_process.c",
421 "src/wps/wps.c",
422 "src/wps/wps_common.c",
423 "src/wps/wps_dev_attr.c",
424 "src/wps/wps_enrollee.c",
425 "src/wps/wps_er.c",
426 "src/wps/wps_er_ssdp.c",
427 "src/wps/wps_registrar.c",
428 "src/wps/wps_upnp_ap.c",
429 "src/wps/wps_upnp.c",
430 "src/wps/wps_upnp_event.c",
431 "src/wps/wps_upnp_ssdp.c",
432 "src/wps/wps_upnp_web.c",
chao.meng4c248f02023-11-18 16:55:52 +0800433 "twt.c",
Daniel Norman1f2ba852021-10-04 16:14:43 -0700434 "wifi_display.c",
435 "wmm_ac.c",
436 "wnm_sta.c",
437 "wpas_glue.c",
438 "wpa_supplicant.c",
439 "wps_supplicant.c",
440 ],
Sunil Ravi3db35ff2023-11-06 23:23:30 +0000441}
chao.meng4c248f02023-11-18 16:55:52 +0800442
443// Generated by building wpa_cli and printing LOCAL_SRC_FILES
444filegroup {
445 name: "wpa_cli_srcs",
446 srcs: [
447 "src/common/cli.c",
Gabriel Birenc69c43d2024-05-24 16:58:00 +0000448 "src/common/wpa_ctrl.c",
chao.meng4c248f02023-11-18 16:55:52 +0800449 "src/utils/common.c",
450 "src/utils/edit.c",
451 "src/utils/eloop.c",
452 "src/utils/os_unix.c",
453 "src/utils/wpa_debug.c",
454 "wpa_cli.c",
455 ],
456}
457
458// Generated by building libwpa_client and printing LOCAL_SRC_FILES
459filegroup {
460 name: "libwpa_client_srcs",
461 srcs: [
462 "src/common/wpa_ctrl.c",
463 "src/utils/os_unix.c",
464 ],
465}
466
467cc_library_headers {
468 name: "libwpa_client_headers",
469 export_include_dirs: [
470 ".",
471 "wpa_client_include/libwpa_client",
472 ],
473 soc_specific: true,
474}