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 */
17
18package {
19    // See: http://go/android-license-faq
20    // A large-scale-change added 'default_applicable_licenses' to import
21    // all of the 'license_kinds' from "frameworks_av_media_libmediaplayerservice_license"
22    // to get the below license kinds:
23    //   SPDX-license-identifier-Apache-2.0
24    default_applicable_licenses: [
25        "frameworks_av_media_libmediaplayerservice_license",
26    ],
27}
28
29cc_defaults {
30    name: "libmediaplayerserviceFuzzer_defaults",
31    static_libs: [
32        "libmediaplayerservice",
33        "liblog",
34    ],
35    shared_libs: [
36        "framework-permission-aidl-cpp",
37        "libbinder",
38        "libbinder_ndk",
39        "libcutils",
40        "libmedia",
41        "libstagefright",
42        "libutils",
43        "libstagefright_foundation",
44    ],
45    fuzz_config: {
46        cc: [
47            "android-media-playback+bugs@google.com",
48        ],
49        componentid: 155276,
50        hotlists: [
51            "4593311",
52        ],
53        description: "The fuzzer targets the APIs of libmediaplayerservice",
54        vector: "remote",
55        service_privilege: "privileged",
56        users: "multi_user",
57        fuzzed_code_usage: "shipped",
58    },
59}
60
61cc_fuzz {
62    name: "mediarecorder_fuzzer",
63    srcs: [
64        "mediarecorder_fuzzer.cpp",
65    ],
66    defaults: [
67        "libmediaplayerserviceFuzzer_defaults",
68    ],
69    static_libs: [
70        "libstagefright_rtsp",
71        "libbase",
72        "libstagefright_nuplayer",
73        "libplayerservice_datasource",
74        "libstagefright_timedtext",
75        "libaudioprocessing_base",
76    ],
77    shared_libs: [
78        "android.hardware.media.omx@1.0",
79        "av-types-aidl-cpp",
80        "media_permission-aidl-cpp",
81        "libaudioclient_aidl_conversion",
82        "libactivitymanager_aidl",
83        "libandroid_net",
84        "libaudioclient",
85        "libcamera_client",
86        "libcodec2_client",
87        "libcrypto",
88        "libdatasource",
89        "libdrmframework",
90        "libgui",
91        "libhidlbase",
92        "liblog",
93        "libmedia_codeclist",
94        "libmedia_omx",
95        "libmediadrm",
96        "libmediametrics",
97        "libmediautils",
98        "libmemunreachable",
99        "libnetd_client",
100        "libpowermanager",
101        "libstagefright_httplive",
102        "packagemanager_aidl-cpp",
103        "libfakeservicemanager",
104        "libvibrator",
105        "libnbaio",
106        "libnblog",
107        "libpowermanager",
108        "libaudioprocessing",
109        "libaudioflinger",
110        "libresourcemanagerservice",
111        "libmediametricsservice",
112        "mediametricsservice-aidl-cpp",
113        "libcameraservice",
114        "android.hardware.camera.common@1.0",
115        "android.hardware.camera.provider@2.4",
116        "android.hardware.camera.provider@2.5",
117        "android.hardware.camera.provider@2.6",
118        "android.hardware.camera.provider@2.7",
119        "android.hardware.camera.provider-V3-ndk",
120        "android.hardware.camera.device@1.0",
121        "android.hardware.camera.device@3.2",
122        "android.hardware.camera.device@3.4",
123        "libaudiohal@7.0",
124    ],
125    header_libs: [
126        "libaudiohal_headers",
127        "libaudioflinger_headers",
128    ],
129}
130
131cc_fuzz {
132    name: "metadataretriever_fuzzer",
133    srcs: [
134        "metadataretriever_fuzzer.cpp",
135    ],
136    defaults: [
137        "libmediaplayerserviceFuzzer_defaults",
138        "libmediaplayerservice_defaults",
139    ],
140    static_libs: [
141        "libplayerservice_datasource",
142    ],
143    shared_libs: [
144        "libdatasource",
145        "libdrmframework",
146        "libstagefright_httplive",
147        "libmediaextractorservice",
148    ],
149    include_dirs: ["frameworks/av/services/mediaextractor"],
150}
151
152cc_fuzz {
153    name: "mediaplayer_fuzzer",
154    srcs: [
155        "mediaplayer_fuzzer.cpp",
156    ],
157    defaults: [
158        "libmediaplayerserviceFuzzer_defaults",
159    ],
160    static_libs: [
161        "libgmock",
162        "libgtest_ndk_c++",
163        "libplayerservice_datasource",
164        "libstagefright_nuplayer",
165        "libstagefright_rtsp",
166        "libstagefright_timedtext",
167        "libbinder_random_parcel",
168    ],
169    shared_libs: [
170        "android.hardware.media.c2@1.0",
171        "android.hardware.media.omx@1.0",
172        "av-types-aidl-cpp",
173        "libaudioclient_aidl_conversion",
174        "libbase",
175        "libactivitymanager_aidl",
176        "libandroid_net",
177        "libaudioclient",
178        "libcamera_client",
179        "libcodec2_client",
180        "libcrypto",
181        "libdatasource",
182        "libdrmframework",
183        "libgui",
184        "libhidlbase",
185        "liblog",
186        "libmedia_codeclist",
187        "libmedia_omx",
188        "libmediadrm",
189        "libmediametrics",
190        "libmediautils",
191        "libmemunreachable",
192        "libnetd_client",
193        "libpowermanager",
194        "libstagefright_httplive",
195        "libaudiohal@7.0",
196        "libmediaextractorservice",
197    ],
198    corpus: ["corpus/*"],
199    include_dirs: ["frameworks/av/services/mediaextractor"],
200}
201
202cc_fuzz {
203    name: "media_player_service_fuzzer",
204    defaults: [
205        "service_fuzzer_defaults",
206        "libmediaplayerservice_defaults",
207        "fuzzer_disable_leaks",
208    ],
209    srcs: [
210        "media_player_service_fuzzer.cpp",
211    ],
212    fuzz_config: {
213        cc: [
214            "kyslov@google.com",
215            "ibaker@google.com",
216        ],
217        triage_assignee: "waghpawan@google.com",
218    },
219    cflags: [
220        "-DFUZZ_MODE_MEDIA_PLAYER_SERVICE",
221    ],
222    include_dirs: ["frameworks/av/media/libmediaplayerservice/"],
223}
224