Merge "DO NOT MERGE - Merge pie-platform-release (PPRL.190801.002) into master"
diff --git a/core/Makefile b/core/Makefile
index 6ced027..aba8aca 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -3621,6 +3621,7 @@
INTERNAL_OTATOOLS_MODULES := \
aapt \
+ add_img_to_target_files \
append2simg \
avbtool \
blk_alloc_to_base_fs \
@@ -3633,6 +3634,8 @@
build_verity_metadata \
build_verity_tree \
care_map_generator \
+ check_ota_package_signature \
+ check_target_files_signatures \
checkvintf \
delta_generator \
e2fsck \
@@ -3642,11 +3645,13 @@
fs_config \
generate_verity_key \
img2simg \
+ img_from_target_files \
imgdiff \
libconscrypt_openjdk_jni \
lpmake \
lpunpack \
make_f2fs \
+ merge_target_files \
minigzip \
mk_combined_img \
mkbootfs \
@@ -3661,11 +3666,14 @@
sefcontext_compile \
sgdisk \
shflags \
+ sign_apex \
+ sign_target_files_apks \
signapk \
simg2img \
sload_f2fs \
tune2fs \
update_host_simulator \
+ validate_target_files \
verity_signer \
verity_verifier \
zipalign \
@@ -4017,9 +4025,8 @@
$(SOONG_APEX_KEYS_FILE) \
$(SOONG_ZIP) \
$(HOST_OUT_EXECUTABLES)/fs_config \
- $(HOST_OUT_EXECUTABLES)/care_map_generator \
+ $(ADD_IMG_TO_TARGET_FILES) \
$(MAKE_RECOVERY_PATCH) \
- $(BUILD_IMAGE_SRCS) \
$(BUILT_ASSEMBLED_FRAMEWORK_MANIFEST) \
$(BUILT_ASSEMBLED_VENDOR_MANIFEST) \
$(BUILT_SYSTEM_MATRIX) \
@@ -4286,7 +4293,7 @@
endif # BOARD_SUPER_PARTITION_GROUPS
@# TODO(b/134525174): Remove `-r` after addressing the issue with recovery patch generation.
$(hide) PATH=$(INTERNAL_USERIMAGES_BINARY_PATHS):$$PATH MKBOOTIMG=$(MKBOOTIMG) \
- build/make/tools/releasetools/add_img_to_target_files -a -r -v -p $(HOST_OUT) $(zip_root)
+ $(ADD_IMG_TO_TARGET_FILES) -a -r -v -p $(HOST_OUT) $(zip_root)
ifeq ($(BUILD_QEMU_IMAGES),true)
$(hide) AVBTOOL=$(AVBTOOL) $(MK_VBMETA_BOOT_KERNEL_CMDLINE_SH) $(zip_root)/IMAGES/vbmeta.img \
$(zip_root)/IMAGES/system.img $(zip_root)/IMAGES/VerifiedBootParams.textproto
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 4a0c15b..e3f8a70 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -524,11 +524,11 @@
# Only set up copy rules once, even if another arch variant shares it
my_vintf_new_pairs := $(filter-out $(ALL_VINTF_MANIFEST_FRAGMENTS_LIST),$(my_vintf_pairs))
-my_vintf_new_installed := $(call copy-many-vintf-manifest-files-checked,$(my_vintf_pairs))
+my_vintf_new_installed := $(call copy-many-vintf-manifest-files-checked,$(my_vintf_new_pairs))
ALL_VINTF_MANIFEST_FRAGMENTS_LIST += $(my_vintf_new_pairs)
-$(my_all_targets) : $(my_vintf_installed)
+$(my_all_targets) : $(my_vintf_new_installed)
endif # LOCAL_VINTF_FRAGMENTS
endif # !LOCAL_IS_HOST_MODULE
endif # !LOCAL_UNINSTALLABLE_MODULE
diff --git a/core/config.mk b/core/config.mk
index 0f9f112..40d6cad 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -605,6 +605,7 @@
FAT16COPY := build/make/tools/fat16copy.py
CHECK_ELF_FILE := build/make/tools/check_elf_file.py
LPMAKE := $(HOST_OUT_EXECUTABLES)/lpmake$(HOST_EXECUTABLE_SUFFIX)
+ADD_IMG_TO_TARGET_FILES := $(HOST_OUT_EXECUTABLES)/add_img_to_target_files$(HOST_EXECUTABLE_SUFFIX)
BUILD_IMAGE := $(HOST_OUT_EXECUTABLES)/build_image$(HOST_EXECUTABLE_SUFFIX)
BUILD_SUPER_IMAGE := $(HOST_OUT_EXECUTABLES)/build_super_image$(HOST_EXECUTABLE_SUFFIX)
MAKE_RECOVERY_PATCH := $(HOST_OUT_EXECUTABLES)/make_recovery_patch$(HOST_EXECUTABLE_SUFFIX)
@@ -616,7 +617,6 @@
PROGUARD_DEPS := $(PROGUARD) $(PROGUARD_HOME)/lib/proguard.jar
JAVATAGS := build/make/tools/java-event-log-tags.py
MERGETAGS := build/make/tools/merge-event-log-tags.py
-BUILD_IMAGE_SRCS := $(wildcard build/make/tools/releasetools/*.py)
APPEND2SIMG := $(HOST_OUT_EXECUTABLES)/append2simg
VERITY_SIGNER := $(HOST_OUT_EXECUTABLES)/verity_signer
BUILD_VERITY_METADATA := $(HOST_OUT_EXECUTABLES)/build_verity_metadata
diff --git a/core/main.mk b/core/main.mk
index 5e25af4..3cbff2d 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -1778,12 +1778,13 @@
LSDUMP_PATHS_FILE := $(PRODUCT_OUT)/lsdump_paths.txt
.PHONY: findlsdumps
-findlsdumps: $(LSDUMP_PATHS_FILE) $(LSDUMP_PATHS)
+# LSDUMP_PATHS is a list of tag:path.
+findlsdumps: $(LSDUMP_PATHS_FILE) $(foreach p,$(LSDUMP_PATHS),$(call word-colon,2,$(p)))
$(LSDUMP_PATHS_FILE): PRIVATE_LSDUMP_PATHS := $(LSDUMP_PATHS)
$(LSDUMP_PATHS_FILE):
@echo "Generate $@"
- @rm -rf $@ && echo "$(PRIVATE_LSDUMP_PATHS)" | sed -e 's/ /\n/g' > $@
+ @rm -rf $@ && echo -e "$(subst :,:$(space),$(subst $(space),\n,$(PRIVATE_LSDUMP_PATHS)))" > $@
.PHONY: check-elf-files
check-elf-files:
diff --git a/target/product/gsi/Android.mk b/target/product/gsi/Android.mk
index 1ef124b..c93e4ca 100644
--- a/target/product/gsi/Android.mk
+++ b/target/product/gsi/Android.mk
@@ -120,13 +120,13 @@
$(check-vndk-abi-dump-list-timestamp): $(VNDK_ABI_DUMPS) $(NDK_ABI_DUMPS)
$(eval added_vndk_abi_dumps := $(strip $(sort $(filter-out \
- $(addsuffix .so.lsdump,$(VNDK_SAMEPROCESS_LIBRARIES) $(VNDK_CORE_LIBRARIES)), \
+ $(addsuffix .so.lsdump,$(filter-out $(NDK_MIGRATED_LIBS) $(VNDK_PRIVATE_LIBRARIES),$(LLNDK_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(VNDK_CORE_LIBRARIES))), \
$(notdir $(VNDK_ABI_DUMPS))))))
$(if $(added_vndk_abi_dumps), \
echo -e "Found ABI reference dumps for non-VNDK libraries. Run \`find \$${ANDROID_BUILD_TOP}/$(VNDK_ABI_DUMP_DIR) '(' -name $(subst $(space), -or -name ,$(added_vndk_abi_dumps)) ')' -delete\` to delete the dumps.")
$(eval added_ndk_abi_dumps := $(strip $(sort $(filter-out \
- $(addsuffix .so.lsdump,$(NDK_MIGRATED_LIBS) $(LLNDK_LIBRARIES)), \
+ $(addsuffix .so.lsdump,$(NDK_MIGRATED_LIBS)), \
$(notdir $(NDK_ABI_DUMPS))))))
$(if $(added_ndk_abi_dumps), \
echo -e "Found ABI reference dumps for non-NDK libraries. Run \`find \$${ANDROID_BUILD_TOP}/$(NDK_ABI_DUMP_DIR) '(' -name $(subst $(space), -or -name ,$(added_ndk_abi_dumps)) ')' -delete\` to delete the dumps.")
diff --git a/tools/releasetools/Android.bp b/tools/releasetools/Android.bp
index 3732b78..0302856 100644
--- a/tools/releasetools/Android.bp
+++ b/tools/releasetools/Android.bp
@@ -12,6 +12,89 @@
// 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.
+//
+
+python_defaults {
+ name: "releasetools_add_img_to_target_files_defaults",
+ srcs: [
+ "add_img_to_target_files.py",
+ ],
+ libs: [
+ "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",
+ "simg2img",
+ "tune2fs",
+ ],
+}
+
+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_ota_from_target_files_defaults",
+ srcs: [
+ "edify_generator.py",
+ "ota_from_target_files.py",
+ "target_files_diff.py",
+ ],
+ libs: [
+ "releasetools_common",
+ "releasetools_verity_utils",
+ ],
+ required: [
+ "brillo_update_payload",
+ ],
+}
+
+//
+// Host libraries.
+//
+
python_defaults {
name: "releasetools_library_defaults",
version: {
@@ -25,10 +108,37 @@
}
python_library_host {
- name: "releasetools_build_super_image",
+ 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: [
- "build_super_image.py",
+ "apex_utils.py",
+ ],
+ libs: [
+ "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",
],
}
@@ -56,6 +166,22 @@
}
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: [
@@ -69,6 +195,10 @@
],
}
+//
+// Host binaries.
+//
+
python_defaults {
name: "releasetools_binary_defaults",
version: {
@@ -84,34 +214,63 @@
}
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"],
- srcs: [
- "build_image.py",
- ],
- main: "build_image.py",
- libs: [
- "releasetools_common",
- "releasetools_verity_utils",
- ],
- required: [
- "blk_alloc_to_base_fs",
- "e2fsck",
- "simg2img",
- "tune2fs",
+ 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_ota_package_signature",
defaults: ["releasetools_binary_defaults"],
srcs: [
- "build_super_image.py",
+ "check_ota_package_signature.py",
],
- main: "build_super_image.py",
libs: [
"releasetools_common",
],
+ required: [
+ "delta_generator",
+ ],
+}
+
+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: "img_from_target_files",
+ defaults: [
+ "releasetools_binary_defaults",
+ "releasetools_img_from_target_files_defaults",
+ ],
}
python_binary_host {
@@ -131,7 +290,6 @@
srcs: [
"merge_builds.py",
],
- main: "merge_builds.py",
libs: [
"releasetools_build_super_image",
"releasetools_common",
@@ -139,20 +297,34 @@
}
python_binary_host {
- name: "ota_from_target_files",
+ name: "merge_target_files",
defaults: ["releasetools_binary_defaults"],
srcs: [
- "edify_generator.py",
- "ota_from_target_files.py",
- "target_files_diff.py",
+ "merge_target_files.py",
],
- main: "ota_from_target_files.py",
libs: [
+ "releasetools_add_img_to_target_files",
+ "releasetools_build_super_image",
"releasetools_common",
- "releasetools_verity_utils",
+ "releasetools_img_from_target_files",
+ "releasetools_ota_from_target_files",
],
- required: [
- "brillo_update_payload",
+}
+
+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",
],
}
@@ -163,33 +335,70 @@
"rangelib.py",
"sparse_img.py",
],
- main: "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",
+ ],
+}
+
+//
+// Tests.
+//
+
python_defaults {
name: "releasetools_test_defaults",
srcs: [
- "add_img_to_target_files.py",
- "apex_utils.py",
- "build_image.py",
"check_ota_package_signature.py",
"check_target_files_signatures.py",
- "edify_generator.py",
- "img_from_target_files.py",
"make_recovery_patch.py",
"merge_target_files.py",
- "ota_from_target_files.py",
"ota_package_parser.py",
"sign_apex.py",
"sign_target_files_apks.py",
- "target_files_diff.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_common",
+ "releasetools_img_from_target_files",
+ "releasetools_ota_from_target_files",
"releasetools_verity_utils",
],
data: [