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=\"openthread-devel@googlegroups.com\"", 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/crc.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/mac_header_ie.cpp", 218 "src/core/mac/sub_mac.cpp", 219 "src/core/mac/sub_mac_callbacks.cpp", 220 "src/core/mac/wakeup_tx_scheduler.cpp", 221 "src/core/meshcop/announce_begin_client.cpp", 222 "src/core/meshcop/border_agent.cpp", 223 "src/core/meshcop/commissioner.cpp", 224 "src/core/meshcop/dataset.cpp", 225 "src/core/meshcop/dataset_manager.cpp", 226 "src/core/meshcop/dataset_manager_ftd.cpp", 227 "src/core/meshcop/dataset_updater.cpp", 228 "src/core/meshcop/energy_scan_client.cpp", 229 "src/core/meshcop/extended_panid.cpp", 230 "src/core/meshcop/joiner.cpp", 231 "src/core/meshcop/joiner_router.cpp", 232 "src/core/meshcop/meshcop.cpp", 233 "src/core/meshcop/meshcop_leader.cpp", 234 "src/core/meshcop/meshcop_tlvs.cpp", 235 "src/core/meshcop/network_name.cpp", 236 "src/core/meshcop/panid_query_client.cpp", 237 "src/core/meshcop/secure_transport.cpp", 238 "src/core/meshcop/timestamp.cpp", 239 "src/core/net/checksum.cpp", 240 "src/core/net/dhcp6_client.cpp", 241 "src/core/net/dhcp6_server.cpp", 242 "src/core/net/dns_client.cpp", 243 "src/core/net/dns_dso.cpp", 244 "src/core/net/dns_platform.cpp", 245 "src/core/net/dns_types.cpp", 246 "src/core/net/dnssd_server.cpp", 247 "src/core/net/icmp6.cpp", 248 "src/core/net/ip4_types.cpp", 249 "src/core/net/ip6.cpp", 250 "src/core/net/ip6_address.cpp", 251 "src/core/net/ip6_filter.cpp", 252 "src/core/net/ip6_headers.cpp", 253 "src/core/net/ip6_mpl.cpp", 254 "src/core/net/nat64_translator.cpp", 255 "src/core/net/nd6.cpp", 256 "src/core/net/nd_agent.cpp", 257 "src/core/net/netif.cpp", 258 "src/core/net/sntp_client.cpp", 259 "src/core/net/socket.cpp", 260 "src/core/net/srp_client.cpp", 261 "src/core/net/srp_server.cpp", 262 "src/core/net/tcp6.cpp", 263 "src/core/net/tcp6_ext.cpp", 264 "src/core/net/udp6.cpp", 265 "src/core/radio/radio.cpp", 266 "src/core/radio/radio_callbacks.cpp", 267 "src/core/radio/radio_platform.cpp", 268 "src/core/radio/trel_interface.cpp", 269 "src/core/radio/trel_link.cpp", 270 "src/core/radio/trel_packet.cpp", 271 "src/core/thread/address_resolver.cpp", 272 "src/core/thread/announce_begin_server.cpp", 273 "src/core/thread/announce_sender.cpp", 274 "src/core/thread/anycast_locator.cpp", 275 "src/core/thread/child.cpp", 276 "src/core/thread/child_supervision.cpp", 277 "src/core/thread/child_table.cpp", 278 "src/core/thread/csl_tx_scheduler.cpp", 279 "src/core/thread/discover_scanner.cpp", 280 "src/core/thread/dua_manager.cpp", 281 "src/core/thread/energy_scan_server.cpp", 282 "src/core/thread/indirect_sender.cpp", 283 "src/core/thread/key_manager.cpp", 284 "src/core/thread/link_metrics.cpp", 285 "src/core/thread/link_metrics_types.cpp", 286 "src/core/thread/link_quality.cpp", 287 "src/core/thread/lowpan.cpp", 288 "src/core/thread/mesh_forwarder.cpp", 289 "src/core/thread/mesh_forwarder_ftd.cpp", 290 "src/core/thread/mesh_forwarder_mtd.cpp", 291 "src/core/thread/mle.cpp", 292 "src/core/thread/mle_router.cpp", 293 "src/core/thread/mle_tlvs.cpp", 294 "src/core/thread/mle_types.cpp", 295 "src/core/thread/mlr_manager.cpp", 296 "src/core/thread/neighbor.cpp", 297 "src/core/thread/neighbor_table.cpp", 298 "src/core/thread/network_data.cpp", 299 "src/core/thread/network_data_leader.cpp", 300 "src/core/thread/network_data_leader_ftd.cpp", 301 "src/core/thread/network_data_local.cpp", 302 "src/core/thread/network_data_notifier.cpp", 303 "src/core/thread/network_data_publisher.cpp", 304 "src/core/thread/network_data_service.cpp", 305 "src/core/thread/network_data_tlvs.cpp", 306 "src/core/thread/network_data_types.cpp", 307 "src/core/thread/network_diagnostic.cpp", 308 "src/core/thread/network_diagnostic_tlvs.cpp", 309 "src/core/thread/panid_query_server.cpp", 310 "src/core/thread/radio_selector.cpp", 311 "src/core/thread/router.cpp", 312 "src/core/thread/router_table.cpp", 313 "src/core/thread/src_match_controller.cpp", 314 "src/core/thread/thread_netif.cpp", 315 "src/core/thread/time_sync_service.cpp", 316 "src/core/thread/tmf.cpp", 317 "src/core/thread/uri_paths.cpp", 318 "src/core/utils/channel_manager.cpp", 319 "src/core/utils/channel_monitor.cpp", 320 "src/core/utils/flash.cpp", 321 "src/core/utils/heap.cpp", 322 "src/core/utils/history_tracker.cpp", 323 "src/core/utils/jam_detector.cpp", 324 "src/core/utils/mesh_diag.cpp", 325 "src/core/utils/otns.cpp", 326 "src/core/utils/parse_cmdline.cpp", 327 "src/core/utils/ping_sender.cpp", 328 "src/core/utils/power_calibration.cpp", 329 "src/core/utils/slaac_address.cpp", 330 "src/core/utils/srp_client_buffers.cpp", 331 "src/core/utils/verhoeff_checksum.cpp", 332 ], 333} 334 335filegroup { 336 name: "openthread_cli_srcs", 337 srcs: [ 338 "src/cli/cli.cpp", 339 "src/cli/cli_bbr.cpp", 340 "src/cli/cli_br.cpp", 341 "src/cli/cli_coap.cpp", 342 "src/cli/cli_coap_secure.cpp", 343 "src/cli/cli_commissioner.cpp", 344 "src/cli/cli_dataset.cpp", 345 "src/cli/cli_dns.cpp", 346 "src/cli/cli_history.cpp", 347 "src/cli/cli_joiner.cpp", 348 "src/cli/cli_link_metrics.cpp", 349 "src/cli/cli_mac_filter.cpp", 350 "src/cli/cli_mesh_diag.cpp", 351 "src/cli/cli_network_data.cpp", 352 "src/cli/cli_ping.cpp", 353 "src/cli/cli_srp_client.cpp", 354 "src/cli/cli_srp_server.cpp", 355 "src/cli/cli_tcp.cpp", 356 "src/cli/cli_udp.cpp", 357 "src/cli/cli_utils.cpp", 358 ], 359} 360 361filegroup { 362 name: "openthread_ncp_srcs", 363 srcs: [ 364 "src/ncp/changed_props_set.cpp", 365 "src/ncp/ncp_base.cpp", 366 "src/ncp/ncp_base_dispatcher.cpp", 367 "src/ncp/ncp_base_radio.cpp", 368 "src/ncp/ncp_spi.cpp", 369 "src/ncp/ncp_hdlc.cpp", 370 ], 371} 372 373filegroup { 374 name: "openthread_simulation_srcs", 375 srcs: [ 376 "examples/platforms/simulation/alarm.c", 377 "examples/platforms/simulation/crypto.c", 378 "examples/platforms/simulation/diag.c", 379 "examples/platforms/simulation/entropy.c", 380 "examples/platforms/simulation/flash.c", 381 "examples/platforms/simulation/infra_if.c", 382 "examples/platforms/simulation/misc.c", 383 "examples/platforms/simulation/radio.c", 384 "examples/platforms/simulation/simul_utils.c", 385 "examples/platforms/simulation/spi-stubs.c", 386 "examples/platforms/simulation/system.c", 387 "examples/platforms/simulation/trel.c", 388 "examples/platforms/simulation/uart.c", 389 "examples/platforms/utils/link_metrics.cpp", 390 "examples/platforms/utils/mac_frame.cpp", 391 "examples/platforms/utils/settings_ram.c", 392 "examples/platforms/utils/soft_source_match_table.c", 393 "src/android/logging.c", 394 ], 395} 396 397filegroup { 398 name: "openthread_mbedtls_srcs", 399 srcs: [ 400 "third_party/mbedtls/repo/library/aes.c", 401 "third_party/mbedtls/repo/library/asn1parse.c", 402 "third_party/mbedtls/repo/library/asn1write.c", 403 "third_party/mbedtls/repo/library/base64.c", 404 "third_party/mbedtls/repo/library/bignum_core.c", 405 "third_party/mbedtls/repo/library/bignum.c", 406 "third_party/mbedtls/repo/library/ccm.c", 407 "third_party/mbedtls/repo/library/cipher.c", 408 "third_party/mbedtls/repo/library/cipher_wrap.c", 409 "third_party/mbedtls/repo/library/cmac.c", 410 "third_party/mbedtls/repo/library/constant_time.c", 411 "third_party/mbedtls/repo/library/ctr_drbg.c", 412 "third_party/mbedtls/repo/library/debug.c", 413 "third_party/mbedtls/repo/library/ecdh.c", 414 "third_party/mbedtls/repo/library/ecdsa.c", 415 "third_party/mbedtls/repo/library/ecjpake.c", 416 "third_party/mbedtls/repo/library/ecp.c", 417 "third_party/mbedtls/repo/library/ecp_curves.c", 418 "third_party/mbedtls/repo/library/entropy.c", 419 "third_party/mbedtls/repo/library/entropy_poll.c", 420 "third_party/mbedtls/repo/library/hmac_drbg.c", 421 "third_party/mbedtls/repo/library/md.c", 422 "third_party/mbedtls/repo/library/memory_buffer_alloc.c", 423 "third_party/mbedtls/repo/library/oid.c", 424 "third_party/mbedtls/repo/library/pem.c", 425 "third_party/mbedtls/repo/library/pk.c", 426 "third_party/mbedtls/repo/library/pk_ecc.c", 427 "third_party/mbedtls/repo/library/pk_wrap.c", 428 "third_party/mbedtls/repo/library/pkparse.c", 429 "third_party/mbedtls/repo/library/pkwrite.c", 430 "third_party/mbedtls/repo/library/platform.c", 431 "third_party/mbedtls/repo/library/platform_util.c", 432 "third_party/mbedtls/repo/library/sha256.c", 433 "third_party/mbedtls/repo/library/ssl_ciphersuites.c", 434 "third_party/mbedtls/repo/library/ssl_client.c", 435 "third_party/mbedtls/repo/library/ssl_cookie.c", 436 "third_party/mbedtls/repo/library/ssl_msg.c", 437 "third_party/mbedtls/repo/library/ssl_ticket.c", 438 "third_party/mbedtls/repo/library/ssl_tls.c", 439 "third_party/mbedtls/repo/library/ssl_tls12_client.c", 440 "third_party/mbedtls/repo/library/ssl_tls12_server.c", 441 "third_party/mbedtls/repo/library/ssl_tls13_client.c", 442 "third_party/mbedtls/repo/library/threading.c", 443 "third_party/mbedtls/repo/library/x509.c", 444 "third_party/mbedtls/repo/library/x509_crt.c", 445 ], 446} 447 448filegroup { 449 name: "openthread_platform_posix_srcs", 450 srcs: [ 451 "src/android/logging.c", 452 "src/posix/platform/alarm.cpp", 453 "src/posix/platform/backtrace.cpp", 454 "src/posix/platform/configuration.cpp", 455 "src/posix/platform/config_file.cpp", 456 "src/posix/platform/daemon.cpp", 457 "src/posix/platform/entropy.cpp", 458 "src/posix/platform/firewall.cpp", 459 "src/posix/platform/hdlc_interface.cpp", 460 "src/posix/platform/infra_if.cpp", 461 "src/posix/platform/mainloop.cpp", 462 "src/posix/platform/memory.cpp", 463 "src/posix/platform/misc.cpp", 464 "src/posix/platform/multicast_routing.cpp", 465 "src/posix/platform/netif.cpp", 466 "src/posix/platform/power.cpp", 467 "src/posix/platform/radio.cpp", 468 "src/posix/platform/radio_url.cpp", 469 "src/posix/platform/rcp_caps_diag.cpp", 470 "src/posix/platform/resolver.cpp", 471 "src/posix/platform/settings.cpp", 472 "src/posix/platform/settings_file.cpp", 473 "src/posix/platform/spi_interface.cpp", 474 "src/posix/platform/spinel_manager.cpp", 475 "src/posix/platform/system.cpp", 476 "src/posix/platform/tmp_storage.cpp", 477 "src/posix/platform/trel.cpp", 478 "src/posix/platform/udp.cpp", 479 "src/posix/platform/utils.cpp", 480 ], 481} 482 483cc_library_static { 484 name: "ot-core", 485 apex_available: ["com.android.tethering"], 486 min_sdk_version: "30", 487 defaults: [ 488 "ot-daemon-debuggable-cc-defaults", 489 "ot_posix_cflags_defaults", 490 ], 491 generated_headers: ["ot_version_header"], 492 493 local_include_dirs: [ 494 "include", 495 "src", 496 "src/android/thread_network_hal", 497 "src/cli", 498 "src/core", 499 "src/include", 500 "src/ncp", 501 "src/posix/platform", 502 "src/posix/platform/include", 503 "third_party", 504 "third_party/mbedtls", 505 "third_party/mbedtls/repo/include", 506 ], 507 508 export_include_dirs: [ 509 "include", 510 "src", 511 ], 512 513 cppflags: [ 514 "-Wno-non-virtual-dtor", 515 // Background: the HAL client implementation requires features which 516 // are available on only 31+, but the Tethering module requires the 517 // ot-daemon binary to support 30+. 518 // It's safe to suppress this warning because ot-daemon will never 519 // run below Android U (34). 520 "-Wno-unguarded-availability", 521 "-Wno-c99-extensions", 522 ], 523 524 vintf_fragments: ["src/android/thread_network_hal/device_manifest.xml"], 525 shared_libs: [ 526 "libbase", 527 "libcutils", 528 "libutils", 529 "libbinder_ndk", 530 "android.hardware.threadnetwork-V1-ndk", 531 ], 532 533 srcs: [ 534 ":openthread_core_srcs", 535 ":openthread_mbedtls_srcs", 536 ":openthread_platform_posix_srcs", 537 "src/android/thread_network_hal/hal_interface.cpp", 538 "src/android/thread_network_hal/vendor_interface.cpp", 539 "src/lib/hdlc/hdlc.cpp", 540 "src/lib/platform/exit_code.c", 541 "src/lib/spinel/logger.cpp", 542 "src/lib/spinel/radio_spinel.cpp", 543 "src/lib/spinel/spinel_buffer.cpp", 544 "src/lib/spinel/spinel_decoder.cpp", 545 "src/lib/spinel/spinel_driver.cpp", 546 "src/lib/spinel/spinel_encoder.cpp", 547 "src/lib/spinel/spinel_helper.cpp", 548 "src/lib/spinel/spinel_prop_codec.cpp", 549 "src/lib/spinel/spinel.c", 550 "src/lib/url/url.cpp", 551 ], 552} 553 554cc_library_static { 555 name: "libopenthread-cli", 556 apex_available: ["com.android.tethering"], 557 min_sdk_version: "30", 558 defaults: [ 559 "ot-daemon-debuggable-cc-defaults", 560 "ot_posix_cflags_defaults", 561 ], 562 generated_headers: ["ot_version_header"], 563 564 local_include_dirs: [ 565 "include", 566 "src", 567 "src/cli", 568 "src/core", 569 "src/include", 570 "src/posix/platform", 571 "src/posix/platform/include", 572 "third_party/mbedtls", 573 "third_party/mbedtls/repo/include", 574 ], 575 576 cflags: [ 577 "-DOPENTHREAD_CONFIG_CLI_UART_TX_BUFFER_SIZE=3500", 578 "-DOPENTHREAD_CONFIG_CLI_UART_RX_BUFFER_SIZE=3500", 579 "-DOPENTHREAD_CONFIG_UART_CLI_RAW=1", 580 ], 581 582 cppflags: [ 583 "-std=c++11", 584 "-Wno-c99-extensions", 585 ], 586 587 srcs: [ 588 "src/cli/cli.cpp", 589 "src/cli/cli_bbr.cpp", 590 "src/cli/cli_br.cpp", 591 "src/cli/cli_coap.cpp", 592 "src/cli/cli_coap_secure.cpp", 593 "src/cli/cli_commissioner.cpp", 594 "src/cli/cli_dataset.cpp", 595 "src/cli/cli_dns.cpp", 596 "src/cli/cli_history.cpp", 597 "src/cli/cli_joiner.cpp", 598 "src/cli/cli_link_metrics.cpp", 599 "src/cli/cli_mac_filter.cpp", 600 "src/cli/cli_mesh_diag.cpp", 601 "src/cli/cli_network_data.cpp", 602 "src/cli/cli_ping.cpp", 603 "src/cli/cli_srp_client.cpp", 604 "src/cli/cli_srp_server.cpp", 605 "src/cli/cli_tcp.cpp", 606 "src/cli/cli_udp.cpp", 607 "src/cli/cli_utils.cpp", 608 ], 609} 610 611cc_binary { 612 name: "ot-ctl", 613 defaults: ["ot_posix_cflags_defaults"], 614 generated_headers: ["ot_version_header"], 615 616 local_include_dirs: [ 617 "include", 618 "src/", 619 "src/core", 620 "src/include", 621 "src/posix/platform", 622 "src/posix/platform/include", 623 ], 624 625 srcs: ["src/posix/client.cpp"], 626} 627 628cc_defaults { 629 name: "ot_rcp_cflags_defaults", 630 cflags: [ 631 "-DOPENTHREAD_RADIO=1", 632 ], 633} 634 635cc_defaults { 636 name: "ot_simulation_cflags_defaults", 637 638 local_include_dirs: [ 639 "examples/platforms/simulation", 640 "examples/platforms", 641 "include", 642 "src", 643 "src/cli", 644 "src/core", 645 "src/include", 646 "src/ncp", 647 "src/lib/hdlc", 648 "third_party", 649 "third_party/mbedtls", 650 "third_party/mbedtls/repo/include", 651 ], 652 653 export_include_dirs: [ 654 "include", 655 "src", 656 ], 657 658 cflags: [ 659 "-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"", 660 "-DOPENTHREAD_CONFIG_ANDROID_VERSION_HEADER_ENABLE=1", 661 "-DOPENTHREAD_CONFIG_DIAG_ENABLE=1", 662 "-DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1", 663 "-DOPENTHREAD_CONFIG_ECDSA_ENABLE=1", 664 "-DOPENTHREAD_CONFIG_FILE=\"openthread-config-android-version.h\"", 665 "-DOPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE=1", 666 "-DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1", 667 "-DOPENTHREAD_CONFIG_MLR_ENABLE=1", 668 "-DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1", 669 "-DOPENTHREAD_CONFIG_PING_SENDER_ENABLE=1", 670 "-DOPENTHREAD_CONFIG_SRP_CLIENT_ENABLE=1", 671 "-DOPENTHREAD_CONFIG_SRP_SERVER_ENABLE=1", 672 "-DOPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE=1", 673 "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=0", 674 "-DOPENTHREAD_EXAMPLES_SIMULATION=1", 675 "-DOPENTHREAD_CONFIG_TCP_ENABLE=0", 676 "-DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"examples/platforms/simulation/openthread-core-simulation-config.h\"", 677 "-DOPENTHREAD_SETTINGS_RAM=1", 678 "-DOPENTHREAD_SIMULATION_MAX_NETWORK_SIZE=128", 679 "-DPACKAGE=\"openthread\"", 680 "-DPACKAGE_BUGREPORT=\"openthread-devel@googlegroups.com\"", 681 "-DPACKAGE_NAME=\"OPENTHREAD\"", 682 "-DPACKAGE_TARNAME=\"openthread\"", 683 "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"", 684 "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"", 685 "-Wno-implicit-fallthrough", 686 ], 687} 688 689cc_library_static { 690 name: "openthread-simulation", 691 vendor_available: true, 692 693 defaults: [ 694 "ot_rcp_cflags_defaults", 695 "ot_simulation_cflags_defaults", 696 ], 697 698 static_libs: [ 699 "libutils", 700 ], 701 702 srcs: [ 703 ":openthread_simulation_srcs", 704 "src/lib/platform/exit_code.c", 705 "third_party/mbedtls/repo/library/aes.c", 706 "third_party/mbedtls/repo/library/asn1parse.c", 707 "third_party/mbedtls/repo/library/asn1write.c", 708 "third_party/mbedtls/repo/library/base64.c", 709 "third_party/mbedtls/repo/library/bignum_core.c", 710 "third_party/mbedtls/repo/library/bignum.c", 711 "third_party/mbedtls/repo/library/ccm.c", 712 "third_party/mbedtls/repo/library/cipher.c", 713 "third_party/mbedtls/repo/library/cipher_wrap.c", 714 "third_party/mbedtls/repo/library/cmac.c", 715 "third_party/mbedtls/repo/library/ctr_drbg.c", 716 "third_party/mbedtls/repo/library/debug.c", 717 "third_party/mbedtls/repo/library/entropy.c", 718 "third_party/mbedtls/repo/library/entropy_poll.c", 719 "third_party/mbedtls/repo/library/hmac_drbg.c", 720 "third_party/mbedtls/repo/library/md.c", 721 "third_party/mbedtls/repo/library/memory_buffer_alloc.c", 722 "third_party/mbedtls/repo/library/oid.c", 723 "third_party/mbedtls/repo/library/platform.c", 724 "third_party/mbedtls/repo/library/platform_util.c", 725 "third_party/mbedtls/repo/library/sha256.c", 726 ], 727 728 cflags: [ 729 "-D_BSD_SOURCE=1", 730 "-D_DEFAULT_SOURCE=1", 731 ], 732} 733 734cc_library_static { 735 name: "openthread-radio", 736 vendor_available: true, 737 738 defaults: [ 739 "ot_rcp_cflags_defaults", 740 "ot_simulation_cflags_defaults", 741 ], 742 743 generated_headers: ["ot_version_header"], 744 shared_libs: [ 745 "libcutils", 746 ], 747 748 srcs: [ 749 "src/core/api/diags_api.cpp", 750 "src/core/api/error_api.cpp", 751 "src/core/api/instance_api.cpp", 752 "src/core/api/link_raw_api.cpp", 753 "src/core/api/logging_api.cpp", 754 "src/core/api/random_noncrypto_api.cpp", 755 "src/core/api/tasklet_api.cpp", 756 "src/core/common/binary_search.cpp", 757 "src/core/common/error.cpp", 758 "src/core/common/frame_builder.cpp", 759 "src/core/common/log.cpp", 760 "src/core/common/random.cpp", 761 "src/core/common/string.cpp", 762 "src/core/common/tasklet.cpp", 763 "src/core/common/timer.cpp", 764 "src/core/common/uptime.cpp", 765 "src/core/crypto/aes_ccm.cpp", 766 "src/core/crypto/aes_ecb.cpp", 767 "src/core/crypto/crypto_platform.cpp", 768 "src/core/crypto/storage.cpp", 769 "src/core/diags/factory_diags.cpp", 770 "src/core/instance/instance.cpp", 771 "src/core/mac/link_raw.cpp", 772 "src/core/mac/mac_frame.cpp", 773 "src/core/mac/mac_types.cpp", 774 "src/core/mac/mac_header_ie.cpp", 775 "src/core/mac/sub_mac.cpp", 776 "src/core/mac/sub_mac_callbacks.cpp", 777 "src/core/radio/radio.cpp", 778 "src/core/radio/radio_callbacks.cpp", 779 "src/core/radio/radio_platform.cpp", 780 "src/core/thread/link_quality.cpp", 781 "src/core/utils/parse_cmdline.cpp", 782 "src/core/utils/power_calibration.cpp", 783 ], 784} 785 786cc_library_static { 787 name: "openthread-hdlc", 788 vendor_available: true, 789 defaults: [ 790 "ot_rcp_cflags_defaults", 791 "ot_simulation_cflags_defaults", 792 ], 793 export_include_dirs: [ 794 "include", 795 "src", 796 ], 797 srcs: [ 798 "src/lib/hdlc/hdlc.cpp", 799 ], 800} 801 802cc_library_static { 803 name: "openthread-spi", 804 vendor_available: true, 805 local_include_dirs: [ 806 "include", 807 "src", 808 "src/core", 809 "src/include", 810 "src/lib/platform", 811 "src/posix/platform", 812 "src/posix/platform/include", 813 ], 814 export_include_dirs: [ 815 "include", 816 "src/core", 817 "src/include", 818 "src/posix/platform", 819 "src/posix/platform/include", 820 ], 821 822 cflags: [ 823 "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1", 824 ], 825 826 srcs: [ 827 "src/posix/platform/spi_interface.cpp", 828 ], 829} 830 831cc_library_static { 832 name: "openthread-url", 833 vendor_available: true, 834 local_include_dirs: [ 835 "include", 836 "src", 837 "src/core", 838 "src/include", 839 "src/lib/url", 840 ], 841 export_include_dirs: [ 842 "include", 843 "src", 844 ], 845 srcs: [ 846 "src/lib/url/url.cpp", 847 ], 848} 849 850cc_library_static { 851 name: "openthread-platform", 852 vendor_available: true, 853 local_include_dirs: [ 854 "include", 855 "src", 856 "src/core", 857 "src/include", 858 "src/lib/platform", 859 ], 860 export_include_dirs: [ 861 "include", 862 "src", 863 ], 864 srcs: [ 865 "src/lib/platform/exit_code.c", 866 ], 867} 868 869cc_library_static { 870 name: "openthread-spinel-rcp", 871 vendor_available: true, 872 873 defaults: [ 874 "ot_rcp_cflags_defaults", 875 "ot_simulation_cflags_defaults", 876 ], 877 878 export_include_dirs: [ 879 "include", 880 "src", 881 ], 882 883 srcs: [ 884 "src/lib/spinel/radio_spinel.cpp", 885 "src/lib/spinel/spinel.c", 886 "src/lib/spinel/spinel_buffer.cpp", 887 "src/lib/spinel/spinel_decoder.cpp", 888 "src/lib/spinel/spinel_driver.cpp", 889 "src/lib/spinel/spinel_encoder.cpp", 890 "src/lib/spinel/spinel_prop_codec.cpp", 891 ], 892} 893 894cc_library_static { 895 name: "openthread-rcp", 896 vendor_available: true, 897 898 defaults: [ 899 "ot_rcp_cflags_defaults", 900 "ot_simulation_cflags_defaults", 901 ], 902 903 srcs: [ 904 "src/ncp/changed_props_set.cpp", 905 "src/ncp/ncp_base.cpp", 906 "src/ncp/ncp_base_dispatcher.cpp", 907 "src/ncp/ncp_base_radio.cpp", 908 "src/ncp/ncp_spi.cpp", 909 "src/ncp/ncp_hdlc.cpp", 910 ], 911} 912 913cc_binary { 914 name: "ot-rcp", 915 vendor: true, 916 defaults: [ 917 "ot_rcp_cflags_defaults", 918 "ot_simulation_cflags_defaults", 919 ], 920 921 srcs: [ 922 "examples/apps/ncp/main.c", 923 "examples/apps/ncp/ncp.c", 924 ], 925 926 shared_libs: [ 927 "liblog", // Required by src/android/logging.c 928 ], 929 930 static_libs: [ 931 "libbase", 932 "libcutils", 933 "libutils", 934 "openthread-hdlc", 935 "openthread-radio", 936 "openthread-spinel-rcp", 937 "openthread-rcp", 938 "openthread-simulation", 939 "openthread-radio", 940 ], 941 942 stl: "c++_static", 943} 944 945cc_library_static { 946 name: "openthread-posix", 947 vendor_available: true, 948 local_include_dirs: [ 949 "include", 950 "src", 951 "src/core", 952 "src/include", 953 "src/lib/platform", 954 "src/posix/platform", 955 "src/posix/platform/include", 956 ], 957 export_include_dirs: [ 958 "include", 959 "src/core", 960 "src/posix/platform", 961 "src/posix/platform/include", 962 ], 963 964 cflags: [ 965 "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1", 966 "-DOPENTHREAD_OSIX_CONFIG_RCP_PTY_ENABLE=1", 967 ], 968 969 cppflags: [ 970 "-Wno-non-virtual-dtor", 971 ], 972 973 srcs: [ 974 "src/posix/platform/alarm.cpp", 975 "src/posix/platform/mainloop.cpp", 976 "src/posix/platform/hdlc_interface.cpp", 977 "src/posix/platform/radio_url.cpp", 978 "src/posix/platform/rcp_caps_diag.cpp", 979 ], 980} 981 982cc_library_static { 983 name: "openthread-common", 984 vendor_available: true, 985 local_include_dirs: [ 986 "include", 987 "src", 988 "src/core", 989 "src/include", 990 ], 991 992 export_include_dirs: [ 993 "include", 994 "src/core", 995 ], 996 997 srcs: [ 998 "src/core/common/error.cpp", 999 "src/core/api/error_api.cpp", 1000 ], 1001} 1002 1003cc_binary { 1004 name: "ot-cli-ftd", 1005 defaults: [ 1006 "ot_simulation_cflags_defaults", 1007 ], 1008 1009 cflags: [ 1010 "-DOPENTHREAD_FTD=1", 1011 "-DOPENTHREAD_CONFIG_POSIX_SETTINGS_PATH=\"/data/vendor/threadnetwork/simulation\"", 1012 ], 1013 1014 srcs: [ 1015 ":openthread_core_srcs", 1016 ":openthread_simulation_srcs", 1017 ":openthread_cli_srcs", 1018 ":openthread_mbedtls_srcs", 1019 "examples/apps/cli/cli_uart.cpp", 1020 "examples/apps/cli/main.c", 1021 ], 1022 1023 static_libs: [ 1024 "openthread-platform", 1025 ], 1026 1027 shared_libs: [ 1028 "libcutils", // Required by src/core/instance_api.cpp 1029 "liblog", // Required by src/android/logging.c 1030 ], 1031} 1032