blob: 67ee8efbb375567e6763f4448036f3ab7e8be63d [file] [log] [blame]
Tao Bao30e31142019-04-09 00:12:30 -07001// Copyright (C) 2019 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
Tao Bao3c7b2a62019-08-07 12:24:20 -070015//
16// Module-specific defaults.
17//
18// For module X, if we need to build it both as a library and an executable:
19// - A default rule `releasetools_X_defaults` is created, which lists `srcs`, `libs` and
20// `required` properties.
21// - `python_library_host` and `python_binary_host` are created by listing
22// `releasetools_X_defaults` in their defaults.
23//
24
Bob Badour03905802021-02-12 21:42:54 -080025package {
26 default_applicable_licenses: ["Android-Apache-2.0"],
27}
28
Tao Bao3c7b2a62019-08-07 12:24:20 -070029python_defaults {
30 name: "releasetools_add_img_to_target_files_defaults",
31 srcs: [
32 "add_img_to_target_files.py",
33 ],
34 libs: [
Kelvin Zhang5f0fcee2021-01-19 15:30:46 -050035 "ota_metadata_proto",
36 "releasetools_apex_utils",
Tao Bao3c7b2a62019-08-07 12:24:20 -070037 "releasetools_build_image",
38 "releasetools_build_super_image",
39 "releasetools_common",
40 ],
41 required: [
42 "care_map_generator",
43 ],
44}
45
46python_defaults {
47 name: "releasetools_build_image_defaults",
48 srcs: [
49 "build_image.py",
50 ],
51 libs: [
52 "releasetools_common",
Inseob Kim9cda3972021-10-12 22:59:12 +090053 "releasetools_fsverity_metadata_generator",
Tao Bao3c7b2a62019-08-07 12:24:20 -070054 "releasetools_verity_utils",
55 ],
56 required: [
57 "blk_alloc_to_base_fs",
58 "e2fsck",
David Anderson94ad5bb2022-03-04 10:57:58 -080059 "fsck.erofs",
60 "img2simg",
61 "mkfs.erofs",
Yifan Hong77023452020-08-25 16:15:16 -070062 "mkuserimg_mke2fs",
Tao Bao3c7b2a62019-08-07 12:24:20 -070063 "simg2img",
64 "tune2fs",
Cole Faustb0002082022-09-05 18:34:56 -070065 "mkf2fsuserimg",
Jaegeuk Kim1f50a362021-06-08 18:24:46 -070066 "fsck.f2fs",
Tao Bao3c7b2a62019-08-07 12:24:20 -070067 ],
68}
69
70python_defaults {
71 name: "releasetools_build_super_image_defaults",
72 srcs: [
73 "build_super_image.py",
74 ],
75 libs: [
76 "releasetools_common",
77 ],
78}
79
80python_defaults {
81 name: "releasetools_img_from_target_files_defaults",
82 srcs: [
83 "img_from_target_files.py",
84 ],
85 libs: [
86 "releasetools_build_super_image",
87 "releasetools_common",
88 ],
89}
90
91python_defaults {
Yifan Honge3ba82c2019-08-21 13:29:30 -070092 name: "releasetools_check_target_files_vintf_defaults",
93 srcs: [
94 "check_target_files_vintf.py",
95 ],
96 libs: [
97 "releasetools_common",
98 ],
99 required: [
100 "checkvintf",
101 ],
102}
103
Tianjiea2076132020-08-19 17:25:32 -0700104python_library_host {
105 name: "ota_metadata_proto",
Tianjiea2076132020-08-19 17:25:32 -0700106 srcs: [
107 "ota_metadata.proto",
108 ],
109 proto: {
110 canonical_path_from_root: false,
111 },
112}
113
Kelvin Zhanga3a74b62021-05-14 17:18:43 -0400114cc_library_static {
115 name: "ota_metadata_proto_cc",
116 srcs: [
117 "ota_metadata.proto",
118 ],
119 host_supported: true,
120 recovery_available: true,
121 proto: {
122 canonical_path_from_root: false,
123 type: "lite",
124 export_proto_headers: true,
125 },
126}
127
Kelvin Zhang2b6a9c32021-04-12 17:24:26 -0400128java_library_static {
129 name: "ota_metadata_proto_java",
130 host_supported: true,
131 proto: {
132 type: "nano",
133 },
134 srcs: ["ota_metadata.proto"],
135 sdk_version: "9",
136 target: {
137 android: {
138 jarjar_rules: "jarjar-rules.txt",
139 },
140 host: {
141 static_libs: ["libprotobuf-java-nano"],
142 },
143 },
144 visibility: ["//frameworks/base:__subpackages__"]
145}
146
Yifan Honge3ba82c2019-08-21 13:29:30 -0700147python_defaults {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700148 name: "releasetools_ota_from_target_files_defaults",
149 srcs: [
150 "edify_generator.py",
Kelvin Zhangcff4d762020-07-29 16:37:51 -0400151 "non_ab_ota.py",
Tianjiea2076132020-08-19 17:25:32 -0700152 "ota_from_target_files.py",
Kelvin Zhangcff4d762020-07-29 16:37:51 -0400153 "ota_utils.py",
Kelvin Zhang059bf6e2022-08-12 14:03:41 -0700154 "payload_signer.py",
Tianjiea2076132020-08-19 17:25:32 -0700155 "target_files_diff.py",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700156 ],
157 libs: [
Tianjiea2076132020-08-19 17:25:32 -0700158 "ota_metadata_proto",
Yifan Hong9276cf02019-08-21 16:37:04 -0700159 "releasetools_check_target_files_vintf",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700160 "releasetools_common",
161 "releasetools_verity_utils",
Mohammad Samiul Islam9fd58862021-01-06 13:33:25 +0000162 "apex_manifest",
Kelvin Zhang766eea72021-06-03 09:36:08 -0400163 "care_map_proto_py",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700164 ],
165 required: [
166 "brillo_update_payload",
Yifan Hong09298552019-09-04 11:49:01 -0700167 "checkvintf",
Yi-Yo Chiang36054e22022-01-08 22:29:30 +0800168 "generate_gki_certificate",
jiajia tangf3f842b2021-03-17 21:49:44 +0800169 "minigzip",
Yifan Hong125d0b62020-09-24 17:07:03 -0700170 "lz4",
171 "toybox",
Mohammad Samiul Islam9fd58862021-01-06 13:33:25 +0000172 "unpack_bootimg",
173 "deapexer",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700174 ],
Yo Chiang096c5152020-08-07 04:22:18 +0000175 target: {
176 darwin: {
177 // required module "brillo_update_payload" is disabled on darwin
178 enabled: false,
179 },
180 },
Tao Bao3c7b2a62019-08-07 12:24:20 -0700181}
182
183//
184// Host libraries.
185//
186
Tao Bao30e31142019-04-09 00:12:30 -0700187python_library_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700188 name: "releasetools_add_img_to_target_files",
189 defaults: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700190 "releasetools_add_img_to_target_files_defaults",
191 ],
192}
193
194python_library_host {
195 name: "releasetools_apex_utils",
Tao Bao005305a2019-08-05 13:00:44 -0700196 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700197 "apex_utils.py",
198 ],
199 libs: [
Mohammad Samiul Islam9fd58862021-01-06 13:33:25 +0000200 "apex_manifest",
201 "ota_metadata_proto",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700202 "releasetools_common",
203 ],
204}
205
206python_library_host {
207 name: "releasetools_build_image",
208 defaults: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700209 "releasetools_build_image_defaults",
210 ],
211}
212
213python_library_host {
214 name: "releasetools_build_super_image",
215 defaults: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700216 "releasetools_build_super_image_defaults",
Tao Bao005305a2019-08-05 13:00:44 -0700217 ],
218}
219
220python_library_host {
Yifan Hongccb86fe2019-08-22 15:52:26 -0700221 name: "releasetools_check_target_files_vintf",
222 defaults: [
Yifan Hongccb86fe2019-08-22 15:52:26 -0700223 "releasetools_check_target_files_vintf_defaults",
224 ],
225}
226
227python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700228 name: "releasetools_common",
Tao Bao30e31142019-04-09 00:12:30 -0700229 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700230 "blockimgdiff.py",
Tao Bao30e31142019-04-09 00:12:30 -0700231 "common.py",
Tianjie Xu41976c72019-07-03 13:57:01 -0700232 "images.py",
Tao Bao30e31142019-04-09 00:12:30 -0700233 "rangelib.py",
Tao Bao30e31142019-04-09 00:12:30 -0700234 "sparse_img.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700235 ],
236 // Only the tools that are referenced directly are listed as required modules. For example,
237 // `avbtool` is not here, as the script always uses the one from info_dict['avb_avbtool'].
238 required: [
changho.shin0f125362019-07-08 10:59:00 +0900239 "aapt2",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700240 "boot_signer",
241 "brotli",
242 "bsdiff",
Yi-Yo Chiang36054e22022-01-08 22:29:30 +0800243 "generate_gki_certificate",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700244 "imgdiff",
245 "minigzip",
J. Avila98cd4cc2020-06-10 20:09:10 +0000246 "lz4",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700247 "mkbootfs",
Luca Stefani3e4b4482020-03-27 14:00:23 +0100248 "signapk",
Yifan Hong14a87122021-01-12 13:26:25 -0800249 "toybox",
250 "unpack_bootimg",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700251 ],
252}
253
254python_library_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700255 name: "releasetools_img_from_target_files",
256 defaults: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700257 "releasetools_img_from_target_files_defaults",
258 ],
259}
260
261python_library_host {
262 name: "releasetools_ota_from_target_files",
263 defaults: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700264 "releasetools_ota_from_target_files_defaults",
265 ],
266}
267
268python_library_host {
Inseob Kim9cda3972021-10-12 22:59:12 +0900269 name: "releasetools_fsverity_metadata_generator",
270 srcs: [
271 "fsverity_metadata_generator.py",
272 ],
Inseob Kimf69346e2021-10-13 15:16:33 +0900273 libs: [
274 "fsverity_digests_proto_python",
Inseob Kim9cda3972021-10-12 22:59:12 +0900275 ],
276}
277
278python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700279 name: "releasetools_verity_utils",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700280 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700281 "verity_utils.py",
282 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700283 required: [
284 "append2simg",
285 "build_verity_metadata",
286 "build_verity_tree",
287 "fec",
288 ],
289}
290
Tao Bao3c7b2a62019-08-07 12:24:20 -0700291//
292// Host binaries.
293//
294
Tao Bao2bbb07c2019-05-07 13:12:21 -0700295python_defaults {
296 name: "releasetools_binary_defaults",
297 version: {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700298 py3: {
Cole Faustc76931f2021-11-04 16:59:39 -0700299 embedded_launcher: true,
Tao Bao2bbb07c2019-05-07 13:12:21 -0700300 },
301 },
Kiyoung Kim0a8d2622020-03-24 09:36:03 +0900302 // TODO (b/140144201) Build imgdiff from releasetools_common
303 required: [
304 "aapt2",
305 "boot_signer",
306 "brotli",
307 "bsdiff",
Mohammad Samiul Islamf4909b42021-02-01 20:43:41 +0000308 "deapexer",
Yi-Yo Chiang36054e22022-01-08 22:29:30 +0800309 "generate_gki_certificate",
Kiyoung Kim0a8d2622020-03-24 09:36:03 +0900310 "imgdiff",
311 "minigzip",
Luca Stefanie0fc4ca2020-09-12 06:08:16 +0000312 "lz4",
Kiyoung Kim0a8d2622020-03-24 09:36:03 +0900313 "mkbootfs",
Luca Stefanie0fc4ca2020-09-12 06:08:16 +0000314 "signapk",
Yifan Hong14a87122021-01-12 13:26:25 -0800315 "toybox",
316 "unpack_bootimg",
Kiyoung Kim0a8d2622020-03-24 09:36:03 +0900317 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700318}
319
320python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700321 name: "add_img_to_target_files",
322 defaults: [
323 "releasetools_binary_defaults",
324 "releasetools_add_img_to_target_files_defaults",
325 ],
326}
327
328python_binary_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700329 name: "build_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700330 defaults: [
331 "releasetools_binary_defaults",
332 "releasetools_build_image_defaults",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700333 ],
334}
335
336python_binary_host {
337 name: "build_super_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700338 defaults: [
339 "releasetools_binary_defaults",
340 "releasetools_build_super_image_defaults",
341 ],
342}
343
344python_binary_host {
Yifan Hong3a7c2ef2019-11-01 18:23:19 +0000345 name: "check_partition_sizes",
346 srcs: [
347 "check_partition_sizes.py",
348 ],
349 libs: [
350 "releasetools_common",
351 ],
352 defaults: [
353 "releasetools_binary_defaults",
354 ],
355}
356
357python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700358 name: "check_ota_package_signature",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700359 defaults: ["releasetools_binary_defaults"],
360 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700361 "check_ota_package_signature.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700362 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700363 libs: [
364 "releasetools_common",
365 ],
Tao Bao3c7b2a62019-08-07 12:24:20 -0700366 required: [
367 "delta_generator",
368 ],
Yo Chiang096c5152020-08-07 04:22:18 +0000369 target: {
370 darwin: {
371 // required module "delta_generator" is disabled on darwin
372 enabled: false,
373 },
374 },
Tao Bao3c7b2a62019-08-07 12:24:20 -0700375}
376
377python_binary_host {
378 name: "check_target_files_signatures",
379 defaults: ["releasetools_binary_defaults"],
380 srcs: [
381 "check_target_files_signatures.py",
382 ],
383 libs: [
384 "releasetools_common",
385 ],
386 required: [
Elliott Hughes16a5cac2021-05-14 15:27:23 -0700387 "aapt2",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700388 ],
389}
390
391python_binary_host {
Yifan Honge3ba82c2019-08-21 13:29:30 -0700392 name: "check_target_files_vintf",
393 defaults: [
394 "releasetools_binary_defaults",
395 "releasetools_check_target_files_vintf_defaults"
396 ],
397}
398
399python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700400 name: "img_from_target_files",
401 defaults: [
402 "releasetools_binary_defaults",
403 "releasetools_img_from_target_files_defaults",
404 ],
Tao Bao30e31142019-04-09 00:12:30 -0700405}
406
Daniel Normanb8d52a22020-10-26 17:55:00 -0700407python_defaults {
408 name: "releasetools_find_shareduid_violation_defaults",
409 srcs: [
410 "find_shareduid_violation.py",
411 ],
412 libs: [
413 "releasetools_common",
414 ],
415}
416
417python_binary_host {
418 name: "find_shareduid_violation",
419 defaults: [
420 "releasetools_binary_defaults",
421 "releasetools_find_shareduid_violation_defaults",
422 ],
423}
424
425python_library_host {
426 name: "releasetools_find_shareduid_violation",
427 defaults: [
428 "releasetools_find_shareduid_violation_defaults",
Daniel Normanb8d52a22020-10-26 17:55:00 -0700429 ],
430}
431
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700432python_binary_host {
Tao Baoe11a4602019-08-06 23:21:23 -0700433 name: "make_recovery_patch",
434 defaults: ["releasetools_binary_defaults"],
435 srcs: [
436 "make_recovery_patch.py",
437 ],
438 libs: [
439 "releasetools_common",
440 ],
441}
442
443python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700444 name: "ota_from_target_files",
445 defaults: [
446 "releasetools_binary_defaults",
447 "releasetools_ota_from_target_files_defaults",
448 ],
449}
450
451python_binary_host {
452 name: "ota_package_parser",
453 defaults: ["releasetools_binary_defaults"],
454 srcs: [
455 "ota_package_parser.py",
456 "rangelib.py",
Tao Bao8821d642019-08-05 12:05:45 -0700457 ],
458}
459
Tao Baoe11a4602019-08-06 23:21:23 -0700460python_binary_host {
461 name: "sparse_img",
462 defaults: ["releasetools_binary_defaults"],
463 srcs: [
464 "rangelib.py",
465 "sparse_img.py",
466 ],
Tao Baoe11a4602019-08-06 23:21:23 -0700467}
468
Tao Bao3c7b2a62019-08-07 12:24:20 -0700469python_binary_host {
470 name: "sign_apex",
471 defaults: ["releasetools_binary_defaults"],
472 srcs: [
473 "sign_apex.py",
474 ],
475 libs: [
476 "releasetools_apex_utils",
477 "releasetools_common",
478 ],
479}
480
481python_binary_host {
482 name: "sign_target_files_apks",
483 defaults: ["releasetools_binary_defaults"],
484 srcs: [
485 "sign_target_files_apks.py",
486 ],
487 libs: [
488 "releasetools_add_img_to_target_files",
489 "releasetools_apex_utils",
490 "releasetools_common",
491 ],
492}
493
494python_binary_host {
495 name: "validate_target_files",
496 defaults: ["releasetools_binary_defaults"],
497 srcs: [
498 "validate_target_files.py",
499 ],
500 libs: [
501 "releasetools_common",
502 ],
503}
504
Jiyong Parkb92b8f42021-03-15 23:13:42 +0900505python_binary_host {
506 name: "verity_utils",
507 defaults: ["releasetools_binary_defaults"],
508 srcs: [
509 "verity_utils.py",
510 ],
511 libs: [
512 "releasetools_common",
513 ],
514 required: [
515 "append2simg",
516 "build_verity_metadata",
517 "build_verity_tree",
518 "fec",
519 ],
520}
521
Inseob Kim2d034932021-12-13 14:04:00 +0900522python_binary_host {
Inseob Kim135c1f12022-01-06 17:22:07 +0900523 name: "fsverity_metadata_generator",
Inseob Kim293112d2022-02-16 11:22:03 +0900524 defaults: ["releasetools_binary_defaults"],
Inseob Kim135c1f12022-01-06 17:22:07 +0900525 srcs: [
526 "fsverity_metadata_generator.py",
Inseob Kim2d034932021-12-13 14:04:00 +0900527 ],
528 required: [
529 "fsverity",
530 ],
531}
532
Tao Bao3c7b2a62019-08-07 12:24:20 -0700533//
534// Tests.
535//
536
Tao Baoca82fc92019-05-01 21:58:03 -0700537python_defaults {
538 name: "releasetools_test_defaults",
Tao Bao30e31142019-04-09 00:12:30 -0700539 srcs: [
Tao Bao2bbb07c2019-05-07 13:12:21 -0700540 "check_ota_package_signature.py",
Yifan Hong3a7c2ef2019-11-01 18:23:19 +0000541 "check_partition_sizes.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700542 "check_target_files_signatures.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700543 "make_recovery_patch.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700544 "ota_package_parser.py",
545 "sign_apex.py",
546 "sign_target_files_apks.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700547 "validate_target_files.py",
Daniel Norman2b0b9ca2022-03-02 16:12:08 -0800548 ":releasetools_merge_sources",
549 ":releasetools_merge_tests",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700550
Tao Bao30e31142019-04-09 00:12:30 -0700551 "test_*.py",
552 ],
553 libs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700554 "releasetools_add_img_to_target_files",
555 "releasetools_apex_utils",
556 "releasetools_build_image",
Tao Bao005305a2019-08-05 13:00:44 -0700557 "releasetools_build_super_image",
Yifan Hongccb86fe2019-08-22 15:52:26 -0700558 "releasetools_check_target_files_vintf",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700559 "releasetools_common",
Daniel Normanb8d52a22020-10-26 17:55:00 -0700560 "releasetools_find_shareduid_violation",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700561 "releasetools_img_from_target_files",
562 "releasetools_ota_from_target_files",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700563 "releasetools_verity_utils",
Tao Bao30e31142019-04-09 00:12:30 -0700564 ],
565 data: [
Yifan Hongccb86fe2019-08-22 15:52:26 -0700566 "testdata/**/*",
Mohammad Samiul Islam9fd58862021-01-06 13:33:25 +0000567 ":com.android.apex.compressed.v1",
568 ":com.android.apex.compressed.v1_original",
Tao Bao30e31142019-04-09 00:12:30 -0700569 ],
Yo Chiang096c5152020-08-07 04:22:18 +0000570 target: {
571 darwin: {
572 // libs dep "releasetools_ota_from_target_files" is disabled on darwin
573 enabled: false,
574 },
575 },
Mohammad Samiul Islam9fd58862021-01-06 13:33:25 +0000576 required: [
577 "deapexer",
578 ],
Tao Baoca82fc92019-05-01 21:58:03 -0700579}
580
581python_test_host {
582 name: "releasetools_test",
583 defaults: ["releasetools_test_defaults"],
584 main: "test_utils.py",
Cole Faustc76931f2021-11-04 16:59:39 -0700585 // Don't use embedded_launcher, atest will try (but may fail) to load libc++.so from
586 // host, because the test executable won't be able to find the needed libs via its
587 // runpath.
Julien Desprez6d9e78f2020-12-21 13:56:05 -0800588 test_options: {
589 unit_test: true,
590 },
Tao Bao30e31142019-04-09 00:12:30 -0700591}