1// 2// Copyright (c) 2021, The OpenThread Authors. 3// All rights reserved. 4// 5// Redistribution and use in source and binary forms, with or without 6// modification, are permitted provided that the following conditions are met: 7// 1. Redistributions of source code must retain the above copyright 8// notice, this list of conditions and the following disclaimer. 9// 2. Redistributions in binary form must reproduce the above copyright 10// notice, this list of conditions and the following disclaimer in the 11// documentation and/or other materials provided with the distribution. 12// 3. Neither the name of the copyright holder nor the 13// names of its contributors may be used to endorse or promote products 14// derived from this software without specific prior written permission. 15// 16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26// POSSIBILITY OF SUCH DAMAGE. 27// 28 29package { 30 default_team: "trendy_team_fwk_thread_network", 31 default_applicable_licenses: ["external_openthread_license"], 32} 33 34// Added automatically by a large-scale-change that took the approach of 35// 'apply every license found to every target'. While this makes sure we respect 36// every license restriction, it may not be entirely correct. 37// 38// e.g. GPL in an MIT project might only apply to the contrib/ directory. 39// 40// Please consider splitting the single license below into multiple licenses, 41// taking care not to lose any license_kind information, and overriding the 42// default license using the 'licenses: [...]' property on targets as needed. 43// 44// For unused files, consider creating a 'fileGroup' with "//visibility:private" 45// to attach the license to, and including a comment whether the files may be 46// used in the current project. 47// 48// large-scale-change included anything that looked like it might be a license 49// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 50// 51// Please consider removing redundant or irrelevant files from 'license_text:'. 52// See: http://go/android-license-faq 53license { 54 name: "external_openthread_license", 55 visibility: [":__subpackages__"], 56 license_kinds: [ 57 "SPDX-license-identifier-Apache-2.0", 58 "SPDX-license-identifier-BSD", 59 "SPDX-license-identifier-BSD-3-Clause", 60 "SPDX-license-identifier-GPL", 61 "SPDX-license-identifier-GPL-2.0", 62 "SPDX-license-identifier-LGPL", 63 "SPDX-license-identifier-MIT", 64 "legacy_unencumbered", 65 ], 66 license_text: [ 67 "LICENSE", 68 "NOTICE", 69 ], 70} 71 72cc_defaults { 73 name: "ot_posix_cflags_defaults", 74 cflags: [ 75 "-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"", 76 "-DOPENTHREAD_CONFIG_FILE=\"src/android/openthread-android-config.h\"", 77 "-DOPENTHREAD_PROJECT_LIB_CONFIG_FILE=\"src/android/openthread-android-spinel-config.h\"", 78 "-DOPENTHREAD_FTD=1", 79 "-DOPENTHREAD_POSIX=1", 80 "-DOPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE=1", 81 "-DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"src/android/openthread-core-android-config.h\"", 82 "-DOPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE=1", 83 "-DOPENTHREAD_CONFIG_JOINER_ENABLE=1", 84 "-DPACKAGE=\"openthread\"", 85 "-DPACKAGE_BUGREPORT=\"[email protected]\"", 86 "-DPACKAGE_NAME=\"OPENTHREAD\"", 87 "-DPACKAGE_TARNAME=\"openthread\"", 88 "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"", 89 "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"", 90 "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=0", 91 "-DOPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_ENABLE=1", 92 ], 93} 94 95genrule { 96 name: "ot_version_header", 97 cmd: "$(location src/android/config-android-version-gen.sh) < $(in) > $(out)", 98 srcs: ["src/android/openthread-config-android-version.h.in"], 99 out: ["openthread-config-android-version.h"], 100 tool_files: [ 101 "src/android/config-android-version-gen.sh", 102 ], 103} 104 105filegroup { 106 name: "openthread_core_srcs", 107 srcs: [ 108 "src/core/api/backbone_router_api.cpp", 109 "src/core/api/backbone_router_ftd_api.cpp", 110 "src/core/api/border_agent_api.cpp", 111 "src/core/api/border_router_api.cpp", 112 "src/core/api/border_routing_api.cpp", 113 "src/core/api/channel_manager_api.cpp", 114 "src/core/api/channel_monitor_api.cpp", 115 "src/core/api/child_supervision_api.cpp", 116 "src/core/api/coap_api.cpp", 117 "src/core/api/coap_secure_api.cpp", 118 "src/core/api/commissioner_api.cpp", 119 "src/core/api/crypto_api.cpp", 120 "src/core/api/dataset_api.cpp", 121 "src/core/api/dataset_ftd_api.cpp", 122 "src/core/api/dataset_updater_api.cpp", 123 "src/core/api/diags_api.cpp", 124 "src/core/api/dns_api.cpp", 125 "src/core/api/dns_server_api.cpp", 126 "src/core/api/error_api.cpp", 127 "src/core/api/heap_api.cpp", 128 "src/core/api/history_tracker_api.cpp", 129 "src/core/api/icmp6_api.cpp", 130 "src/core/api/instance_api.cpp", 131 "src/core/api/ip6_api.cpp", 132 "src/core/api/jam_detection_api.cpp", 133 "src/core/api/joiner_api.cpp", 134 "src/core/api/link_api.cpp", 135 "src/core/api/link_metrics_api.cpp", 136 "src/core/api/link_raw_api.cpp", 137 "src/core/api/logging_api.cpp", 138 "src/core/api/mesh_diag_api.cpp", 139 "src/core/api/message_api.cpp", 140 "src/core/api/multi_radio_api.cpp", 141 "src/core/api/nat64_api.cpp", 142 "src/core/api/netdata_api.cpp", 143 "src/core/api/netdata_publisher_api.cpp", 144 "src/core/api/netdiag_api.cpp", 145 "src/core/api/network_time_api.cpp", 146 "src/core/api/ping_sender_api.cpp", 147 "src/core/api/radio_stats_api.cpp", 148 "src/core/api/random_crypto_api.cpp", 149 "src/core/api/random_noncrypto_api.cpp", 150 "src/core/api/server_api.cpp", 151 "src/core/api/sntp_api.cpp", 152 "src/core/api/srp_client_api.cpp", 153 "src/core/api/srp_client_buffers_api.cpp", 154 "src/core/api/srp_server_api.cpp", 155 "src/core/api/tasklet_api.cpp", 156 "src/core/api/tcp_api.cpp", 157 "src/core/api/tcp_ext_api.cpp", 158 "src/core/api/thread_api.cpp", 159 "src/core/api/thread_ftd_api.cpp", 160 "src/core/api/trel_api.cpp", 161 "src/core/api/udp_api.cpp", 162 "src/core/api/verhoeff_checksum_api.cpp", 163 "src/core/backbone_router/backbone_tmf.cpp", 164 "src/core/backbone_router/bbr_leader.cpp", 165 "src/core/backbone_router/bbr_local.cpp", 166 "src/core/backbone_router/bbr_manager.cpp", 167 "src/core/backbone_router/multicast_listeners_table.cpp", 168 "src/core/backbone_router/ndproxy_table.cpp", 169 "src/core/border_router/infra_if.cpp", 170 "src/core/border_router/routing_manager.cpp", 171 "src/core/coap/coap.cpp", 172 "src/core/coap/coap_message.cpp", 173 "src/core/coap/coap_secure.cpp", 174 "src/core/common/appender.cpp", 175 "src/core/common/binary_search.cpp", 176 "src/core/common/crc16.cpp", 177 "src/core/common/data.cpp", 178 "src/core/common/error.cpp", 179 "src/core/common/frame_builder.cpp", 180 "src/core/common/frame_data.cpp", 181 "src/core/common/heap.cpp", 182 "src/core/common/heap_data.cpp", 183 "src/core/common/heap_string.cpp", 184 "src/core/common/log.cpp", 185 "src/core/common/message.cpp", 186 "src/core/common/notifier.cpp", 187 "src/core/common/offset_range.cpp", 188 "src/core/common/preference.cpp", 189 "src/core/common/random.cpp", 190 "src/core/common/settings.cpp", 191 "src/core/common/string.cpp", 192 "src/core/common/tasklet.cpp", 193 "src/core/common/time_ticker.cpp", 194 "src/core/common/timer.cpp", 195 "src/core/common/tlvs.cpp", 196 "src/core/common/trickle_timer.cpp", 197 "src/core/common/uptime.cpp", 198 "src/core/crypto/aes_ccm.cpp", 199 "src/core/crypto/aes_ecb.cpp", 200 "src/core/crypto/crypto_platform.cpp", 201 "src/core/crypto/hkdf_sha256.cpp", 202 "src/core/crypto/hmac_sha256.cpp", 203 "src/core/crypto/mbedtls.cpp", 204 "src/core/crypto/sha256.cpp", 205 "src/core/crypto/storage.cpp", 206 "src/core/diags/factory_diags.cpp", 207 "src/core/instance/instance.cpp", 208 "src/core/mac/channel_mask.cpp", 209 "src/core/mac/data_poll_handler.cpp", 210 "src/core/mac/data_poll_sender.cpp", 211 "src/core/mac/link_raw.cpp", 212 "src/core/mac/mac.cpp", 213 "src/core/mac/mac_filter.cpp", 214 "src/core/mac/mac_frame.cpp", 215 "src/core/mac/mac_links.cpp", 216 "src/core/mac/mac_types.cpp", 217 "src/core/mac/sub_mac.cpp", 218 "src/core/mac/sub_mac_callbacks.cpp", 219 "src/core/meshcop/announce_begin_client.cpp", 220 "src/core/meshcop/border_agent.cpp", 221 "src/core/meshcop/commissioner.cpp", 222 "src/core/meshcop/dataset.cpp", 223 "src/core/meshcop/dataset_manager.cpp", 224 "src/core/meshcop/dataset_manager_ftd.cpp", 225 "src/core/meshcop/dataset_updater.cpp", 226 "src/core/meshcop/energy_scan_client.cpp", 227 "src/core/meshcop/extended_panid.cpp", 228 "src/core/meshcop/joiner.cpp", 229 "src/core/meshcop/joiner_router.cpp", 230 "src/core/meshcop/meshcop.cpp", 231 "src/core/meshcop/meshcop_leader.cpp", 232 "src/core/meshcop/meshcop_tlvs.cpp", 233 "src/core/meshcop/network_name.cpp", 234 "src/core/meshcop/panid_query_client.cpp", 235 "src/core/meshcop/secure_transport.cpp", 236 "src/core/meshcop/timestamp.cpp", 237 "src/core/net/checksum.cpp", 238 "src/core/net/dhcp6_client.cpp", 239 "src/core/net/dhcp6_server.cpp", 240 "src/core/net/dns_client.cpp", 241 "src/core/net/dns_dso.cpp", 242 "src/core/net/dns_platform.cpp", 243 "src/core/net/dns_types.cpp", 244 "src/core/net/dnssd_server.cpp", 245 "src/core/net/icmp6.cpp", 246 "src/core/net/ip4_types.cpp", 247 "src/core/net/ip6.cpp", 248 "src/core/net/ip6_address.cpp", 249 "src/core/net/ip6_filter.cpp", 250 "src/core/net/ip6_headers.cpp", 251 "src/core/net/ip6_mpl.cpp", 252 "src/core/net/nat64_translator.cpp", 253 "src/core/net/nd6.cpp", 254 "src/core/net/nd_agent.cpp", 255 "src/core/net/netif.cpp", 256 "src/core/net/sntp_client.cpp", 257 "src/core/net/socket.cpp", 258 "src/core/net/srp_client.cpp", 259 "src/core/net/srp_server.cpp", 260 "src/core/net/tcp6.cpp", 261 "src/core/net/tcp6_ext.cpp", 262 "src/core/net/udp6.cpp", 263 "src/core/radio/radio.cpp", 264 "src/core/radio/radio_callbacks.cpp", 265 "src/core/radio/radio_platform.cpp", 266 "src/core/radio/trel_interface.cpp", 267 "src/core/radio/trel_link.cpp", 268 "src/core/radio/trel_packet.cpp", 269 "src/core/thread/address_resolver.cpp", 270 "src/core/thread/announce_begin_server.cpp", 271 "src/core/thread/announce_sender.cpp", 272 "src/core/thread/anycast_locator.cpp", 273 "src/core/thread/child.cpp", 274 "src/core/thread/child_supervision.cpp", 275 "src/core/thread/child_table.cpp", 276 "src/core/thread/csl_tx_scheduler.cpp", 277 "src/core/thread/discover_scanner.cpp", 278 "src/core/thread/dua_manager.cpp", 279 "src/core/thread/energy_scan_server.cpp", 280 "src/core/thread/indirect_sender.cpp", 281 "src/core/thread/key_manager.cpp", 282 "src/core/thread/link_metrics.cpp", 283 "src/core/thread/link_metrics_types.cpp", 284 "src/core/thread/link_quality.cpp", 285 "src/core/thread/lowpan.cpp", 286 "src/core/thread/mesh_forwarder.cpp", 287 "src/core/thread/mesh_forwarder_ftd.cpp", 288 "src/core/thread/mesh_forwarder_mtd.cpp", 289 "src/core/thread/mle.cpp", 290 "src/core/thread/mle_router.cpp", 291 "src/core/thread/mle_tlvs.cpp", 292 "src/core/thread/mle_types.cpp", 293 "src/core/thread/mlr_manager.cpp", 294 "src/core/thread/neighbor.cpp", 295 "src/core/thread/neighbor_table.cpp", 296 "src/core/thread/network_data.cpp", 297 "src/core/thread/network_data_leader.cpp", 298 "src/core/thread/network_data_leader_ftd.cpp", 299 "src/core/thread/network_data_local.cpp", 300 "src/core/thread/network_data_notifier.cpp", 301 "src/core/thread/network_data_publisher.cpp", 302 "src/core/thread/network_data_service.cpp", 303 "src/core/thread/network_data_tlvs.cpp", 304 "src/core/thread/network_data_types.cpp", 305 "src/core/thread/network_diagnostic.cpp", 306 "src/core/thread/network_diagnostic_tlvs.cpp", 307 "src/core/thread/panid_query_server.cpp", 308 "src/core/thread/radio_selector.cpp", 309 "src/core/thread/router.cpp", 310 "src/core/thread/router_table.cpp", 311 "src/core/thread/src_match_controller.cpp", 312 "src/core/thread/thread_netif.cpp", 313 "src/core/thread/time_sync_service.cpp", 314 "src/core/thread/tmf.cpp", 315 "src/core/thread/uri_paths.cpp", 316 "src/core/utils/channel_manager.cpp", 317 "src/core/utils/channel_monitor.cpp", 318 "src/core/utils/flash.cpp", 319 "src/core/utils/heap.cpp", 320 "src/core/utils/history_tracker.cpp", 321 "src/core/utils/jam_detector.cpp", 322 "src/core/utils/mesh_diag.cpp", 323 "src/core/utils/otns.cpp", 324 "src/core/utils/parse_cmdline.cpp", 325 "src/core/utils/ping_sender.cpp", 326 "src/core/utils/power_calibration.cpp", 327 "src/core/utils/slaac_address.cpp", 328 "src/core/utils/srp_client_buffers.cpp", 329 "src/core/utils/verhoeff_checksum.cpp", 330 ], 331} 332 333filegroup { 334 name: "openthread_cli_srcs", 335 srcs: [ 336 "src/cli/cli.cpp", 337 "src/cli/cli_bbr.cpp", 338 "src/cli/cli_br.cpp", 339 "src/cli/cli_coap.cpp", 340 "src/cli/cli_coap_secure.cpp", 341 "src/cli/cli_commissioner.cpp", 342 "src/cli/cli_dataset.cpp", 343 "src/cli/cli_dns.cpp", 344 "src/cli/cli_history.cpp", 345 "src/cli/cli_joiner.cpp", 346 "src/cli/cli_link_metrics.cpp", 347 "src/cli/cli_mac_filter.cpp", 348 "src/cli/cli_network_data.cpp", 349 "src/cli/cli_ping.cpp", 350 "src/cli/cli_srp_client.cpp", 351 "src/cli/cli_srp_server.cpp", 352 "src/cli/cli_tcp.cpp", 353 "src/cli/cli_udp.cpp", 354 "src/cli/cli_utils.cpp", 355 ], 356} 357 358filegroup { 359 name: "openthread_ncp_srcs", 360 srcs: [ 361 "src/ncp/changed_props_set.cpp", 362 "src/ncp/ncp_base.cpp", 363 "src/ncp/ncp_base_dispatcher.cpp", 364 "src/ncp/ncp_base_radio.cpp", 365 "src/ncp/ncp_spi.cpp", 366 "src/ncp/ncp_hdlc.cpp", 367 ], 368} 369 370filegroup { 371 name: "openthread_simulation_srcs", 372 srcs: [ 373 "examples/platforms/simulation/alarm.c", 374 "examples/platforms/simulation/crypto.c", 375 "examples/platforms/simulation/diag.c", 376 "examples/platforms/simulation/entropy.c", 377 "examples/platforms/simulation/flash.c", 378 "examples/platforms/simulation/infra_if.c", 379 "examples/platforms/simulation/misc.c", 380 "examples/platforms/simulation/radio.c", 381 "examples/platforms/simulation/simul_utils.c", 382 "examples/platforms/simulation/spi-stubs.c", 383 "examples/platforms/simulation/system.c", 384 "examples/platforms/simulation/trel.c", 385 "examples/platforms/simulation/uart.c", 386 "examples/platforms/utils/link_metrics.cpp", 387 "examples/platforms/utils/mac_frame.cpp", 388 "examples/platforms/utils/settings_ram.c", 389 "examples/platforms/utils/soft_source_match_table.c", 390 "src/android/logging.c", 391 ], 392} 393 394filegroup { 395 name: "openthread_mbedtls_srcs", 396 srcs: [ 397 "third_party/mbedtls/repo/library/aes.c", 398 "third_party/mbedtls/repo/library/asn1parse.c", 399 "third_party/mbedtls/repo/library/asn1write.c", 400 "third_party/mbedtls/repo/library/base64.c", 401 "third_party/mbedtls/repo/library/bignum_core.c", 402 "third_party/mbedtls/repo/library/bignum.c", 403 "third_party/mbedtls/repo/library/ccm.c", 404 "third_party/mbedtls/repo/library/cipher.c", 405 "third_party/mbedtls/repo/library/cipher_wrap.c", 406 "third_party/mbedtls/repo/library/cmac.c", 407 "third_party/mbedtls/repo/library/constant_time.c", 408 "third_party/mbedtls/repo/library/ctr_drbg.c", 409 "third_party/mbedtls/repo/library/debug.c", 410 "third_party/mbedtls/repo/library/ecdh.c", 411 "third_party/mbedtls/repo/library/ecdsa.c", 412 "third_party/mbedtls/repo/library/ecjpake.c", 413 "third_party/mbedtls/repo/library/ecp.c", 414 "third_party/mbedtls/repo/library/ecp_curves.c", 415 "third_party/mbedtls/repo/library/entropy.c", 416 "third_party/mbedtls/repo/library/entropy_poll.c", 417 "third_party/mbedtls/repo/library/hmac_drbg.c", 418 "third_party/mbedtls/repo/library/md.c", 419 "third_party/mbedtls/repo/library/memory_buffer_alloc.c", 420 "third_party/mbedtls/repo/library/oid.c", 421 "third_party/mbedtls/repo/library/pem.c", 422 "third_party/mbedtls/repo/library/pk.c", 423 "third_party/mbedtls/repo/library/pk_ecc.c", 424 "third_party/mbedtls/repo/library/pk_wrap.c", 425 "third_party/mbedtls/repo/library/pkparse.c", 426 "third_party/mbedtls/repo/library/pkwrite.c", 427 "third_party/mbedtls/repo/library/platform.c", 428 "third_party/mbedtls/repo/library/platform_util.c", 429 "third_party/mbedtls/repo/library/sha256.c", 430 "third_party/mbedtls/repo/library/ssl_ciphersuites.c", 431 "third_party/mbedtls/repo/library/ssl_client.c", 432 "third_party/mbedtls/repo/library/ssl_cookie.c", 433 "third_party/mbedtls/repo/library/ssl_msg.c", 434 "third_party/mbedtls/repo/library/ssl_ticket.c", 435 "third_party/mbedtls/repo/library/ssl_tls.c", 436 "third_party/mbedtls/repo/library/ssl_tls12_client.c", 437 "third_party/mbedtls/repo/library/ssl_tls12_server.c", 438 "third_party/mbedtls/repo/library/ssl_tls13_client.c", 439 "third_party/mbedtls/repo/library/threading.c", 440 "third_party/mbedtls/repo/library/x509.c", 441 "third_party/mbedtls/repo/library/x509_crt.c", 442 ], 443} 444 445filegroup { 446 name: "openthread_platform_posix_srcs", 447 srcs: [ 448 "src/android/logging.c", 449 "src/posix/platform/alarm.cpp", 450 "src/posix/platform/backtrace.cpp", 451 "src/posix/platform/configuration.cpp", 452 "src/posix/platform/config_file.cpp", 453 "src/posix/platform/daemon.cpp", 454 "src/posix/platform/entropy.cpp", 455 "src/posix/platform/firewall.cpp", 456 "src/posix/platform/hdlc_interface.cpp", 457 "src/posix/platform/infra_if.cpp", 458 "src/posix/platform/mainloop.cpp", 459 "src/posix/platform/memory.cpp", 460 "src/posix/platform/misc.cpp", 461 "src/posix/platform/multicast_routing.cpp", 462 "src/posix/platform/netif.cpp", 463 "src/posix/platform/power.cpp", 464 "src/posix/platform/radio.cpp", 465 "src/posix/platform/radio_url.cpp", 466 "src/posix/platform/rcp_caps_diag.cpp", 467 "src/posix/platform/resolver.cpp", 468 "src/posix/platform/settings.cpp", 469 "src/posix/platform/spi_interface.cpp", 470 "src/posix/platform/spinel_manager.cpp", 471 "src/posix/platform/system.cpp", 472 "src/posix/platform/trel.cpp", 473 "src/posix/platform/udp.cpp", 474 "src/posix/platform/utils.cpp", 475 ], 476} 477 478cc_library_static { 479 name: "ot-core", 480 apex_available: ["com.android.tethering"], 481 min_sdk_version: "30", 482 defaults: [ 483 "ot-daemon-debuggable-cc-defaults", 484 "ot_posix_cflags_defaults", 485 ], 486 generated_headers: ["ot_version_header"], 487 488 local_include_dirs: [ 489 "include", 490 "src", 491 "src/android/thread_network_hal", 492 "src/cli", 493 "src/core", 494 "src/ncp", 495 "src/posix/platform", 496 "src/posix/platform/include", 497 "third_party", 498 "third_party/mbedtls", 499 "third_party/mbedtls/repo/include", 500 ], 501 502 export_include_dirs: [ 503 "include", 504 "src", 505 ], 506 507 cppflags: [ 508 "-pedantic-errors", 509 "-Wno-non-virtual-dtor", 510 // Background: the HAL client implementation requires features which 511 // are available on only 31+, but the Tethering module requires the 512 // ot-daemon binary to support 30+. 513 // It's safe to suppress this warning because ot-daemon will never 514 // run below Android U (34). 515 "-Wno-unguarded-availability", 516 "-Wno-c99-extensions", 517 ], 518 519 vintf_fragments: ["src/android/thread_network_hal/device_manifest.xml"], 520 shared_libs: [ 521 "libbase", 522 "libcutils", 523 "libutils", 524 "libbinder_ndk", 525 "android.hardware.threadnetwork-V1-ndk", 526 ], 527 528 srcs: [ 529 ":openthread_core_srcs", 530 ":openthread_mbedtls_srcs", 531 ":openthread_platform_posix_srcs", 532 "src/android/thread_network_hal/hal_interface.cpp", 533 "src/android/thread_network_hal/vendor_interface.cpp", 534 "src/lib/hdlc/hdlc.cpp", 535 "src/lib/platform/exit_code.c", 536 "src/lib/spinel/logger.cpp", 537 "src/lib/spinel/radio_spinel.cpp", 538 "src/lib/spinel/spinel_buffer.cpp", 539 "src/lib/spinel/spinel_decoder.cpp", 540 "src/lib/spinel/spinel_driver.cpp", 541 "src/lib/spinel/spinel_encoder.cpp", 542 "src/lib/spinel/spinel_helper.cpp", 543 "src/lib/spinel/spinel.c", 544 "src/lib/url/url.cpp", 545 ], 546} 547 548cc_library_static { 549 name: "libopenthread-cli", 550 apex_available: ["com.android.tethering"], 551 min_sdk_version: "30", 552 defaults: [ 553 "ot-daemon-debuggable-cc-defaults", 554 "ot_posix_cflags_defaults", 555 ], 556 generated_headers: ["ot_version_header"], 557 558 local_include_dirs: [ 559 "include", 560 "src", 561 "src/cli", 562 "src/core", 563 "src/posix/platform", 564 "src/posix/platform/include", 565 "third_party/mbedtls", 566 "third_party/mbedtls/repo/include", 567 ], 568 569 cflags: [ 570 "-DOPENTHREAD_CONFIG_CLI_UART_TX_BUFFER_SIZE=3500", 571 "-DOPENTHREAD_CONFIG_CLI_UART_RX_BUFFER_SIZE=3500", 572 "-DOPENTHREAD_CONFIG_UART_CLI_RAW=1", 573 ], 574 575 cppflags: [ 576 "-std=c++11", 577 "-pedantic-errors", 578 "-Wno-c99-extensions", 579 ], 580 581 srcs: [ 582 "src/cli/cli.cpp", 583 "src/cli/cli_bbr.cpp", 584 "src/cli/cli_br.cpp", 585 "src/cli/cli_coap.cpp", 586 "src/cli/cli_coap_secure.cpp", 587 "src/cli/cli_commissioner.cpp", 588 "src/cli/cli_dataset.cpp", 589 "src/cli/cli_dns.cpp", 590 "src/cli/cli_history.cpp", 591 "src/cli/cli_joiner.cpp", 592 "src/cli/cli_link_metrics.cpp", 593 "src/cli/cli_mac_filter.cpp", 594 "src/cli/cli_network_data.cpp", 595 "src/cli/cli_ping.cpp", 596 "src/cli/cli_srp_client.cpp", 597 "src/cli/cli_srp_server.cpp", 598 "src/cli/cli_tcp.cpp", 599 "src/cli/cli_udp.cpp", 600 "src/cli/cli_utils.cpp", 601 ], 602} 603 604cc_binary { 605 name: "ot-ctl", 606 defaults: ["ot_posix_cflags_defaults"], 607 generated_headers: ["ot_version_header"], 608 609 cppflags: [ 610 "-pedantic-errors", 611 ], 612 613 local_include_dirs: [ 614 "include", 615 "src/", 616 "src/core", 617 "src/posix/platform", 618 "src/posix/platform/include", 619 ], 620 621 srcs: ["src/posix/client.cpp"], 622} 623 624cc_defaults { 625 name: "ot_rcp_cflags_defaults", 626 cflags: [ 627 "-DOPENTHREAD_RADIO=1", 628 ], 629} 630 631cc_defaults { 632 name: "ot_simulation_cflags_defaults", 633 634 local_include_dirs: [ 635 "examples/platforms/simulation", 636 "examples/platforms", 637 "include", 638 "src", 639 "src/cli", 640 "src/core", 641 "src/ncp", 642 "src/lib/hdlc", 643 "third_party", 644 "third_party/mbedtls", 645 "third_party/mbedtls/repo/include", 646 ], 647 648 export_include_dirs: [ 649 "include", 650 "src", 651 ], 652 653 cflags: [ 654 "-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"", 655 "-DOPENTHREAD_CONFIG_ANDROID_VERSION_HEADER_ENABLE=1", 656 "-DOPENTHREAD_CONFIG_DIAG_ENABLE=1", 657 "-DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1", 658 "-DOPENTHREAD_CONFIG_ECDSA_ENABLE=1", 659 "-DOPENTHREAD_CONFIG_FILE=\"openthread-config-android-version.h\"", 660 "-DOPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE=1", 661 "-DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1", 662 "-DOPENTHREAD_CONFIG_MLR_ENABLE=1", 663 "-DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1", 664 "-DOPENTHREAD_CONFIG_PING_SENDER_ENABLE=1", 665 "-DOPENTHREAD_CONFIG_SRP_CLIENT_ENABLE=1", 666 "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=0", 667 "-DOPENTHREAD_EXAMPLES_SIMULATION=1", 668 "-DOPENTHREAD_CONFIG_TCP_ENABLE=0", 669 "-DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"examples/platforms/simulation/openthread-core-simulation-config.h\"", 670 "-DOPENTHREAD_SETTINGS_RAM=1", 671 "-DOPENTHREAD_SIMULATION_MAX_NETWORK_SIZE=128", 672 "-DPACKAGE=\"openthread\"", 673 "-DPACKAGE_BUGREPORT=\"[email protected]\"", 674 "-DPACKAGE_NAME=\"OPENTHREAD\"", 675 "-DPACKAGE_TARNAME=\"openthread\"", 676 "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"", 677 "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"", 678 "-Wno-implicit-fallthrough", 679 ], 680} 681 682cc_library_static { 683 name: "openthread-simulation", 684 vendor_available: true, 685 686 defaults: [ 687 "ot_rcp_cflags_defaults", 688 "ot_simulation_cflags_defaults", 689 ], 690 691 static_libs: [ 692 "libutils", 693 ], 694 695 srcs: [ 696 ":openthread_simulation_srcs", 697 "src/lib/platform/exit_code.c", 698 "third_party/mbedtls/repo/library/aes.c", 699 "third_party/mbedtls/repo/library/asn1parse.c", 700 "third_party/mbedtls/repo/library/asn1write.c", 701 "third_party/mbedtls/repo/library/base64.c", 702 "third_party/mbedtls/repo/library/bignum_core.c", 703 "third_party/mbedtls/repo/library/bignum.c", 704 "third_party/mbedtls/repo/library/ccm.c", 705 "third_party/mbedtls/repo/library/cipher.c", 706 "third_party/mbedtls/repo/library/cipher_wrap.c", 707 "third_party/mbedtls/repo/library/cmac.c", 708 "third_party/mbedtls/repo/library/ctr_drbg.c", 709 "third_party/mbedtls/repo/library/debug.c", 710 "third_party/mbedtls/repo/library/entropy.c", 711 "third_party/mbedtls/repo/library/entropy_poll.c", 712 "third_party/mbedtls/repo/library/hmac_drbg.c", 713 "third_party/mbedtls/repo/library/md.c", 714 "third_party/mbedtls/repo/library/memory_buffer_alloc.c", 715 "third_party/mbedtls/repo/library/oid.c", 716 "third_party/mbedtls/repo/library/platform.c", 717 "third_party/mbedtls/repo/library/platform_util.c", 718 "third_party/mbedtls/repo/library/sha256.c", 719 ], 720 721 cflags: [ 722 "-D_BSD_SOURCE=1", 723 "-D_DEFAULT_SOURCE=1", 724 ], 725} 726 727cc_library_static { 728 name: "openthread-radio", 729 vendor_available: true, 730 731 defaults: [ 732 "ot_rcp_cflags_defaults", 733 "ot_simulation_cflags_defaults", 734 ], 735 736 generated_headers: ["ot_version_header"], 737 shared_libs: [ 738 "libcutils", 739 ], 740 741 srcs: [ 742 "src/core/api/diags_api.cpp", 743 "src/core/api/error_api.cpp", 744 "src/core/api/instance_api.cpp", 745 "src/core/api/link_raw_api.cpp", 746 "src/core/api/logging_api.cpp", 747 "src/core/api/random_noncrypto_api.cpp", 748 "src/core/api/tasklet_api.cpp", 749 "src/core/common/binary_search.cpp", 750 "src/core/common/error.cpp", 751 "src/core/common/frame_builder.cpp", 752 "src/core/common/log.cpp", 753 "src/core/common/random.cpp", 754 "src/core/common/string.cpp", 755 "src/core/common/tasklet.cpp", 756 "src/core/common/timer.cpp", 757 "src/core/common/uptime.cpp", 758 "src/core/crypto/aes_ccm.cpp", 759 "src/core/crypto/aes_ecb.cpp", 760 "src/core/crypto/crypto_platform.cpp", 761 "src/core/crypto/storage.cpp", 762 "src/core/diags/factory_diags.cpp", 763 "src/core/instance/instance.cpp", 764 "src/core/mac/link_raw.cpp", 765 "src/core/mac/mac_frame.cpp", 766 "src/core/mac/mac_types.cpp", 767 "src/core/mac/sub_mac.cpp", 768 "src/core/mac/sub_mac_callbacks.cpp", 769 "src/core/radio/radio.cpp", 770 "src/core/radio/radio_callbacks.cpp", 771 "src/core/radio/radio_platform.cpp", 772 "src/core/thread/link_quality.cpp", 773 "src/core/utils/parse_cmdline.cpp", 774 "src/core/utils/power_calibration.cpp", 775 ], 776} 777 778cc_library_static { 779 name: "openthread-hdlc", 780 vendor_available: true, 781 defaults: [ 782 "ot_rcp_cflags_defaults", 783 "ot_simulation_cflags_defaults", 784 ], 785 export_include_dirs: [ 786 "include", 787 "src", 788 ], 789 srcs: [ 790 "src/lib/hdlc/hdlc.cpp", 791 ], 792} 793 794cc_library_static { 795 name: "openthread-spi", 796 vendor_available: true, 797 local_include_dirs: [ 798 "include", 799 "src", 800 "src/core", 801 "src/lib/platform", 802 "src/posix/platform", 803 "src/posix/platform/include", 804 ], 805 export_include_dirs: [ 806 "include", 807 "src/core", 808 "src/posix/platform", 809 "src/posix/platform/include", 810 ], 811 812 cflags: [ 813 "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1", 814 ], 815 816 srcs: [ 817 "src/posix/platform/spi_interface.cpp", 818 ], 819} 820 821cc_library_static { 822 name: "openthread-url", 823 vendor_available: true, 824 local_include_dirs: [ 825 "include", 826 "src", 827 "src/core", 828 "src/lib/url", 829 ], 830 export_include_dirs: [ 831 "include", 832 "src", 833 ], 834 srcs: [ 835 "src/lib/url/url.cpp", 836 ], 837} 838 839cc_library_static { 840 name: "openthread-platform", 841 vendor_available: true, 842 local_include_dirs: [ 843 "include", 844 "src", 845 "src/core", 846 "src/lib/platform", 847 ], 848 export_include_dirs: [ 849 "include", 850 "src", 851 ], 852 srcs: [ 853 "src/lib/platform/exit_code.c", 854 ], 855} 856 857cc_library_static { 858 name: "openthread-spinel-rcp", 859 vendor_available: true, 860 861 defaults: [ 862 "ot_rcp_cflags_defaults", 863 "ot_simulation_cflags_defaults", 864 ], 865 866 export_include_dirs: [ 867 "include", 868 "src", 869 ], 870 871 srcs: [ 872 "src/lib/spinel/radio_spinel.cpp", 873 "src/lib/spinel/spinel.c", 874 "src/lib/spinel/spinel_buffer.cpp", 875 "src/lib/spinel/spinel_decoder.cpp", 876 "src/lib/spinel/spinel_driver.cpp", 877 "src/lib/spinel/spinel_encoder.cpp", 878 ], 879} 880 881cc_library_static { 882 name: "openthread-rcp", 883 vendor_available: true, 884 885 defaults: [ 886 "ot_rcp_cflags_defaults", 887 "ot_simulation_cflags_defaults", 888 ], 889 890 srcs: [ 891 "src/ncp/changed_props_set.cpp", 892 "src/ncp/ncp_base.cpp", 893 "src/ncp/ncp_base_dispatcher.cpp", 894 "src/ncp/ncp_base_radio.cpp", 895 "src/ncp/ncp_spi.cpp", 896 "src/ncp/ncp_hdlc.cpp", 897 ], 898} 899 900cc_binary { 901 name: "ot-rcp", 902 vendor: true, 903 defaults: [ 904 "ot_rcp_cflags_defaults", 905 "ot_simulation_cflags_defaults", 906 ], 907 908 srcs: [ 909 "examples/apps/ncp/main.c", 910 "examples/apps/ncp/ncp.c", 911 ], 912 913 shared_libs: [ 914 "liblog", // Required by src/android/logging.c 915 ], 916 917 static_libs: [ 918 "libbase", 919 "libcutils", 920 "libutils", 921 "openthread-hdlc", 922 "openthread-radio", 923 "openthread-spinel-rcp", 924 "openthread-rcp", 925 "openthread-simulation", 926 "openthread-radio", 927 ], 928 929 stl: "c++_static", 930} 931 932cc_library_static { 933 name: "openthread-posix", 934 vendor_available: true, 935 local_include_dirs: [ 936 "include", 937 "src", 938 "src/core", 939 "src/lib/platform", 940 "src/posix/platform", 941 "src/posix/platform/include", 942 ], 943 export_include_dirs: [ 944 "include", 945 "src/core", 946 "src/posix/platform", 947 "src/posix/platform/include", 948 ], 949 950 cflags: [ 951 "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1", 952 "-DOPENTHREAD_OSIX_CONFIG_RCP_PTY_ENABLE=1", 953 ], 954 955 cppflags: [ 956 "-Wno-non-virtual-dtor", 957 ], 958 959 srcs: [ 960 "src/posix/platform/alarm.cpp", 961 "src/posix/platform/mainloop.cpp", 962 "src/posix/platform/hdlc_interface.cpp", 963 "src/posix/platform/radio_url.cpp", 964 "src/posix/platform/rcp_caps_diag.cpp", 965 ], 966} 967 968cc_library_static { 969 name: "openthread-common", 970 vendor_available: true, 971 local_include_dirs: [ 972 "include", 973 "src", 974 "src/core", 975 ], 976 977 export_include_dirs: [ 978 "include", 979 "src/core", 980 ], 981 982 srcs: [ 983 "src/core/common/error.cpp", 984 "src/core/api/error_api.cpp", 985 ], 986} 987 988cc_binary { 989 name: "ot-cli-ftd", 990 defaults: [ 991 "ot_simulation_cflags_defaults", 992 ], 993 994 cflags: [ 995 "-DOPENTHREAD_FTD=1", 996 "-DOPENTHREAD_CONFIG_POSIX_SETTINGS_PATH=\"/data/vendor/threadnetwork/simulation\"", 997 ], 998 999 srcs: [ 1000 ":openthread_core_srcs", 1001 ":openthread_simulation_srcs", 1002 ":openthread_cli_srcs", 1003 ":openthread_mbedtls_srcs", 1004 "examples/apps/cli/cli_uart.cpp", 1005 "examples/apps/cli/main.c", 1006 ], 1007 1008 static_libs: [ 1009 "openthread-platform", 1010 ], 1011 1012 shared_libs: [ 1013 "libcutils", // Required by src/core/instance_api.cpp 1014 "liblog", // Required by src/android/logging.c 1015 ], 1016} 1017