xref: /aosp_15_r20/frameworks/native/libs/binder/tests/parcel_fuzzer/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1package {
2    // See: http://go/android-license-faq
3    // A large-scale-change added 'default_applicable_licenses' to import
4    // all of the 'license_kinds' from "frameworks_native_license"
5    // to get the below license kinds:
6    //   SPDX-license-identifier-Apache-2.0
7    default_applicable_licenses: ["frameworks_native_license"],
8}
9
10aidl_interface {
11    name: "binderReadParcelIface",
12    host_supported: true,
13    unstable: true,
14    srcs: [
15        "parcelables/EmptyParcelable.aidl",
16        "parcelables/SingleDataParcelable.aidl",
17        "parcelables/GenericDataParcelable.aidl",
18    ],
19    flags: [
20        "-Werror",
21    ],
22    backend: {
23        java: {
24            enabled: true,
25            platform_apis: true,
26        },
27        rust: {
28            enabled: true,
29        },
30    },
31}
32
33cc_fuzz {
34    name: "binder_parcel_fuzzer",
35    host_supported: true,
36
37    fuzz_config: {
38        cc: [
39            "[email protected]",
40            "[email protected]",
41        ],
42        triage_assignee: "[email protected]",
43        use_for_presubmit: true,
44    },
45
46    srcs: [
47        "binder.cpp",
48        "binder_ndk.cpp",
49        "hwbinder.cpp",
50        "main.cpp",
51        "random_fd.cpp",
52        "random_parcel.cpp",
53    ],
54    static_libs: [
55        "libbase",
56        "libbinder_random_parcel",
57        "libcutils",
58        "libhidlbase",
59        "liblog",
60        "binderReadParcelIface-cpp",
61        "binderReadParcelIface-ndk",
62    ],
63
64    target: {
65        android: {
66            shared_libs: [
67                "libbinder_ndk",
68                "libbinder",
69                "libutils",
70            ],
71        },
72        host: {
73            static_libs: [
74                "libbinder_ndk",
75                "libbinder",
76                "libutils",
77            ],
78        },
79        darwin: {
80            enabled: false,
81        },
82    },
83    // This flag enables verbose output in the fuzz target, and is very useful
84    // for debugging a failure. If you are trying to diagnose how a crash was
85    // produced, you may find uncommenting the below line very useful.
86    // cflags: ["-DENABLE_LOG_FUZZ"],
87}
88
89cc_library_static {
90    name: "libbinder_random_parcel",
91    host_supported: true,
92    vendor_available: true,
93    target: {
94        darwin: {
95            enabled: false,
96        },
97    },
98    srcs: [
99        "random_binder.cpp",
100        "random_fd.cpp",
101        "random_parcel.cpp",
102        "libbinder_driver.cpp",
103        "libbinder_ndk_driver.cpp",
104    ],
105    shared_libs: [
106        "libbase",
107        "libbinder",
108        "libbinder_ndk",
109        "libcutils",
110        "libutils",
111    ],
112    local_include_dirs: ["include_random_parcel"],
113    export_include_dirs: ["include_random_parcel"],
114}
115
116cc_library {
117    name: "libbinder_random_parcel_seeds",
118    host_supported: true,
119    vendor_available: true,
120    target: {
121        darwin: {
122            enabled: false,
123        },
124    },
125    srcs: [
126        "random_parcel_seeds.cpp",
127    ],
128    shared_libs: [
129        "libbase",
130        "libbinder",
131        "libbinder_ndk",
132        "libcutils",
133        "libutils",
134    ],
135    static_libs: [
136        "libbinder_random_parcel",
137    ],
138    include_dirs: [
139        "bionic/libc/kernel/android/uapi/",
140        "bionic/libc/kernel/uapi/",
141    ],
142    local_include_dirs: [
143        "include_random_parcel_seeds",
144    ],
145    export_include_dirs: ["include_random_parcel_seeds"],
146}
147
148cc_binary_host {
149    name: "binder2corpus",
150    static_libs: [
151        "libbinder_random_parcel",
152        "libbinder_random_parcel_seeds",
153    ],
154    cflags: [
155        "-DBINDER_WITH_KERNEL_IPC",
156    ],
157    srcs: [
158        "binder2corpus/binder2corpus.cpp",
159    ],
160    shared_libs: [
161        "libbase",
162        "libbinder",
163        "libutils",
164        "libcutils",
165    ],
166}
167