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