blob: 82a0de00fc5b81433b2d184b20d595e184b2fa8f [file] [log] [blame]
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "system_bt_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
// SPDX-license-identifier-BSD
default_applicable_licenses: ["system_bt_license"],
}
crypto_toolbox_srcs = [
"crypto_toolbox/aes.cc",
"crypto_toolbox/aes_cmac.cc",
"crypto_toolbox/crypto_toolbox.cc",
]
cc_test_library {
name: "crypto_toolbox_for_tests",
defaults: ["fluoride_defaults"],
host_supported: true,
include_dirs: [
"system/bt",
],
srcs: crypto_toolbox_srcs
}
// Bluetooth stack static library for target
// ========================================================
cc_library_static {
name: "libbt-stack",
defaults: ["fluoride_defaults"],
local_include_dirs: [
"include",
"avct",
"btm",
"avrc",
"l2cap",
"avdt",
"eatt",
"gatt",
"gap",
"pan",
"bnep",
"hid",
"metrics",
"sdp",
"smp",
"srvc",
],
header_libs: [
"libbluetooth_headers",
],
include_dirs: [
"external/aac/libAACenc/include",
"external/aac/libAACdec/include",
"external/aac/libSYS/include",
"external/libldac/inc",
"external/libldac/abr/inc",
"system/bt",
"system/bt/btcore/include",
"system/bt/vnd/include",
"system/bt/vnd/ble",
"system/bt/btif/include",
"system/bt/hci/include",
"system/bt/internal_include",
"system/bt/udrv/include",
"system/bt/bta/include",
"system/bt/bta/sys",
"system/bt/utils/include",
"system/bt/gd/rust/shim",
],
srcs: crypto_toolbox_srcs + [
"a2dp/a2dp_aac.cc",
"a2dp/a2dp_aac_decoder.cc",
"a2dp/a2dp_aac_encoder.cc",
"a2dp/a2dp_api.cc",
"a2dp/a2dp_codec_config.cc",
"a2dp/a2dp_sbc.cc",
"a2dp/a2dp_sbc_decoder.cc",
"a2dp/a2dp_sbc_encoder.cc",
"a2dp/a2dp_sbc_up_sample.cc",
"a2dp/a2dp_vendor.cc",
"a2dp/a2dp_vendor_aptx.cc",
"a2dp/a2dp_vendor_aptx_hd.cc",
"a2dp/a2dp_vendor_aptx_encoder.cc",
"a2dp/a2dp_vendor_aptx_hd_encoder.cc",
"a2dp/a2dp_vendor_ldac.cc",
"a2dp/a2dp_vendor_ldac_abr.cc",
"a2dp/a2dp_vendor_ldac_decoder.cc",
"a2dp/a2dp_vendor_ldac_encoder.cc",
"avct/avct_api.cc",
"avct/avct_bcb_act.cc",
"avct/avct_ccb.cc",
"avct/avct_l2c.cc",
"avct/avct_l2c_br.cc",
"avct/avct_lcb.cc",
"avct/avct_lcb_act.cc",
"avdt/avdt_ad.cc",
"avdt/avdt_api.cc",
"avdt/avdt_ccb.cc",
"avdt/avdt_ccb_act.cc",
"avdt/avdt_l2c.cc",
"avdt/avdt_msg.cc",
"avdt/avdt_scb.cc",
"avdt/avdt_scb_act.cc",
"avrc/avrc_api.cc",
"avrc/avrc_bld_ct.cc",
"avrc/avrc_bld_tg.cc",
"avrc/avrc_opt.cc",
"avrc/avrc_pars_ct.cc",
"avrc/avrc_pars_tg.cc",
"avrc/avrc_sdp.cc",
"avrc/avrc_utils.cc",
"bnep/bnep_api.cc",
"bnep/bnep_main.cc",
"bnep/bnep_utils.cc",
"btm/ble_advertiser_hci_interface.cc",
"acl/acl.cc",
"acl/btm_acl.cc",
"acl/ble_acl.cc",
"btm/ble_scanner_hci_interface.cc",
"btm/btm_ble.cc",
"btm/btm_ble_addr.cc",
"btm/btm_ble_adv_filter.cc",
"btm/btm_ble_batchscan.cc",
"btm/btm_ble_bgconn.cc",
"acl/btm_ble_connection_establishment.cc",
"btm/btm_ble_cont_energy.cc",
"btm/btm_ble_gap.cc",
"btm/btm_ble_multi_adv.cc",
"btm/btm_ble_privacy.cc",
"btm/btm_client_interface.cc",
"btm/btm_dev.cc",
"btm/btm_devctl.cc",
"btm/btm_inq.cc",
"btm/btm_main.cc",
"acl/btm_pm.cc",
"btm/btm_sco.cc",
"btm/btm_iso.cc",
"btm/btm_sec.cc",
"btm/btm_scn.cc",
"btu/btu_hcif.cc",
"btu/btu_task.cc",
"eatt/eatt.cc",
"gap/gap_ble.cc",
"gap/gap_conn.cc",
"gatt/att_protocol.cc",
"gatt/connection_manager.cc",
"gatt/gatt_api.cc",
"gatt/gatt_attr.cc",
"gatt/gatt_auth.cc",
"gatt/gatt_cl.cc",
"gatt/gatt_db.cc",
"gatt/gatt_main.cc",
"gatt/gatt_sr.cc",
"gatt/gatt_sr_hash.cc",
"gatt/gatt_utils.cc",
"hcic/hciblecmds.cc",
"hcic/hcicmds.cc",
"hid/hidh_api.cc",
"hid/hidh_conn.cc",
"hid/hidd_api.cc",
"hid/hidd_conn.cc",
"l2cap/l2c_api.cc",
"l2cap/l2c_ble.cc",
"l2cap/l2c_csm.cc",
"l2cap/l2c_fcr.cc",
"l2cap/l2c_link.cc",
"l2cap/l2c_main.cc",
"l2cap/l2c_utils.cc",
"metrics/stack_metrics_logging.cc",
"pan/pan_api.cc",
"pan/pan_main.cc",
"pan/pan_utils.cc",
"rfcomm/port_api.cc",
"rfcomm/port_rfc.cc",
"rfcomm/port_utils.cc",
"rfcomm/rfc_l2cap_if.cc",
"rfcomm/rfc_mx_fsm.cc",
"rfcomm/rfc_port_fsm.cc",
"rfcomm/rfc_port_if.cc",
"rfcomm/rfc_ts_frames.cc",
"rfcomm/rfc_utils.cc",
"sdp/sdp_api.cc",
"sdp/sdp_db.cc",
"sdp/sdp_discovery.cc",
"sdp/sdp_main.cc",
"sdp/sdp_server.cc",
"sdp/sdp_utils.cc",
"smp/p_256_curvepara.cc",
"smp/p_256_ecc_pp.cc",
"smp/p_256_multprecision.cc",
"smp/smp_act.cc",
"smp/smp_api.cc",
"smp/smp_br_main.cc",
"smp/smp_keys.cc",
"smp/smp_l2c.cc",
"smp/smp_main.cc",
"smp/smp_utils.cc",
"srvc/srvc_dis.cc",
"srvc/srvc_eng.cc",
],
static_libs: [
"libbt-hci",
"libFraunhoferAAC",
],
shared_libs: [
"libcutils",
"liblog",
],
required: [
"libldacBT_enc",
"libldacBT_abr",
],
host_supported: true,
}
// Bluetooth stack unit tests for target
// ========================================================
cc_test {
name: "net_test_stack",
defaults: ["fluoride_defaults"],
test_suites: ["device-tests"],
local_include_dirs: [
"include",
],
include_dirs: [
"system/bt",
"system/bt/internal_include",
],
srcs: [
"test/stack_a2dp_test.cc",
"test/stack_avrcp_test.cc",
],
shared_libs: [
"android.hardware.bluetooth@1.0",
"android.hardware.bluetooth@1.1",
"android.hardware.bluetooth.a2dp@1.0",
"android.hardware.bluetooth.audio@2.0",
"android.hardware.bluetooth.audio@2.1",
"android.system.suspend.control-V1-ndk",
"libaaudio",
"libbinder_ndk",
"libcutils",
"libdl",
"libfmq",
"libhidlbase",
"liblog",
"libprocessgroup",
"libprotobuf-cpp-lite",
"libutils",
"libtinyxml2",
"libz",
"libcrypto",
],
static_libs: [
"libbt-audio-hal-interface",
"libbtcore",
"libbt-bta",
"libbt-stack",
"libbt-common",
"libbt-sbc-decoder",
"libbt-sbc-encoder",
"libbt-utils",
"libbtif",
"libFraunhoferAAC",
"libbt-hci",
"libbtdevice",
"libg722codec",
"libosi",
"libudrv-uipc",
"libbt-protos-lite",
],
whole_static_libs: [
"libbluetooth-for-tests",
],
}
cc_test {
name: "net_test_stack_rfcomm",
defaults: ["fluoride_defaults"],
test_suites: ["device-tests"],
host_supported: true,
local_include_dirs: [
"include",
"btm",
"l2cap",
"smp",
"rfcomm",
"test/common",
],
include_dirs: [
"system/bt",
"system/bt/internal_include",
"system/bt/btcore/include",
"system/bt/hci/include",
"system/bt/utils/include",
],
srcs: [
"rfcomm/port_api.cc",
"rfcomm/port_rfc.cc",
"rfcomm/port_utils.cc",
"rfcomm/rfc_l2cap_if.cc",
"rfcomm/rfc_mx_fsm.cc",
"rfcomm/rfc_port_fsm.cc",
"rfcomm/rfc_port_if.cc",
"rfcomm/rfc_ts_frames.cc",
"rfcomm/rfc_utils.cc",
"test/common/mock_btm_layer.cc",
"test/common/mock_btsnoop_module.cc",
"test/common/mock_btu_layer.cc",
"test/common/mock_l2cap_layer.cc",
"test/common/stack_test_packet_utils.cc",
"test/rfcomm/stack_rfcomm_test.cc",
"test/rfcomm/stack_rfcomm_test_main.cc",
"test/rfcomm/stack_rfcomm_test_utils.cc",
"test/rfcomm/stack_rfcomm_test_utils_test.cc",
],
shared_libs: [
"libcutils",
"libprotobuf-cpp-lite",
"libcrypto",
],
static_libs: [
"liblog",
"libgmock",
"libosi",
"libbt-common",
"libbt-protos-lite",
],
sanitize: {
cfi: false,
},
}
// Bluetooth stack smp unit tests for target
// ========================================================
cc_test {
name: "net_test_stack_smp",
defaults: ["fluoride_defaults"],
test_suites: ["device-tests"],
local_include_dirs: [
"include",
"btm",
"l2cap",
"smp",
],
include_dirs: [
"system/bt",
"system/bt/internal_include",
"system/bt/btcore/include",
"system/bt/hci/include",
"system/bt/utils/include",
],
srcs: crypto_toolbox_srcs + [
"smp/smp_keys.cc",
"smp/p_256_curvepara.cc",
"smp/p_256_ecc_pp.cc",
"smp/p_256_multprecision.cc",
"smp/smp_api.cc",
"smp/smp_main.cc",
"smp/smp_utils.cc",
"test/crypto_toolbox_test.cc",
"test/stack_smp_test.cc",
],
shared_libs: [
"libcutils",
],
static_libs: [
"liblog",
"libgmock",
"libosi",
],
}
// Bluetooth stack multi-advertising unit tests for target
// ========================================================
cc_test {
name: "net_test_stack_multi_adv",
defaults: ["fluoride_defaults"],
test_suites: ["device-tests"],
local_include_dirs: [
"include",
"btm",
],
include_dirs: [
"system/bt",
"system/bt/internal_include",
"system/bt/btcore/include",
"system/bt/hci/include",
"system/bt/internal_include",
"system/bt/utils/include",
],
srcs: [
"btm/btm_ble_multi_adv.cc",
"test/ble_advertiser_test.cc",
],
shared_libs: [
"libcutils",
],
static_libs: [
"libbluetooth-types",
"liblog",
"libgmock",
],
sanitize: {
cfi: false,
},
}
// Bluetooth stack advertise data parsing unit tests for target
// =============================================================
cc_test {
name: "net_test_stack_ad_parser",
defaults: ["fluoride_defaults"],
test_suites: ["device-tests"],
local_include_dirs: [
"include",
],
srcs: [
"test/ad_parser_unittest.cc",
],
static_libs: [
"libbluetooth-types",
"liblog",
"libgmock",
],
}
// Bluetooth stack connection multiplexing
// ========================================================
cc_test {
name: "net_test_gatt_conn_multiplexing",
defaults: ["fluoride_defaults"],
local_include_dirs: [
"include",
"btm",
],
include_dirs: [
"system/bt",
"system/bt/internal_include",
"system/bt/btcore/include",
"system/bt/hci/include",
"system/bt/internal_include",
"system/bt/utils/include",
],
srcs: [
"gatt/connection_manager.cc",
"test/gatt_connection_manager_test.cc",
],
shared_libs: [
"libcutils",
],
static_libs: [
"libbluetooth-types",
"liblog",
"libgmock",
],
sanitize: {
cfi: false,
},
}
cc_test {
name: "net_test_stack_gatt_native",
defaults: ["fluoride_defaults"],
test_suites: ["device-tests"],
host_supported: true,
test_options: {
unit_test: true,
},
include_dirs: [
"system/bt",
"system/bt/stack/include",
"system/bt/stack/eatt",
"system/bt/stack/l2cap",
"system/bt/stack/btm",
"system/bt/utils/include",
],
srcs: [
"gatt/gatt_utils.cc",
"test/common/mock_acl.cc",
"test/common/mock_eatt.cc",
"test/common/mock_gatt_layer.cc",
"test/common/mock_main_shim.cc",
"test/gatt/gatt_sr_test.cc",
],
shared_libs: [
"libcutils",
"libprotobuf-cpp-lite",
"libcrypto",
],
static_libs: [
"liblog",
"libosi",
"libbt-common",
"libbt-protos-lite",
"libgmock",
"libosi-AllocationTestHarness",
],
sanitize: {
address: true,
cfi: true,
misc_undefined: ["bounds"],
},
}
cc_test {
name: "net_test_stack_a2dp_native",
defaults: ["fluoride_defaults"],
test_suites: ["device-tests"],
host_supported: true,
test_options: {
unit_test: true,
},
include_dirs: [
"external/libldac/inc",
"system/bt",
"system/bt/stack/include",
],
srcs: [
"test/a2dp/a2dp_vendor_ldac_decoder_test.cc",
"test/a2dp/misc_fake.cc",
],
shared_libs: [
"libcrypto",
"libcutils",
"libprotobuf-cpp-lite",
],
static_libs: [
"libbt-common",
"libbt-protos-lite",
"liblog",
"libosi",
"libosi-AllocationTestHarness",
],
sanitize: {
address: true,
cfi: true,
misc_undefined: ["bounds"],
},
}
// gatt sr hash test
cc_test {
name: "net_test_stack_gatt_sr_hash_native",
defaults: ["fluoride_defaults"],
test_suites: ["device-tests"],
host_supported: true,
include_dirs: [
"system/bt",
"system/bt/stack/btm",
"system/bt/stack/eatt",
"system/bt/stack/include",
"system/bt/utils/include",
],
srcs: crypto_toolbox_srcs + [
"gatt/gatt_db.cc",
"gatt/gatt_sr_hash.cc",
"gatt/gatt_utils.cc",
"test/common/mock_acl.cc",
"test/common/mock_eatt.cc",
"test/common/mock_gatt_layer.cc",
"test/common/mock_main_shim.cc",
"test/gatt/mock_gatt_utils_ref.cc",
"test/stack_gatt_sr_hash_test.cc",
],
shared_libs: [
"libcutils",
"libcrypto",
"libprotobuf-cpp-lite",
],
static_libs: [
"libbt-common",
"libbt-protos-lite",
"liblog",
"libgmock",
"libosi",
],
}
// Iso manager unit tests
cc_test {
name: "net_test_btm_iso",
test_suites: ["device-tests"],
host_supported: true,
test_options: {
unit_test: true,
},
defaults: ["fluoride_defaults"],
local_include_dirs: [
"btm",
"include",
"test/common",
],
include_dirs: [
"system/bt",
"system/bt/btcore/include",
],
srcs: [
"btm/btm_iso.cc",
"test/btm_iso_test.cc",
"test/common/mock_controller.cc",
"test/common/mock_gatt_layer.cc",
"test/common/mock_hcic_layer.cc",
],
static_libs: [
"libbt-common",
"libgmock",
"liblog",
"libosi",
],
sanitize: {
cfi: true,
scs: true,
address: true,
all_undefined: true,
integer_overflow: true,
diag: {
undefined : true
},
},
}
// EATT unit tests
cc_test {
name: "net_test_eatt",
test_suites: ["device-tests"],
host_supported: true,
test_options: {
unit_test: true,
},
defaults: [
"fluoride_defaults",
"clang_coverage_bin",
],
local_include_dirs: [
"include",
"btm",
"eatt",
"gatt",
"l2cap",
"test/common",
],
include_dirs:[
"system/bt",
"system/bt/btcore/include",
],
srcs: [
"eatt/eatt.cc",
"test/common/mock_btm_api_layer.cc",
"test/common/mock_btif_storage.cc",
"test/common/mock_controller.cc",
"test/common/mock_gatt_layer.cc",
"test/common/mock_l2cap_layer.cc",
"test/gatt/mock_gatt_utils_ref.cc",
"test/eatt/eatt_test.cc",
],
shared_libs: [
"libcutils",
"libcrypto",
"libprotobuf-cpp-lite",
],
static_libs: [
"libbt-common",
"libbt-protos-lite",
"liblog",
"libgmock",
"libosi",
],
sanitize: {
cfi: false,
},
}
cc_test {
name: "net_test_stack_btm",
test_suites: ["device-tests"],
host_supported: true,
defaults: ["fluoride_defaults"],
local_include_dirs: [
"include",
"btm",
"test/common",
],
include_dirs: [
"system/bt",
"system/bt/vnd/ble",
],
srcs: crypto_toolbox_srcs + [
"acl/acl.cc",
"acl/ble_acl.cc",
"acl/btm_acl.cc",
"acl/btm_ble_connection_establishment.cc",
"acl/btm_pm.cc",
"btm/ble_advertiser_hci_interface.cc",
"btm/btm_ble.cc",
"btm/btm_ble_addr.cc",
"btm/btm_ble_adv_filter.cc",
"btm/btm_ble_batchscan.cc",
"btm/btm_ble_bgconn.cc",
"btm/btm_ble_cont_energy.cc",
"btm/btm_ble_gap.cc",
"btm/btm_ble_multi_adv.cc",
"btm/btm_ble_privacy.cc",
"btm/btm_client_interface.cc",
"btm/btm_dev.cc",
"btm/btm_devctl.cc",
"btm/btm_inq.cc",
"btm/btm_iso.cc",
"btm/btm_main.cc",
"btm/btm_sco.cc",
"btm/btm_scn.cc",
"btm/btm_sec.cc",
"metrics/stack_metrics_logging.cc",
"test/btm/stack_btm_test.cc",
"test/common/mock_bta_dm_act.cc",
"test/common/mock_bta_sys_conn.cc",
"test/common/mock_btif_bqr.cc",
"test/common/mock_btif_dm.cc",
"test/common/mock_btif_storage.cc",
"test/common/mock_btu_hcif.cc",
"test/common/mock_gap_gap_ble.cc",
"test/common/mock_gatt_connection_manager.cc",
"test/common/mock_gatt_gatt_auth.cc",
"test/common/mock_gatt_main.cc",
"test/common/mock_hci_packet_parser.cc",
"test/common/mock_hcic_hciblecmds.cc",
"test/common/mock_hcic_hcicmds.cc",
"test/common/mock_l2cap_l2c_api.cc",
"test/common/mock_l2cap_l2c_ble.cc",
"test/common/mock_l2cap_l2c_link.cc",
"test/common/mock_l2cap_l2c_main.cc",
"test/common/mock_l2cap_l2c_utils.cc",
"test/common/mock_main_bte_main.cc",
"test/common/mock_main_shim.cc",
"test/common/mock_main_shim_acl_api.cc",
"test/common/mock_main_shim_l2c_api.cc",
"test/common/mock_main_shim_btm_api.cc",
"test/common/mock_main_shim_controller.cc",
"test/common/mock_main_shim_link_policy.cc",
"test/common/mock_smp_smp_act.cc",
"test/common/mock_smp_smp_api.cc",
],
static_libs: [
"libbt-common",
"libbt-protos-lite",
"libbte",
"libgmock",
"liblog",
"libosi",
"libbtdevice",
],
shared_libs: [
"libprotobuf-cpp-lite",
"libcrypto",
],
sanitize: {
address: true,
all_undefined: true,
cfi: true,
integer_overflow: true,
scs: true,
diag: {
undefined : true
},
},
}