xref: /aosp_15_r20/frameworks/av/drm/mediadrm/plugins/clearkey/aidl/Android.bp (revision ec779b8e0859a360c3d303172224686826e6e0e1)
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 "hardware_interfaces_license"
5    // to get the below license kinds:
6    //   SPDX-license-identifier-Apache-2.0
7    default_applicable_licenses: ["frameworks_av_license"],
8}
9
10cc_defaults {
11    name: "aidl_clearkey_service_defaults-use-shared-deps",
12
13    shared_libs: [
14        "android.hardware.drm-V1-ndk",
15        "libbase",
16        "libbinder_ndk",
17        "libcrypto",
18        "liblog",
19        "libprotobuf-cpp-lite",
20        "libutils",
21    ],
22
23    static_libs: [
24        "android.hardware.common-V2-ndk",
25        "libclearkeybase",
26        "libjsoncpp",
27    ],
28}
29
30cc_defaults {
31    name: "aidl_clearkey_service_defaults-use-static-deps",
32
33    stl: "c++_static",
34
35    shared_libs: [
36        "libbinder_ndk",
37        "libcrypto",
38        "liblog",
39    ],
40
41    static_libs: [
42        "android.hardware.common-V2-ndk",
43        "android.hardware.drm.common-V1-ndk",
44        "android.hardware.drm-V1-ndk",
45        "libbase",
46        "libclearkeybase",
47        "libjsoncpp",
48        "libprotobuf-cpp-lite",
49        "libutils",
50    ],
51}
52
53cc_defaults {
54    name: "aidl_clearkey_service_defaults",
55    vendor: true,
56
57    srcs: [
58        "CreatePluginFactories.cpp",
59        "CryptoPlugin.cpp",
60        "DrmFactory.cpp",
61        "DrmPlugin.cpp",
62    ],
63
64    relative_install_path: "hw",
65
66    cflags: [
67        "-Wall",
68        "-Werror",
69        "-Wthread-safety",
70    ],
71
72    include_dirs: ["frameworks/av/include"],
73
74    local_include_dirs: ["include"],
75
76    sanitize: {
77        integer_overflow: true,
78    },
79}
80
81cc_binary {
82    name: "android.hardware.drm-service.clearkey",
83    defaults: [
84        "aidl_clearkey_service_defaults",
85        "aidl_clearkey_service_defaults-use-shared-deps",
86    ],
87    srcs: ["Service.cpp"],
88    init_rc: ["android.hardware.drm-service.clearkey.rc"],
89    vintf_fragment_modules: ["android.hardware.drm-service.clearkey.xml_vintf"],
90}
91
92cc_binary {
93    name: "android.hardware.drm-service-lazy.clearkey",
94    defaults: [
95        "aidl_clearkey_service_defaults",
96        "aidl_clearkey_service_defaults-use-shared-deps",
97    ],
98    overrides: ["android.hardware.drm-service.clearkey"],
99    srcs: ["ServiceLazy.cpp"],
100    init_rc: ["android.hardware.drm-service-lazy.clearkey.rc"],
101    vintf_fragment_modules: ["android.hardware.drm-service.clearkey.xml_vintf"],
102}
103
104vintf_fragment {
105    name: "android.hardware.drm-service.clearkey.xml_vintf",
106    src: "android.hardware.drm-service.clearkey.xml",
107    vendor: true,
108}
109
110cc_binary {
111    name: "android.hardware.drm-service.clearkey.apex",
112    stem: "android.hardware.drm-service.clearkey",
113    defaults: [
114        "aidl_clearkey_service_defaults",
115        "aidl_clearkey_service_defaults-use-static-deps",
116    ],
117    srcs: ["Service.cpp"],
118    installable: false, // installed in APEX
119}
120
121cc_binary {
122    name: "android.hardware.drm-service-lazy.clearkey.apex",
123    stem: "android.hardware.drm-service-lazy.clearkey",
124    defaults: [
125        "aidl_clearkey_service_defaults",
126        "aidl_clearkey_service_defaults-use-static-deps",
127    ],
128    srcs: ["ServiceLazy.cpp"],
129    installable: false, // installed in APEX
130}
131
132phony {
133    name: "[email protected]",
134    required: [
135        "com.android.hardware.drm.clearkey",
136    ],
137    vendor: true,
138}
139
140cc_defaults {
141    name: "fuzz_aidl_clearkey_service_defaults",
142
143    srcs: [
144        "CreatePluginFactories.cpp",
145        "CryptoPlugin.cpp",
146        "DrmFactory.cpp",
147        "DrmPlugin.cpp",
148    ],
149
150    relative_install_path: "hw",
151
152    cflags: [
153        "-Wall",
154        "-Werror",
155        "-Wthread-safety",
156    ],
157
158    include_dirs: ["frameworks/av/include"],
159
160    shared_libs: [
161        "android.hardware.drm-V1-ndk",
162        "libbase",
163        "libbinder_ndk",
164        "libcrypto",
165        "liblog",
166        "libprotobuf-cpp-lite",
167        "libutils",
168    ],
169
170    static_libs: [
171        "android.hardware.common-V2-ndk",
172        "libclearkeybase_fuzz",
173        "libjsoncpp",
174    ],
175
176    local_include_dirs: ["include"],
177
178    sanitize: {
179        integer_overflow: true,
180    },
181}
182
183cc_fuzz {
184    name: "android.hardware.drm-service.clearkey.aidl_fuzzer",
185    defaults: [
186        "fuzz_aidl_clearkey_service_defaults",
187        "service_fuzzer_defaults",
188    ],
189    srcs: ["fuzzer.cpp"],
190    fuzz_config: {
191        cc: [
192            "[email protected]",
193        ],
194    },
195}
196
197apex {
198    name: "com.android.hardware.drm.clearkey",
199    manifest: "manifest.json",
200    file_contexts: "file_contexts",
201    key: "com.android.hardware.key",
202    certificate: ":com.android.hardware.certificate",
203    vendor: true,
204    updatable: false,
205
206    binaries: [
207        "android.hardware.drm-service.clearkey.apex",
208    ],
209    prebuilts: [
210        "android.hardware.drm-service.clearkey.apex.rc",
211        "android.hardware.drm-service.clearkey.xml",
212    ],
213    overrides: [
214        "android.hardware.drm-service.clearkey",
215    ],
216}
217
218prebuilt_etc {
219    name: "android.hardware.drm-service.clearkey.apex.rc",
220    src: ":gen-android.hardware.drm-service.clearkey.apex.rc",
221    installable: false,
222}
223
224genrule {
225    name: "gen-android.hardware.drm-service.clearkey.apex.rc",
226    srcs: ["android.hardware.drm-service.clearkey.rc"],
227    out: ["android.hardware.drm-service.clearkey.apex.rc"],
228    cmd: "sed -E 's%/vendor/bin/%/apex/com.android.hardware.drm.clearkey/bin/%' $(in) > $(out)",
229}
230
231prebuilt_etc {
232    name: "android.hardware.drm-service.clearkey.xml",
233    src: "android.hardware.drm-service.clearkey.xml",
234    sub_dir: "vintf",
235    installable: false,
236}
237
238apex {
239    name: "com.android.hardware.drm.clearkey.lazy",
240    manifest: "manifest.json",
241    file_contexts: "file_contexts",
242    key: "com.android.hardware.key",
243    certificate: ":com.android.hardware.certificate",
244    vendor: true,
245    updatable: false,
246
247    binaries: [
248        "android.hardware.drm-service-lazy.clearkey.apex",
249    ],
250    prebuilts: [
251        "android.hardware.drm-service-lazy.clearkey.apex.rc",
252        "android.hardware.drm-service.clearkey.xml",
253    ],
254    overrides: [
255        "android.hardware.drm-service-lazy.clearkey",
256        "android.hardware.drm-service.clearkey",
257        "com.android.hardware.drm.clearkey",
258    ],
259}
260
261prebuilt_etc {
262    name: "android.hardware.drm-service-lazy.clearkey.apex.rc",
263    src: ":gen-android.hardware.drm-service-lazy.clearkey.apex.rc",
264    installable: false,
265}
266
267genrule {
268    name: "gen-android.hardware.drm-service-lazy.clearkey.apex.rc",
269    srcs: ["android.hardware.drm-service-lazy.clearkey.rc"],
270    out: ["android.hardware.drm-service-lazy.clearkey.apex.rc"],
271    cmd: "sed -E 's%/vendor/bin/%/apex/com.android.hardware.drm.clearkey/bin/%' $(in) > $(out)",
272}
273