| // 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", |
| "libavbtool", |
| ], |
| required: [ |
| "care_map_generator", |
| ], |
| } |
| |
| python_defaults { |
| name: "releasetools_build_image_defaults", |
| srcs: [ |
| "build_image.py", |
| ], |
| libs: [ |
| "releasetools_common", |
| "releasetools_fsverity_metadata_generator", |
| "releasetools_verity_utils", |
| ], |
| required: [ |
| "blk_alloc_to_base_fs", |
| "e2fsck", |
| "fsck.erofs", |
| "img2simg", |
| "mkfs.erofs", |
| "mkuserimg_mke2fs", |
| "simg2img", |
| "tune2fs", |
| "mkf2fsuserimg", |
| "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: [ |
| "apex_manifest", |
| "releasetools_common", |
| ], |
| required: [ |
| "apexd_host", |
| "checkvintf", |
| ], |
| } |
| |
| python_library_host { |
| name: "ota_metadata_proto", |
| 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", |
| "target_files_diff.py", |
| ], |
| libs: [ |
| "ota_metadata_proto", |
| "releasetools_check_target_files_vintf", |
| "releasetools_common", |
| "releasetools_verity_utils", |
| "apex_manifest", |
| "care_map_proto_py", |
| "ota_utils_lib", |
| ], |
| required: [ |
| "apexd_host", |
| "brillo_update_payload", |
| "checkvintf", |
| "lz4", |
| "toybox", |
| "unpack_bootimg", |
| "deapexer", |
| ], |
| target: { |
| darwin: { |
| // required module "brillo_update_payload" is disabled on darwin |
| enabled: false, |
| }, |
| }, |
| } |
| |
| // |
| // Host libraries. |
| // |
| |
| python_library_host { |
| name: "releasetools_add_img_to_target_files", |
| defaults: [ |
| "releasetools_add_img_to_target_files_defaults", |
| ], |
| } |
| |
| python_library_host { |
| name: "releasetools_apex_utils", |
| srcs: [ |
| "apex_utils.py", |
| ], |
| libs: [ |
| "apex_manifest", |
| "ota_metadata_proto", |
| "releasetools_common", |
| ], |
| } |
| |
| python_library_host { |
| name: "releasetools_build_image", |
| defaults: [ |
| "releasetools_build_image_defaults", |
| ], |
| } |
| |
| python_library_host { |
| name: "releasetools_build_super_image", |
| defaults: [ |
| "releasetools_build_super_image_defaults", |
| ], |
| } |
| |
| python_library_host { |
| name: "releasetools_check_target_files_vintf", |
| defaults: [ |
| "releasetools_check_target_files_vintf_defaults", |
| ], |
| } |
| |
| python_library_host { |
| name: "releasetools_common", |
| srcs: [ |
| "blockimgdiff.py", |
| "common.py", |
| "images.py", |
| "rangelib.py", |
| "sparse_img.py", |
| ], |
| data: [ |
| ":zip2zip", |
| ], |
| // 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", |
| "lz4", |
| "mkbootfs", |
| "signapk", |
| "toybox", |
| "unpack_bootimg", |
| ], |
| } |
| |
| python_library_host { |
| name: "releasetools_img_from_target_files", |
| defaults: [ |
| "releasetools_img_from_target_files_defaults", |
| ], |
| } |
| |
| python_library_host { |
| name: "releasetools_ota_from_target_files", |
| defaults: [ |
| "releasetools_ota_from_target_files_defaults", |
| ], |
| } |
| |
| python_library_host { |
| name: "releasetools_fsverity_metadata_generator", |
| srcs: [ |
| "fsverity_metadata_generator.py", |
| ], |
| libs: [ |
| "fsverity_digests_proto_python", |
| ], |
| } |
| |
| python_library_host { |
| name: "releasetools_verity_utils", |
| srcs: [ |
| "verity_utils.py", |
| ], |
| required: [ |
| "append2simg", |
| "build_verity_metadata", |
| "build_verity_tree", |
| "fec", |
| ], |
| } |
| |
| // |
| // Host binaries. |
| // |
| |
| python_defaults { |
| name: "releasetools_binary_defaults", |
| version: { |
| py3: { |
| embedded_launcher: true, |
| }, |
| }, |
| // TODO (b/140144201) Build imgdiff from releasetools_common |
| required: [ |
| "aapt2", |
| "boot_signer", |
| "brotli", |
| "bsdiff", |
| "deapexer", |
| "imgdiff", |
| "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_library_host { |
| name: "ota_utils_lib", |
| srcs: [ |
| "ota_utils.py", |
| "payload_signer.py", |
| "ota_signing_utils.py", |
| ], |
| libs: [ |
| "releasetools_common", |
| ], |
| } |
| |
| python_binary_host { |
| name: "merge_ota", |
| version: { |
| py3: { |
| embedded_launcher: true, |
| }, |
| }, |
| srcs: [ |
| "merge_ota.py", |
| ], |
| libs: [ |
| "ota_metadata_proto", |
| "update_payload", |
| "care_map_proto_py", |
| "releasetools_common", |
| "ota_utils_lib", |
| ], |
| } |
| |
| python_binary_host { |
| name: "create_brick_ota", |
| version: { |
| py3: { |
| embedded_launcher: true, |
| }, |
| }, |
| srcs: [ |
| "create_brick_ota.py", |
| ], |
| libs: [ |
| "ota_utils_lib", |
| ], |
| } |
| |
| 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: [ |
| "aapt2", |
| ], |
| } |
| |
| 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", |
| ], |
| } |
| |
| python_binary_host { |
| name: "make_recovery_patch", |
| defaults: ["releasetools_binary_defaults"], |
| srcs: [ |
| "make_recovery_patch.py", |
| ], |
| libs: [ |
| "releasetools_common", |
| ], |
| } |
| |
| python_binary_host { |
| name: "ota_from_target_files", |
| defaults: [ |
| "releasetools_binary_defaults", |
| "releasetools_ota_from_target_files_defaults", |
| ], |
| } |
| |
| python_binary_host { |
| name: "ota_from_raw_img", |
| srcs: [ |
| "ota_from_raw_img.py", |
| ], |
| main: "ota_from_raw_img.py", |
| defaults: [ |
| "releasetools_binary_defaults", |
| ], |
| required: [ |
| "delta_generator", |
| ], |
| libs: [ |
| "ota_metadata_proto", |
| "releasetools_common", |
| "ota_utils_lib", |
| ], |
| } |
| |
| 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", |
| "payload_signer.py", |
| "ota_signing_utils.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", |
| ], |
| } |
| |
| python_binary_host { |
| name: "fsverity_metadata_generator", |
| defaults: ["releasetools_binary_defaults"], |
| srcs: [ |
| "fsverity_metadata_generator.py", |
| ], |
| required: [ |
| "fsverity", |
| ], |
| } |
| |
| // |
| // 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", |
| "ota_package_parser.py", |
| "sign_apex.py", |
| "sign_target_files_apks.py", |
| "validate_target_files.py", |
| "merge_ota.py", |
| ":releasetools_merge_sources", |
| ":releasetools_merge_tests", |
| |
| "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", |
| "update_payload", |
| ], |
| data: [ |
| "testdata/**/*", |
| ":com.android.apex.compressed.v1", |
| ":com.android.apex.compressed.v1_original", |
| ":com.android.apex.vendor.foo.with_vintf" |
| ], |
| target: { |
| darwin: { |
| // libs dep "releasetools_ota_from_target_files" is disabled on darwin |
| enabled: false, |
| }, |
| }, |
| required: [ |
| "apexd_host", |
| "deapexer", |
| ], |
| } |
| |
| python_test_host { |
| name: "releasetools_test", |
| defaults: ["releasetools_test_defaults"], |
| main: "test_utils.py", |
| // Don't use 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. |
| test_options: { |
| unit_test: true, |
| }, |
| } |