From 0bf940cace025834a0792b60ae6e4df67fbb0b45 Mon Sep 17 00:00:00 2001 From: Daniel Norman Date: Mon, 10 Jun 2019 12:50:19 -0700 Subject: [PATCH] Allows skipping building the super images for partial builds. Previously, setting PRODUCT_BUILD_SUPER_PARTITION to false for a partial build (with PRODUCT_USE_DYNAMIC_PARTITIONS == true) would fail to include necessary keys in misc_info.txt that are required when merging two partial builds to create a dynamic-partition-enabled mixed build. This change ensures these necessary keys are included even when PRODUCT_BUILD_SUPER_PARTITION is false. Setting PRODUCT_BUILD_SUPER_PARTITION to false causes partial builds to skip building super.img and super_empty.img, instead relying on these images to come from the final merged build. Bug: 134764140 Test: Building & booting a dynamic-partition-enabled mixed build, and inspecting partial builds' logs / out folder to ensure that super.img/super_empty.img were not created. Change-Id: I99431a9a342e9b0617510e250597f3024ef39322 --- core/config.mk | 9 ++++----- tools/releasetools/merge_target_files.py | 4 ++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/core/config.mk b/core/config.mk index ee2db4fa8c..413cbc83cc 100644 --- a/core/config.mk +++ b/core/config.mk @@ -925,10 +925,6 @@ BOARD_SUPER_PARTITION_PARTITION_LIST := \ $(BOARD_$(group)_PARTITION_LIST)) .KATI_READONLY := BOARD_SUPER_PARTITION_PARTITION_LIST -endif # PRODUCT_USE_DYNAMIC_PARTITIONS - -ifeq ($(PRODUCT_BUILD_SUPER_PARTITION),true) - ifneq ($(BOARD_SUPER_PARTITION_SIZE),) ifeq ($(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS),true) @@ -988,8 +984,11 @@ BOARD_BUILD_RETROFIT_DYNAMIC_PARTITIONS_OTA_PACKAGE := endif # PRODUCT_RETROFIT_DYNAMIC_PARTITIONS endif # BOARD_SUPER_PARTITION_SIZE +BOARD_SUPER_PARTITION_BLOCK_DEVICES ?= .KATI_READONLY := BOARD_SUPER_PARTITION_BLOCK_DEVICES +BOARD_SUPER_PARTITION_METADATA_DEVICE ?= .KATI_READONLY := BOARD_SUPER_PARTITION_METADATA_DEVICE +BOARD_BUILD_RETROFIT_DYNAMIC_PARTITIONS_OTA_PACKAGE ?= .KATI_READONLY := BOARD_BUILD_RETROFIT_DYNAMIC_PARTITIONS_OTA_PACKAGE $(foreach device,$(call to-upper,$(BOARD_SUPER_PARTITION_BLOCK_DEVICES)), \ @@ -998,7 +997,7 @@ $(foreach device,$(call to-upper,$(BOARD_SUPER_PARTITION_BLOCK_DEVICES)), \ $(error BOARD_SUPER_PARTITION_$(device)_DEVICE_SIZE must not be empty)) \ $(eval .KATI_READONLY := BOARD_SUPER_PARTITION_$(device)_DEVICE_SIZE)) -endif # PRODUCT_BUILD_SUPER_PARTITION +endif # PRODUCT_USE_DYNAMIC_PARTITIONS # ############################################################### # Set up final options. diff --git a/tools/releasetools/merge_target_files.py b/tools/releasetools/merge_target_files.py index f37c0ee1bc..f0ae217171 100755 --- a/tools/releasetools/merge_target_files.py +++ b/tools/releasetools/merge_target_files.py @@ -530,6 +530,10 @@ def process_misc_info_txt(framework_target_files_temp_dir, list_prefix='super_', list_suffix='_partition_list') merged_dict.update(merged_dynamic_partitions_dict) + # Ensure that add_img_to_target_files rebuilds super_empty.img. This flag + # may have been set to false in the partial builds to prevent duplicate + # building of super.img and super_empty.img. + merged_dict['build_super_partition'] = 'true' # Replace _selinux_fc values with framework or vendor file_contexts.bin # depending on which dictionary the key came from.