xref: /aosp_15_r20/frameworks/base/native/graphics/jni/Android.bp (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker// Copyright (C) 2016 The Android Open Source Project
2*d57664e9SAndroid Build Coastguard Worker//
3*d57664e9SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d57664e9SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d57664e9SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d57664e9SAndroid Build Coastguard Worker//
7*d57664e9SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*d57664e9SAndroid Build Coastguard Worker//
9*d57664e9SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d57664e9SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d57664e9SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d57664e9SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d57664e9SAndroid Build Coastguard Worker// limitations under the License.
14*d57664e9SAndroid Build Coastguard Worker
15*d57664e9SAndroid Build Coastguard Workerpackage {
16*d57664e9SAndroid Build Coastguard Worker    // See: http://go/android-license-faq
17*d57664e9SAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
18*d57664e9SAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_base_license"
19*d57664e9SAndroid Build Coastguard Worker    // to get the below license kinds:
20*d57664e9SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
21*d57664e9SAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_base_license"],
22*d57664e9SAndroid Build Coastguard Worker}
23*d57664e9SAndroid Build Coastguard Worker
24*d57664e9SAndroid Build Coastguard Workercc_library_shared {
25*d57664e9SAndroid Build Coastguard Worker    name: "libjnigraphics",
26*d57664e9SAndroid Build Coastguard Worker    defaults: [
27*d57664e9SAndroid Build Coastguard Worker        "bug_24465209_workaround",
28*d57664e9SAndroid Build Coastguard Worker    ],
29*d57664e9SAndroid Build Coastguard Worker
30*d57664e9SAndroid Build Coastguard Worker    cflags: [
31*d57664e9SAndroid Build Coastguard Worker        "-Wall",
32*d57664e9SAndroid Build Coastguard Worker        "-Werror",
33*d57664e9SAndroid Build Coastguard Worker        "-Wunused",
34*d57664e9SAndroid Build Coastguard Worker        "-Wunreachable-code",
35*d57664e9SAndroid Build Coastguard Worker    ],
36*d57664e9SAndroid Build Coastguard Worker
37*d57664e9SAndroid Build Coastguard Worker    srcs: [
38*d57664e9SAndroid Build Coastguard Worker        "imagedecoder.cpp",
39*d57664e9SAndroid Build Coastguard Worker    ],
40*d57664e9SAndroid Build Coastguard Worker
41*d57664e9SAndroid Build Coastguard Worker    shared_libs: [
42*d57664e9SAndroid Build Coastguard Worker        "libhwui",
43*d57664e9SAndroid Build Coastguard Worker        "liblog",
44*d57664e9SAndroid Build Coastguard Worker    ],
45*d57664e9SAndroid Build Coastguard Worker
46*d57664e9SAndroid Build Coastguard Worker    header_libs: [
47*d57664e9SAndroid Build Coastguard Worker        "jni_headers",
48*d57664e9SAndroid Build Coastguard Worker        "native_headers",
49*d57664e9SAndroid Build Coastguard Worker        "libhwui_internal_headers",
50*d57664e9SAndroid Build Coastguard Worker    ],
51*d57664e9SAndroid Build Coastguard Worker    export_header_lib_headers: ["native_headers"],
52*d57664e9SAndroid Build Coastguard Worker
53*d57664e9SAndroid Build Coastguard Worker    static_libs: [
54*d57664e9SAndroid Build Coastguard Worker        "libarect",
55*d57664e9SAndroid Build Coastguard Worker    ],
56*d57664e9SAndroid Build Coastguard Worker
57*d57664e9SAndroid Build Coastguard Worker    host_supported: true,
58*d57664e9SAndroid Build Coastguard Worker    target: {
59*d57664e9SAndroid Build Coastguard Worker        android: {
60*d57664e9SAndroid Build Coastguard Worker            srcs: [
61*d57664e9SAndroid Build Coastguard Worker                "aassetstreamadaptor.cpp",
62*d57664e9SAndroid Build Coastguard Worker                "bitmap.cpp",
63*d57664e9SAndroid Build Coastguard Worker            ],
64*d57664e9SAndroid Build Coastguard Worker            shared_libs: [
65*d57664e9SAndroid Build Coastguard Worker                "libandroid",
66*d57664e9SAndroid Build Coastguard Worker            ],
67*d57664e9SAndroid Build Coastguard Worker            static_libs: [
68*d57664e9SAndroid Build Coastguard Worker                "libstatslog_hwui",
69*d57664e9SAndroid Build Coastguard Worker                "libstatspull_lazy",
70*d57664e9SAndroid Build Coastguard Worker                "libstatssocket_lazy",
71*d57664e9SAndroid Build Coastguard Worker            ],
72*d57664e9SAndroid Build Coastguard Worker            version_script: "libjnigraphics.map.txt",
73*d57664e9SAndroid Build Coastguard Worker        },
74*d57664e9SAndroid Build Coastguard Worker        host: {
75*d57664e9SAndroid Build Coastguard Worker            header_libs: [
76*d57664e9SAndroid Build Coastguard Worker                "libnativewindow_headers",
77*d57664e9SAndroid Build Coastguard Worker            ],
78*d57664e9SAndroid Build Coastguard Worker        },
79*d57664e9SAndroid Build Coastguard Worker    },
80*d57664e9SAndroid Build Coastguard Worker    stubs: {
81*d57664e9SAndroid Build Coastguard Worker        symbol_file: "libjnigraphics.map.txt",
82*d57664e9SAndroid Build Coastguard Worker    },
83*d57664e9SAndroid Build Coastguard Worker}
84*d57664e9SAndroid Build Coastguard Worker
85*d57664e9SAndroid Build Coastguard Worker// The headers module is in frameworks/native/Android.bp.
86*d57664e9SAndroid Build Coastguard Workerndk_library {
87*d57664e9SAndroid Build Coastguard Worker    name: "libjnigraphics",
88*d57664e9SAndroid Build Coastguard Worker    symbol_file: "libjnigraphics.map.txt",
89*d57664e9SAndroid Build Coastguard Worker    first_version: "9",
90*d57664e9SAndroid Build Coastguard Worker    unversioned_until: "current",
91*d57664e9SAndroid Build Coastguard Worker}
92*d57664e9SAndroid Build Coastguard Worker
93*d57664e9SAndroid Build Coastguard Workercc_defaults {
94*d57664e9SAndroid Build Coastguard Worker    name: "imagedecoder_fuzzer_defaults",
95*d57664e9SAndroid Build Coastguard Worker    srcs: ["fuzz/fuzz_imagedecoder.cpp"],
96*d57664e9SAndroid Build Coastguard Worker    header_libs: ["jni_headers"],
97*d57664e9SAndroid Build Coastguard Worker    shared_libs: [
98*d57664e9SAndroid Build Coastguard Worker        "libbinder",
99*d57664e9SAndroid Build Coastguard Worker        "libjnigraphics",
100*d57664e9SAndroid Build Coastguard Worker        "libutils",
101*d57664e9SAndroid Build Coastguard Worker    ],
102*d57664e9SAndroid Build Coastguard Worker    static_libs: ["libarect"],
103*d57664e9SAndroid Build Coastguard Worker    fuzz_config: {
104*d57664e9SAndroid Build Coastguard Worker        cc: [
105*d57664e9SAndroid Build Coastguard Worker            "[email protected]",
106*d57664e9SAndroid Build Coastguard Worker            "[email protected]",
107*d57664e9SAndroid Build Coastguard Worker        ],
108*d57664e9SAndroid Build Coastguard Worker        asan_options: [
109*d57664e9SAndroid Build Coastguard Worker            "detect_odr_violation=1",
110*d57664e9SAndroid Build Coastguard Worker        ],
111*d57664e9SAndroid Build Coastguard Worker        hwasan_options: [
112*d57664e9SAndroid Build Coastguard Worker            // Image decoders may attempt to allocate a large amount of memory
113*d57664e9SAndroid Build Coastguard Worker            // (especially if the encoded image is large). This doesn't
114*d57664e9SAndroid Build Coastguard Worker            // necessarily mean there is a bug. Set allocator_may_return_null=1
115*d57664e9SAndroid Build Coastguard Worker            // for hwasan so the fuzzer can continue running.
116*d57664e9SAndroid Build Coastguard Worker            "allocator_may_return_null = 1",
117*d57664e9SAndroid Build Coastguard Worker        ],
118*d57664e9SAndroid Build Coastguard Worker    },
119*d57664e9SAndroid Build Coastguard Worker    dictionary: "fuzz/imagedecoder_fuzzer.dict",
120*d57664e9SAndroid Build Coastguard Worker    host_supported: true,
121*d57664e9SAndroid Build Coastguard Worker}
122*d57664e9SAndroid Build Coastguard Worker
123*d57664e9SAndroid Build Coastguard Workercc_fuzz {
124*d57664e9SAndroid Build Coastguard Worker    name: "imagedecoder_fuzzer",
125*d57664e9SAndroid Build Coastguard Worker    defaults: ["imagedecoder_fuzzer_defaults"],
126*d57664e9SAndroid Build Coastguard Worker    corpus: ["fuzz/corpus/*"],
127*d57664e9SAndroid Build Coastguard Worker}
128*d57664e9SAndroid Build Coastguard Worker
129*d57664e9SAndroid Build Coastguard Workercc_fuzz {
130*d57664e9SAndroid Build Coastguard Worker    name: "imagedecoder_png_fuzzer",
131*d57664e9SAndroid Build Coastguard Worker    defaults: ["imagedecoder_fuzzer_defaults"],
132*d57664e9SAndroid Build Coastguard Worker    shared_libs: [
133*d57664e9SAndroid Build Coastguard Worker        "libz",
134*d57664e9SAndroid Build Coastguard Worker    ],
135*d57664e9SAndroid Build Coastguard Worker    cflags: [
136*d57664e9SAndroid Build Coastguard Worker        "-DPNG_MUTATOR_DEFINE_LIBFUZZER_CUSTOM_MUTATOR",
137*d57664e9SAndroid Build Coastguard Worker    ],
138*d57664e9SAndroid Build Coastguard Worker}
139*d57664e9SAndroid Build Coastguard Worker
140*d57664e9SAndroid Build Coastguard Workercc_fuzz {
141*d57664e9SAndroid Build Coastguard Worker    name: "imagedecoder_heif_fuzzer",
142*d57664e9SAndroid Build Coastguard Worker    defaults: ["imagedecoder_fuzzer_defaults"],
143*d57664e9SAndroid Build Coastguard Worker    team: "trendy_team_android_core_graphics_stack",
144*d57664e9SAndroid Build Coastguard Worker    shared_libs: [
145*d57664e9SAndroid Build Coastguard Worker        "libfakeservicemanager",
146*d57664e9SAndroid Build Coastguard Worker    ],
147*d57664e9SAndroid Build Coastguard Worker    target: {
148*d57664e9SAndroid Build Coastguard Worker        android: {
149*d57664e9SAndroid Build Coastguard Worker            shared_libs: [
150*d57664e9SAndroid Build Coastguard Worker                "libmediaplayerservice",
151*d57664e9SAndroid Build Coastguard Worker                "libmediaextractorservice",
152*d57664e9SAndroid Build Coastguard Worker            ],
153*d57664e9SAndroid Build Coastguard Worker        },
154*d57664e9SAndroid Build Coastguard Worker        host: {
155*d57664e9SAndroid Build Coastguard Worker            static_libs: [
156*d57664e9SAndroid Build Coastguard Worker                "libbinder_random_parcel",
157*d57664e9SAndroid Build Coastguard Worker                "libcutils",
158*d57664e9SAndroid Build Coastguard Worker            ],
159*d57664e9SAndroid Build Coastguard Worker        },
160*d57664e9SAndroid Build Coastguard Worker    },
161*d57664e9SAndroid Build Coastguard Worker    include_dirs: ["frameworks/av/services/mediaextractor"],
162*d57664e9SAndroid Build Coastguard Worker    cflags: [
163*d57664e9SAndroid Build Coastguard Worker        "-DFUZZ_HEIF_FORMAT",
164*d57664e9SAndroid Build Coastguard Worker    ],
165*d57664e9SAndroid Build Coastguard Worker}
166