/tools/releasetools/Android.bp
Makefile | 666 lines | 616 code | 50 blank | 0 comment | 2 complexity | 5c59ab2081717eadf69a189defe77419 MD5 | raw file
- // Copyright (C) 2019 The Android Open Source Project
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- //
- // Module-specific defaults.
- //
- // For module X, if we need to build it both as a library and an executable:
- // - A default rule `releasetools_X_defaults` is created, which lists `srcs`, `libs` and
- // `required` properties.
- // - `python_library_host` and `python_binary_host` are created by listing
- // `releasetools_X_defaults` in their defaults.
- //
- package {
- default_applicable_licenses: ["Android-Apache-2.0"],
- }
- python_defaults {
- name: "releasetools_add_img_to_target_files_defaults",
- srcs: [
- "add_img_to_target_files.py",
- ],
- libs: [
- "ota_metadata_proto",
- "releasetools_apex_utils",
- "releasetools_build_image",
- "releasetools_build_super_image",
- "releasetools_common",
- ],
- required: [
- "care_map_generator",
- ],
- }
- python_defaults {
- name: "releasetools_build_image_defaults",
- srcs: [
- "build_image.py",
- ],
- libs: [
- "releasetools_common",
- "releasetools_verity_utils",
- ],
- required: [
- "blk_alloc_to_base_fs",
- "e2fsck",
- "mkerofsimage.sh",
- "mkuserimg_mke2fs",
- "simg2img",
- "tune2fs",
- "mkf2fsuserimg.sh",
- "fsck.f2fs",
- ],
- }
- python_defaults {
- name: "releasetools_build_super_image_defaults",
- srcs: [
- "build_super_image.py",
- ],
- libs: [
- "releasetools_common",
- ],
- }
- python_defaults {
- name: "releasetools_img_from_target_files_defaults",
- srcs: [
- "img_from_target_files.py",
- ],
- libs: [
- "releasetools_build_super_image",
- "releasetools_common",
- ],
- }
- python_defaults {
- name: "releasetools_check_target_files_vintf_defaults",
- srcs: [
- "check_target_files_vintf.py",
- ],
- libs: [
- "releasetools_common",
- ],
- required: [
- "checkvintf",
- ],
- }
- python_library_host {
- name: "ota_metadata_proto",
- version: {
- py2: {
- enabled: true,
- },
- py3: {
- enabled: true,
- },
- },
- srcs: [
- "ota_metadata.proto",
- ],
- proto: {
- canonical_path_from_root: false,
- },
- }
- cc_library_static {
- name: "ota_metadata_proto_cc",
- srcs: [
- "ota_metadata.proto",
- ],
- host_supported: true,
- recovery_available: true,
- proto: {
- canonical_path_from_root: false,
- type: "lite",
- export_proto_headers: true,
- },
- }
- java_library_static {
- name: "ota_metadata_proto_java",
- host_supported: true,
- proto: {
- type: "nano",
- },
- srcs: ["ota_metadata.proto"],
- sdk_version: "9",
- target: {
- android: {
- jarjar_rules: "jarjar-rules.txt",
- },
- host: {
- static_libs: ["libprotobuf-java-nano"],
- },
- },
- visibility: ["//frameworks/base:__subpackages__"]
- }
- python_defaults {
- name: "releasetools_ota_from_target_files_defaults",
- srcs: [
- "edify_generator.py",
- "non_ab_ota.py",
- "ota_from_target_files.py",
- "ota_utils.py",
- "target_files_diff.py",
- ],
- libs: [
- "ota_metadata_proto",
- "releasetools_check_target_files_vintf",
- "releasetools_common",
- "releasetools_verity_utils",
- "apex_manifest",
- ],
- required: [
- "brillo_update_payload",
- "checkvintf",
- "minigzip",
- "lz4",
- "toybox",
- "unpack_bootimg",
- "deapexer",
- ],
- target: {
- darwin: {
- // required module "brillo_update_payload" is disabled on darwin
- enabled: false,
- },
- },
- }
- //
- // Host libraries.
- //
- python_defaults {
- name: "releasetools_library_defaults",
- version: {
- py2: {
- enabled: true,
- },
- py3: {
- enabled: true,
- },
- },
- }
- python_library_host {
- name: "releasetools_add_img_to_target_files",
- defaults: [
- "releasetools_library_defaults",
- "releasetools_add_img_to_target_files_defaults",
- ],
- }
- python_library_host {
- name: "releasetools_apex_utils",
- defaults: ["releasetools_library_defaults"],
- srcs: [
- "apex_utils.py",
- ],
- libs: [
- "apex_manifest",
- "ota_metadata_proto",
- "releasetools_common",
- ],
- }
- python_library_host {
- name: "releasetools_build_image",
- defaults: [
- "releasetools_library_defaults",
- "releasetools_build_image_defaults",
- ],
- }
- python_library_host {
- name: "releasetools_build_super_image",
- defaults: [
- "releasetools_library_defaults",
- "releasetools_build_super_image_defaults",
- ],
- }
- python_library_host {
- name: "releasetools_check_target_files_vintf",
- defaults: [
- "releasetools_library_defaults",
- "releasetools_check_target_files_vintf_defaults",
- ],
- }
- python_library_host {
- name: "releasetools_common",
- defaults: ["releasetools_library_defaults"],
- srcs: [
- "blockimgdiff.py",
- "common.py",
- "images.py",
- "rangelib.py",
- "sparse_img.py",
- ],
- // Only the tools that are referenced directly are listed as required modules. For example,
- // `avbtool` is not here, as the script always uses the one from info_dict['avb_avbtool'].
- required: [
- "aapt2",
- "boot_signer",
- "brotli",
- "bsdiff",
- "imgdiff",
- "minigzip",
- "lz4",
- "mkbootfs",
- "signapk",
- "toybox",
- "unpack_bootimg",
- ],
- }
- python_library_host {
- name: "releasetools_img_from_target_files",
- defaults: [
- "releasetools_library_defaults",
- "releasetools_img_from_target_files_defaults",
- ],
- }
- python_library_host {
- name: "releasetools_ota_from_target_files",
- defaults: [
- "releasetools_library_defaults",
- "releasetools_ota_from_target_files_defaults",
- ],
- }
- python_library_host {
- name: "releasetools_verity_utils",
- defaults: ["releasetools_library_defaults"],
- srcs: [
- "verity_utils.py",
- ],
- required: [
- "append2simg",
- "build_verity_metadata",
- "build_verity_tree",
- "fec",
- ],
- }
- //
- // Host binaries.
- //
- python_defaults {
- name: "releasetools_binary_defaults",
- version: {
- py2: {
- enabled: true,
- embedded_launcher: true,
- },
- py3: {
- enabled: false,
- embedded_launcher: false,
- },
- },
- // TODO (b/140144201) Build imgdiff from releasetools_common
- required: [
- "aapt2",
- "boot_signer",
- "brotli",
- "bsdiff",
- "deapexer",
- "imgdiff",
- "minigzip",
- "lz4",
- "mkbootfs",
- "signapk",
- "toybox",
- "unpack_bootimg",
- ],
- }
- python_binary_host {
- name: "add_img_to_target_files",
- defaults: [
- "releasetools_binary_defaults",
- "releasetools_add_img_to_target_files_defaults",
- ],
- }
- python_binary_host {
- name: "build_image",
- defaults: [
- "releasetools_binary_defaults",
- "releasetools_build_image_defaults",
- ],
- }
- python_binary_host {
- name: "build_super_image",
- defaults: [
- "releasetools_binary_defaults",
- "releasetools_build_super_image_defaults",
- ],
- }
- python_binary_host {
- name: "check_partition_sizes",
- srcs: [
- "check_partition_sizes.py",
- ],
- libs: [
- "releasetools_common",
- ],
- defaults: [
- "releasetools_binary_defaults",
- ],
- }
- python_binary_host {
- name: "check_ota_package_signature",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "check_ota_package_signature.py",
- ],
- libs: [
- "releasetools_common",
- ],
- required: [
- "delta_generator",
- ],
- target: {
- darwin: {
- // required module "delta_generator" is disabled on darwin
- enabled: false,
- },
- },
- }
- python_binary_host {
- name: "check_target_files_signatures",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "check_target_files_signatures.py",
- ],
- libs: [
- "releasetools_common",
- ],
- required: [
- "aapt",
- ],
- }
- python_binary_host {
- name: "check_target_files_vintf",
- defaults: [
- "releasetools_binary_defaults",
- "releasetools_check_target_files_vintf_defaults"
- ],
- }
- python_binary_host {
- name: "img_from_target_files",
- defaults: [
- "releasetools_binary_defaults",
- "releasetools_img_from_target_files_defaults",
- ],
- }
- python_defaults {
- name: "releasetools_find_shareduid_violation_defaults",
- srcs: [
- "find_shareduid_violation.py",
- ],
- libs: [
- "releasetools_common",
- ],
- }
- python_binary_host {
- name: "find_shareduid_violation",
- defaults: [
- "releasetools_binary_defaults",
- "releasetools_find_shareduid_violation_defaults",
- ],
- }
- python_library_host {
- name: "releasetools_find_shareduid_violation",
- defaults: [
- "releasetools_find_shareduid_violation_defaults",
- "releasetools_library_defaults",
- ],
- }
- python_binary_host {
- name: "make_recovery_patch",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "make_recovery_patch.py",
- ],
- libs: [
- "releasetools_common",
- ],
- }
- python_binary_host {
- name: "merge_builds",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "merge_builds.py",
- ],
- libs: [
- "releasetools_build_super_image",
- "releasetools_common",
- ],
- }
- python_binary_host {
- name: "merge_target_files",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "merge_target_files.py",
- ],
- libs: [
- "releasetools_add_img_to_target_files",
- "releasetools_build_super_image",
- "releasetools_check_target_files_vintf",
- "releasetools_common",
- "releasetools_find_shareduid_violation",
- "releasetools_img_from_target_files",
- "releasetools_ota_from_target_files",
- ],
- required: [
- "checkvintf",
- "host_init_verifier",
- "secilc",
- ],
- target: {
- darwin: {
- // libs dep "releasetools_ota_from_target_files" is disabled on darwin
- enabled: false,
- },
- },
- }
- python_binary_host {
- name: "ota_from_target_files",
- defaults: [
- "releasetools_binary_defaults",
- "releasetools_ota_from_target_files_defaults",
- ],
- }
- python_binary_host {
- name: "ota_package_parser",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "ota_package_parser.py",
- "rangelib.py",
- ],
- }
- python_binary_host {
- name: "sparse_img",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "rangelib.py",
- "sparse_img.py",
- ],
- }
- python_binary_host {
- name: "sign_apex",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "sign_apex.py",
- ],
- libs: [
- "releasetools_apex_utils",
- "releasetools_common",
- ],
- }
- python_binary_host {
- name: "sign_target_files_apks",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "sign_target_files_apks.py",
- ],
- libs: [
- "releasetools_add_img_to_target_files",
- "releasetools_apex_utils",
- "releasetools_common",
- ],
- }
- python_binary_host {
- name: "validate_target_files",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "validate_target_files.py",
- ],
- libs: [
- "releasetools_common",
- ],
- }
- python_binary_host {
- name: "verity_utils",
- defaults: ["releasetools_binary_defaults"],
- srcs: [
- "verity_utils.py",
- ],
- libs: [
- "releasetools_common",
- ],
- required: [
- "append2simg",
- "build_verity_metadata",
- "build_verity_tree",
- "fec",
- ],
- }
- //
- // Tests.
- //
- python_defaults {
- name: "releasetools_test_defaults",
- srcs: [
- "check_ota_package_signature.py",
- "check_partition_sizes.py",
- "check_target_files_signatures.py",
- "make_recovery_patch.py",
- "merge_target_files.py",
- "ota_package_parser.py",
- "sign_apex.py",
- "sign_target_files_apks.py",
- "validate_target_files.py",
- "test_*.py",
- ],
- libs: [
- "releasetools_add_img_to_target_files",
- "releasetools_apex_utils",
- "releasetools_build_image",
- "releasetools_build_super_image",
- "releasetools_check_target_files_vintf",
- "releasetools_common",
- "releasetools_find_shareduid_violation",
- "releasetools_img_from_target_files",
- "releasetools_ota_from_target_files",
- "releasetools_verity_utils",
- ],
- data: [
- "testdata/**/*",
- ":com.android.apex.compressed.v1",
- ":com.android.apex.compressed.v1_original",
- ],
- target: {
- darwin: {
- // libs dep "releasetools_ota_from_target_files" is disabled on darwin
- enabled: false,
- },
- },
- required: [
- "deapexer",
- ],
- }
- python_test_host {
- name: "releasetools_test",
- defaults: ["releasetools_test_defaults"],
- main: "test_utils.py",
- version: {
- py2: {
- enabled: true,
- // When using embedded launcher, atest will try (but may fail) to load libc++.so from
- // host, because the test executable won't be able to find the needed libs via its
- // runpath.
- embedded_launcher: false,
- },
- py3: {
- enabled: false,
- embedded_launcher: false,
- },
- },
- test_options: {
- unit_test: true,
- },
- }
- python_test_host {
- name: "releasetools_py3_test",
- defaults: ["releasetools_test_defaults"],
- main: "test_utils.py",
- test_suites: ["general-tests"],
- version: {
- py2: {
- enabled: false,
- embedded_launcher: false,
- },
- py3: {
- enabled: true,
- embedded_launcher: false,
- },
- },
- test_options: {
- unit_test: true,
- },
- }