1// Copyright (C) 2016 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_team: "trendy_team_fwk_wifi_hal", 17 default_applicable_licenses: ["system_connectivity_wificond_license"], 18} 19 20// Added automatically by a large-scale-change that took the approach of 21// 'apply every license found to every target'. While this makes sure we respect 22// every license restriction, it may not be entirely correct. 23// 24// e.g. GPL in an MIT project might only apply to the contrib/ directory. 25// 26// Please consider splitting the single license below into multiple licenses, 27// taking care not to lose any license_kind information, and overriding the 28// default license using the 'licenses: [...]' property on targets as needed. 29// 30// For unused files, consider creating a 'filegroup' with "//visibility:private" 31// to attach the license to, and including a comment whether the files may be 32// used in the current project. 33// http://go/android-license-faq 34license { 35 name: "system_connectivity_wificond_license", 36 visibility: [":__subpackages__"], 37 license_kinds: [ 38 "SPDX-license-identifier-Apache-2.0", 39 "SPDX-license-identifier-ISC", 40 ], 41 license_text: [ 42 "NOTICE", 43 ], 44} 45 46cc_defaults { 47 name: "wificond_defaults", 48 49 cppflags: [ 50 "-Wall", 51 "-Werror", 52 "-Wno-unused-parameter", 53 ], 54 include_dirs: ["system/connectivity"], 55} 56 57cc_defaults { 58 name: "wificond_default_libs", 59 defaults: [ 60 "keystore2_use_latest_aidl_ndk_shared", 61 "wificond_defaults", 62 ], 63 64 include_dirs: ["system/security/keystore/include"], 65 66 shared_libs: [ 67 "libbinder", 68 "libbinder_ndk", 69 "libbase", 70 "libcrypto", 71 "libcutils", 72 "libhidlbase", 73 "libminijail", 74 "libssl", 75 "libutils", 76 "libwifi-system-iface", 77 ], 78 static_libs: [ 79 "android.hardware.net.nlinterceptor-V1-ndk", 80 "android.security.legacykeystore-ndk", 81 "[email protected]", 82 "libwificond", // Wificond daemon 83 "libwifikeystorehal", // Wifi Keystore HAL service 84 ], 85} 86 87// 88// wificond daemon. 89// 90cc_binary { 91 name: "wificond", 92 defaults: [ 93 "wificond_default_libs", 94 ], 95 init_rc: ["wificond.rc"], 96 srcs: [ 97 "main.cpp", 98 "wifi_keystore_hal_connector.cpp", 99 ], 100} 101 102// 103// wificond static library 104// 105cc_library_static { 106 name: "libwificond", 107 defaults: ["wificond_defaults"], 108 srcs: [ 109 "ap_interface_binder.cpp", 110 "ap_interface_impl.cpp", 111 "client_interface_binder.cpp", 112 "client_interface_impl.cpp", 113 "device_wiphy_capabilities.cpp", 114 "logging_utils.cpp", 115 "client/native_wifi_client.cpp", 116 "scanning/channel_settings.cpp", 117 "scanning/hidden_network.cpp", 118 "scanning/pno_network.cpp", 119 "scanning/pno_settings.cpp", 120 "scanning/radio_chain_info.cpp", 121 "scanning/scan_result.cpp", 122 "scanning/single_scan_settings.cpp", 123 "scanning/scan_utils.cpp", 124 "scanning/scanner_impl.cpp", 125 "server.cpp", 126 ], 127 128 shared_libs: [ 129 "android.hardware.net.nlinterceptor-V1-ndk", 130 "libbase", 131 "libbinder", 132 "libutils", 133 "libwifi-system-iface", 134 ], 135 whole_static_libs: [ 136 "libnlinterceptor", 137 "libwificond_ipc", 138 "libwificond_nl", 139 "libwificond_event_loop", 140 ], 141} 142 143// 144// wificond netlink library 145// 146cc_library_static { 147 name: "libwificond_nl", 148 defaults: ["wificond_defaults"], 149 srcs: [ 150 "net/mlme_event.cpp", 151 "net/netlink_manager.cpp", 152 "net/netlink_utils.cpp", 153 "net/nl80211_attribute.cpp", 154 "net/nl80211_packet.cpp", 155 ], 156 shared_libs: [ 157 "android.hardware.net.nlinterceptor-V1-ndk", 158 "libbase", 159 ], 160 static_libs: [ 161 "libnlinterceptor", 162 ], 163} 164 165// 166// wificond event loop library 167// 168cc_library_static { 169 name: "libwificond_event_loop", 170 defaults: ["wificond_defaults"], 171 srcs: ["looper_backed_event_loop.cpp"], 172 whole_static_libs: [ 173 "liblog", 174 "libbase", 175 ], 176 177} 178 179// 180// wificond IPC interface library 181// 182cc_library_static { 183 name: "libwificond_ipc", 184 defaults: ["wificond_defaults"], 185 aidl: { 186 local_include_dirs: ["aidl"], 187 export_aidl_headers: true, 188 }, 189 export_shared_lib_headers: ["libbinder"], 190 srcs: [ 191 "ipc_constants.cpp", 192 ":libwificond_ipc_aidl", 193 "client/native_wifi_client.cpp", 194 "device_wiphy_capabilities.cpp", 195 "scanning/channel_settings.cpp", 196 "scanning/hidden_network.cpp", 197 "scanning/pno_network.cpp", 198 "scanning/pno_settings.cpp", 199 "scanning/radio_chain_info.cpp", 200 "scanning/scan_result.cpp", 201 "scanning/single_scan_settings.cpp", 202 ], 203 shared_libs: [ 204 "android.hardware.net.nlinterceptor-V1-ndk", 205 "libbinder", 206 ], 207 static_libs: ["libnlinterceptor"], 208} 209 210filegroup { 211 name: "libwificond_ipc_aidl", 212 srcs: [ 213 "aidl/android/net/wifi/nl80211/IApInterface.aidl", 214 "aidl/android/net/wifi/nl80211/IApInterfaceEventCallback.aidl", 215 "aidl/android/net/wifi/nl80211/IClientInterface.aidl", 216 "aidl/android/net/wifi/nl80211/IInterfaceEventCallback.aidl", 217 "aidl/android/net/wifi/nl80211/IPnoScanEvent.aidl", 218 "aidl/android/net/wifi/nl80211/IScanEvent.aidl", 219 "aidl/android/net/wifi/nl80211/ISendMgmtFrameEvent.aidl", 220 "aidl/android/net/wifi/nl80211/IWificond.aidl", 221 "aidl/android/net/wifi/nl80211/IWificondEventCallback.aidl", 222 "aidl/android/net/wifi/nl80211/IWifiScannerImpl.aidl", 223 ], 224 path: "aidl", 225} 226 227// 228// test util library 229// 230cc_library_static { 231 name: "libwificond_test_utils", 232 defaults: ["wificond_defaults"], 233 srcs: [ 234 "tests/integration/process_utils.cpp", 235 "tests/shell_utils.cpp", 236 ], 237 shared_libs: ["libbase"], 238 239 whole_static_libs: [ 240 "libwificond_ipc", 241 "libwificond_event_loop", 242 ], 243} 244 245// 246// wificond unit tests. 247// 248cc_test { 249 name: "wificond_unit_test", 250 defaults: ["wificond_defaults"], 251 test_suites: ["device-tests"], 252 tidy_timeout_srcs: [ 253 "tests/client_interface_impl_unittest.cpp", 254 "tests/netlink_utils_unittest.cpp", 255 "tests/scanner_unittest.cpp", 256 "tests/scan_utils_unittest.cpp", 257 "tests/server_unittest.cpp", 258 ], 259 srcs: [ 260 "tests/ap_interface_impl_unittest.cpp", 261 "tests/client_interface_impl_unittest.cpp", 262 "tests/looper_backed_event_loop_unittest.cpp", 263 "tests/main.cpp", 264 "tests/mock_client_interface_impl.cpp", 265 "tests/mock_netlink_manager.cpp", 266 "tests/mock_netlink_utils.cpp", 267 "tests/mock_scan_utils.cpp", 268 "tests/native_wifi_client_unittest.cpp", 269 "tests/netlink_manager_unittest.cpp", 270 "tests/netlink_utils_unittest.cpp", 271 "tests/nl80211_attribute_unittest.cpp", 272 "tests/nl80211_packet_unittest.cpp", 273 "tests/scanner_unittest.cpp", 274 "tests/scan_result_unittest.cpp", 275 "tests/scan_settings_unittest.cpp", 276 "tests/scan_utils_unittest.cpp", 277 "tests/server_unittest.cpp", 278 ], 279 280 static_libs: [ 281 "libgmock", 282 "libgtest", 283 "libwifi-system-iface-test", 284 "libwificond", 285 "libwificond_nl", 286 ], 287 shared_libs: [ 288 "android.hardware.net.nlinterceptor-V1-ndk", 289 "libbase", 290 "libbinder", 291 "libbinder_ndk", 292 "libcutils", 293 "liblog", 294 "libutils", 295 "libwifi-system-iface", 296 ], 297} 298 299// 300// wificond device integration tests. 301// 302cc_test { 303 name: "wificond_integration_test", 304 defaults: ["wificond_defaults"], 305 srcs: [ 306 "tests/integration/ap_interface_test.cpp", 307 "tests/integration/client_interface_test.cpp", 308 "tests/integration/life_cycle_test.cpp", 309 "tests/integration/scanner_test.cpp", 310 "tests/main.cpp", 311 "tests/shell_unittest.cpp", 312 ], 313 shared_libs: [ 314 "libbase", 315 "libbinder", 316 "libcutils", 317 "libutils", 318 "libwifi-system-iface", 319 ], 320 static_libs: [ 321 "libgmock", 322 "libwificond_ipc", 323 "libwificond_test_utils", 324 ], 325} 326 327cc_fuzz { 328 name: "wificond_service_fuzzer", 329 defaults: [ 330 "wificond_default_libs", 331 "service_fuzzer_defaults", 332 "fuzzer_disable_leaks", 333 ], 334 srcs: [ 335 "fuzzers/wificond_service_fuzzer.cpp", 336 ], 337 fuzz_config: { 338 triage_assignee: "[email protected]", 339 cc: [ 340 "[email protected]", 341 "[email protected]", 342 ], 343 }, 344} 345