blob: 0fb3049f63d888eac792707819081b7fa93718ca [file] [log] [blame]
Dan Albert7ce8df32016-09-23 16:43:49 -07001// Copyright (C) 2016 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Bob Badoure539dba2021-02-12 17:07:05 -080015package {
16 // See: http://go/android-license-faq
17 // A large-scale-change added 'default_applicable_licenses' to import
18 // all of the 'license_kinds' from "frameworks_base_license"
19 // to get the below license kinds:
20 // SPDX-license-identifier-Apache-2.0
21 default_applicable_licenses: ["frameworks_base_license"],
22}
23
Colin Cross02a86572017-10-07 18:38:31 -070024cc_library_shared {
25 name: "libjnigraphics",
Elliott Hughes395607d2024-06-18 18:23:59 +000026 defaults: [
27 "bug_24465209_workaround",
28 ],
Colin Cross02a86572017-10-07 18:38:31 -070029
30 cflags: [
31 "-Wall",
32 "-Werror",
33 "-Wunused",
34 "-Wunreachable-code",
35 ],
36
Leon Scroggins III9732e292019-12-16 10:26:57 -050037 srcs: [
Leon Scroggins III407b5442019-11-22 17:10:20 -050038 "imagedecoder.cpp",
Leon Scroggins III9732e292019-12-16 10:26:57 -050039 ],
Colin Cross02a86572017-10-07 18:38:31 -070040
41 shared_libs: [
Leon Scroggins III407b5442019-11-22 17:10:20 -050042 "libhwui",
Leon Scroggins III9732e292019-12-16 10:26:57 -050043 "liblog",
Colin Cross02a86572017-10-07 18:38:31 -070044 ],
Ian Pedowitz0c3c4d12018-01-18 16:24:11 -080045
Leon Scroggins IIIc72d0fb2020-12-30 16:38:23 -050046 header_libs: [
Leon Scroggins IIIc72d0fb2020-12-30 16:38:23 -050047 "jni_headers",
Orion Hodson9b4db532021-02-02 11:19:04 +000048 "libhwui_internal_headers",
Leon Scroggins IIIc72d0fb2020-12-30 16:38:23 -050049 ],
Derek Sollenbergeree538a32020-02-19 11:51:17 -050050
Leon Scroggins III407b5442019-11-22 17:10:20 -050051 static_libs: ["libarect"],
52
Leon Scroggins IIIc72d0fb2020-12-30 16:38:23 -050053 host_supported: true,
54 target: {
55 android: {
56 srcs: [
57 "aassetstreamadaptor.cpp",
58 "bitmap.cpp",
59 ],
60 shared_libs: [
61 "libandroid",
62 ],
63 version_script: "libjnigraphics.map.txt",
64 },
65 host: {
66 header_libs: [
67 "libnativewindow_headers",
68 ],
69 },
70 },
Jooyung Han7a82df92024-01-25 07:45:05 +090071 stubs: {
72 symbol_file: "libjnigraphics.map.txt",
73 },
Colin Cross02a86572017-10-07 18:38:31 -070074}
75
Dan Albert7ce8df32016-09-23 16:43:49 -070076// The headers module is in frameworks/native/Android.bp.
77ndk_library {
Dan Willemsen3dcf0312017-04-07 15:48:45 -070078 name: "libjnigraphics",
Dan Albert7ce8df32016-09-23 16:43:49 -070079 symbol_file: "libjnigraphics.map.txt",
80 first_version: "9",
Dan Albert98e462d2017-01-05 16:01:14 -080081 unversioned_until: "current",
Dan Albert7ce8df32016-09-23 16:43:49 -070082}
Leon Scroggins III140f5082020-02-26 17:15:12 -050083
Leon Scroggins III8f774242021-01-15 11:33:23 -050084cc_defaults {
85 name: "imagedecoder_fuzzer_defaults",
86 srcs: ["fuzz/fuzz_imagedecoder.cpp"],
Leon Scroggins III140f5082020-02-26 17:15:12 -050087 header_libs: ["jni_headers"],
88 shared_libs: [
89 "libbinder",
90 "libjnigraphics",
91 "libutils",
92 ],
93 static_libs: ["libarect"],
94 fuzz_config: {
Jooyung Hanf9394142024-01-25 08:00:28 +090095 cc: [
96 "dichenzhang@google.com",
97 "scroggo@google.com",
98 ],
Leon Scroggins IIIc72d0fb2020-12-30 16:38:23 -050099 asan_options: [
100 "detect_odr_violation=1",
101 ],
Leon Scroggins IIIba9a6902021-01-11 11:35:10 -0500102 hwasan_options: [
Jooyung Hanf9394142024-01-25 08:00:28 +0900103 // Image decoders may attempt to allocate a large amount of memory
104 // (especially if the encoded image is large). This doesn't
105 // necessarily mean there is a bug. Set allocator_may_return_null=1
106 // for hwasan so the fuzzer can continue running.
Leon Scroggins IIIba9a6902021-01-11 11:35:10 -0500107 "allocator_may_return_null = 1",
108 ],
Leon Scroggins III140f5082020-02-26 17:15:12 -0500109 },
Onkar Shinde85c84962024-04-25 15:58:31 +0530110 dictionary: "fuzz/imagedecoder_fuzzer.dict",
Leon Scroggins IIIc72d0fb2020-12-30 16:38:23 -0500111 host_supported: true,
Leon Scroggins III140f5082020-02-26 17:15:12 -0500112}
Leon Scroggins III8f774242021-01-15 11:33:23 -0500113
114cc_fuzz {
115 name: "imagedecoder_fuzzer",
116 defaults: ["imagedecoder_fuzzer_defaults"],
117 corpus: ["fuzz/corpus/*"],
118}
119
120cc_fuzz {
121 name: "imagedecoder_png_fuzzer",
122 defaults: ["imagedecoder_fuzzer_defaults"],
123 shared_libs: [
124 "libz",
125 ],
126 cflags: [
127 "-DPNG_MUTATOR_DEFINE_LIBFUZZER_CUSTOM_MUTATOR",
128 ],
129}
Onkar Shinde27e27972024-04-25 15:58:44 +0530130
131cc_fuzz {
132 name: "imagedecoder_heif_fuzzer",
133 defaults: ["imagedecoder_fuzzer_defaults"],
134 team: "trendy_team_android_core_graphics_stack",
135 shared_libs: [
136 "libfakeservicemanager",
137 ],
138 target: {
139 android: {
140 shared_libs: [
141 "libmediaplayerservice",
142 "libmediaextractorservice",
143 ],
144 },
145 host: {
146 static_libs: [
147 "libbinder_random_parcel",
148 "libcutils",
149 ],
150 },
151 },
152 include_dirs: ["frameworks/av/services/mediaextractor"],
153 cflags: [
154 "-DFUZZ_HEIF_FORMAT",
155 ],
156}