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            "smoreland@google.com",
40            "waghpawan@google.com",
41        ],
42        use_for_presubmit: true,
43    },
44
45    srcs: [
46        "binder.cpp",
47        "binder_ndk.cpp",
48        "hwbinder.cpp",
49        "main.cpp",
50        "random_fd.cpp",
51        "random_parcel.cpp",
52    ],
53    static_libs: [
54        "libbase",
55        "libbinder_random_parcel",
56        "libcutils",
57        "libhidlbase",
58        "liblog",
59        "binderReadParcelIface-cpp",
60        "binderReadParcelIface-ndk",
61    ],
62
63    target: {
64        android: {
65            shared_libs: [
66                "libbinder_ndk",
67                "libbinder",
68                "libutils",
69            ],
70        },
71        host: {
72            static_libs: [
73                "libbinder_ndk",
74                "libbinder",
75                "libutils",
76            ],
77        },
78        darwin: {
79            enabled: false,
80        },
81    },
82    // This flag enables verbose output in the fuzz target, and is very useful
83    // for debugging a failure. If you are trying to diagnose how a crash was
84    // produced, you may find uncommenting the below line very useful.
85    // cflags: ["-DENABLE_LOG_FUZZ"],
86}
87
88cc_library_static {
89    name: "libbinder_random_parcel",
90    host_supported: true,
91    vendor_available: true,
92    target: {
93        darwin: {
94            enabled: false,
95        },
96    },
97    srcs: [
98        "random_binder.cpp",
99        "random_fd.cpp",
100        "random_parcel.cpp",
101        "libbinder_driver.cpp",
102        "libbinder_ndk_driver.cpp",
103    ],
104    shared_libs: [
105        "libbase",
106        "libbinder",
107        "libbinder_ndk",
108        "libcutils",
109        "libutils",
110    ],
111    local_include_dirs: ["include_random_parcel"],
112    export_include_dirs: ["include_random_parcel"],
113}
114
115cc_library {
116    name: "libbinder_random_parcel_seeds",
117    host_supported: true,
118    vendor_available: true,
119    target: {
120        darwin: {
121            enabled: false,
122        },
123    },
124    srcs: [
125        "random_parcel_seeds.cpp",
126    ],
127    shared_libs: [
128        "libbase",
129        "libbinder",
130        "libbinder_ndk",
131        "libcutils",
132        "libutils",
133    ],
134    static_libs: [
135        "libbinder_random_parcel",
136    ],
137    include_dirs: [
138        "bionic/libc/kernel/android/uapi/",
139        "bionic/libc/kernel/uapi/",
140    ],
141    local_include_dirs: [
142        "include_random_parcel_seeds",
143    ],
144    export_include_dirs: ["include_random_parcel_seeds"],
145}
146
147cc_binary_host {
148    name: "binder2corpus",
149    static_libs: [
150        "libbinder_random_parcel",
151        "libbinder_random_parcel_seeds",
152    ],
153    cflags: [
154        "-DBINDER_WITH_KERNEL_IPC",
155    ],
156    srcs: [
157        "binder2corpus/binder2corpus.cpp",
158    ],
159    shared_libs: [
160        "libbase",
161        "libbinder",
162        "libutils",
163        "libcutils",
164    ],
165}
166