1/*
2 * Copyright (C) 2021 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package {
18    // See: http://go/android-license-faq
19    // A large-scale-change added 'default_applicable_licenses' to import
20    // all of the 'license_kinds' from "system_bt_license"
21    // to get the below license kinds:
22    //   SPDX-license-identifier-Apache-2.0
23    default_applicable_licenses: ["system_bt_license"],
24}
25
26cc_defaults {
27    name: "libbt_audio_hal_interface_fuzz_defaults",
28    header_libs: [
29        "avrcp_headers",
30        "libbluetooth_headers",
31    ],
32    defaults: [
33        "latest_android_hardware_audio_common_ndk_static",
34        "latest_android_hardware_bluetooth_audio_ndk_static",
35        "latest_android_media_audio_common_types_ndk_static",
36    ],
37    shared_libs: [
38        "libPlatformProperties",
39        "libaaudio",
40        "libaconfig_storage_read_api_cc",
41        "libbinder_ndk",
42        "libcrypto",
43        "libfmq",
44        "libstatslog",
45        "libstatssocket",
46        "libz",
47        "server_configurable_flags",
48    ],
49    static_libs: [
50        "[email protected]",
51        "[email protected]",
52        "[email protected]",
53        "[email protected]",
54        "[email protected]",
55        "android.hardware.common-V2-ndk",
56        "android.hardware.common.fmq-V1-ndk",
57        "android.system.suspend-V1-ndk",
58        "android.system.suspend.control-V1-ndk",
59        "bluetooth_flags_c_lib",
60        "libFraunhoferAAC",
61        "libbase",
62        "libbluetooth-protos",
63        "libbluetooth-types",
64        "libbluetooth_core_rs",
65        "libbluetooth_crypto_toolbox",
66        "libbluetooth_gd",
67        "libbluetooth_log",
68        "libbt-audio-hal-interface",
69        "libbt-bta",
70        "libbt-bta-core",
71        "libbt-btu-main-thread",
72        "libbt-common",
73        "libbt-hci",
74        "libbt-jni-thread",
75        "libbt-sbc-decoder",
76        "libbt-sbc-encoder",
77        "libbt-stack",
78        "libbt-stack-core",
79        "libbtcore",
80        "libbtdevice",
81        "libbte",
82        "libbtif",
83        "libbtif-core",
84        "libchrome",
85        "libcom.android.sysprop.bluetooth.wrapped",
86        "libcutils",
87        "libevent",
88        "libexpresslog",
89        "libflags_rust_cpp_bridge",
90        "libg722codec",
91        "libhidlbase",
92        "libjsoncpp",
93        "liblc3",
94        "liblog",
95        "libopus",
96        "libosi",
97        "libprotobuf-cpp-lite",
98        "libstatslog_bt",
99        "libstatslog_express",
100        "libtextclassifier_hash_static",
101        "libudrv-uipc",
102        "libutils",
103        "libvndksupport",
104    ],
105    include_dirs: [
106        "packages/modules/Bluetooth/system",
107        "packages/modules/Bluetooth/system/bta/include",
108        "packages/modules/Bluetooth/system/btif",
109        "packages/modules/Bluetooth/system/gd",
110        "packages/modules/Bluetooth/system/stack/include",
111    ],
112    fuzz_config: {
113        cc: ["[email protected]"],
114        componentid: 27441,
115        hotlists: [
116            "4593311",
117        ],
118        description: "The fuzzer targets the APIs of libbt-audio-hal-interface",
119        vector: "local_no_privileges_required",
120        service_privilege: "privileged",
121        users: "multi_user",
122        fuzzed_code_usage: "shipped",
123    },
124}
125
126cc_fuzz {
127    name: "libbt_audio_hal_a2dp_encoding_fuzzer",
128    defaults: [
129        "libbt_audio_hal_interface_fuzz_defaults",
130    ],
131    srcs: [
132        "libbt_audio_hal_a2dp_encoding_fuzzer.cpp",
133    ],
134}
135
136cc_fuzz {
137    name: "libbt_audio_hal_le_audio_software_fuzzer",
138    defaults: [
139        "libbt_audio_hal_interface_fuzz_defaults",
140    ],
141    srcs: [
142        "libbt_audio_hal_le_audio_software_fuzzer.cpp",
143    ],
144}
145
146cc_fuzz {
147    name: "libbt_audio_hal_hearing_aid_software_encoding_fuzzer",
148    defaults: [
149        "libbt_audio_hal_interface_fuzz_defaults",
150    ],
151    srcs: [
152        "libbt_audio_hal_hearing_aid_software_encoding_fuzzer.cpp",
153    ],
154    static_libs: [
155        "libbinder_random_parcel",
156    ],
157    shared_libs: [
158        "libbinder",
159    ],
160}
161
162cc_fuzz {
163    name: "libbt_audio_hal_client_interface_fuzzer",
164    defaults: [
165        "libbt_audio_hal_interface_fuzz_defaults",
166    ],
167    srcs: [
168        "libbt_audio_hal_client_interface_fuzzer.cpp",
169    ],
170}
171