DAP: building system_other.img for retrofit devices
For dynamic partitions in retrofit devices, system partition will be a logical partition but system_other is not. However, current build system use the same settings (logical) for both system.img and system_other.img, leading AVB unable to locate the footer from the end of system_other partition. This commit support building system_other.img with correct partition size while building system.img as a dynamic image. Bug: 123506156 Test: check there is "system_other_size=2952790016" in file $OUT/obj/PACKAGING/system_other_intermediates/system_other_image_info.txt Test: build system_other.img, then `simg2img $OUT/system_other.img system_other.img.raw`, checks the raw image size. Change-Id: I748320a7770c694d06f06f4a35bfceb622849aa8
This commit is contained in:
parent
c683233b64
commit
867ab6606e
|
@ -1321,6 +1321,7 @@ endif # PRODUCT_USE_DYNAMIC_PARTITIONS
|
||||||
define generate-image-prop-dictionary
|
define generate-image-prop-dictionary
|
||||||
$(if $(filter $(2),system),\
|
$(if $(filter $(2),system),\
|
||||||
$(if $(BOARD_SYSTEMIMAGE_PARTITION_SIZE),$(hide) echo "system_size=$(BOARD_SYSTEMIMAGE_PARTITION_SIZE)" >> $(1))
|
$(if $(BOARD_SYSTEMIMAGE_PARTITION_SIZE),$(hide) echo "system_size=$(BOARD_SYSTEMIMAGE_PARTITION_SIZE)" >> $(1))
|
||||||
|
$(if $(INTERNAL_SYSTEM_OTHER_PARTITION_SIZE),$(hide) echo "system_other_size=$(INTERNAL_SYSTEM_OTHER_PARTITION_SIZE)" >> $(1))
|
||||||
$(if $(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "system_fs_type=$(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE)" >> $(1))
|
$(if $(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "system_fs_type=$(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE)" >> $(1))
|
||||||
$(if $(BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT),$(hide) echo "system_extfs_inode_count=$(BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT)" >> $(1))
|
$(if $(BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT),$(hide) echo "system_extfs_inode_count=$(BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT)" >> $(1))
|
||||||
$(if $(BOARD_SYSTEMIMAGE_EXTFS_RSV_PCT),$(hide) echo "system_extfs_rsv_pct=$(BOARD_SYSTEMIMAGE_EXTFS_RSV_PCT)" >> $(1))
|
$(if $(BOARD_SYSTEMIMAGE_EXTFS_RSV_PCT),$(hide) echo "system_extfs_rsv_pct=$(BOARD_SYSTEMIMAGE_EXTFS_RSV_PCT)" >> $(1))
|
||||||
|
@ -2517,6 +2518,17 @@ $(INSTALLED_FILES_FILE_SYSTEMOTHER) : $(INTERNAL_SYSTEMOTHERIMAGE_FILES) $(FILES
|
||||||
$(hide) $(FILESLIST) $(TARGET_OUT_SYSTEM_OTHER) > $(@:.txt=.json)
|
$(hide) $(FILESLIST) $(TARGET_OUT_SYSTEM_OTHER) > $(@:.txt=.json)
|
||||||
$(hide) build/make/tools/fileslist_util.py -c $(@:.txt=.json) > $@
|
$(hide) build/make/tools/fileslist_util.py -c $(@:.txt=.json) > $@
|
||||||
|
|
||||||
|
# Determines partition size for system_other.img.
|
||||||
|
ifeq ($(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS),true)
|
||||||
|
ifneq ($(filter system,$(BOARD_SUPER_PARTITION_BLOCK_DEVICES)),)
|
||||||
|
INTERNAL_SYSTEM_OTHER_PARTITION_SIZE := $(BOARD_SUPER_PARTITION_SYSTEM_DEVICE_SIZE)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef INTERNAL_SYSTEM_OTHER_PARTITION_SIZE
|
||||||
|
INTERNAL_SYSTEM_OTHER_PARTITION_SIZE:= $(BOARD_SYSTEMIMAGE_PARTITION_SIZE)
|
||||||
|
endif
|
||||||
|
|
||||||
systemotherimage_intermediates := \
|
systemotherimage_intermediates := \
|
||||||
$(call intermediates-dir-for,PACKAGING,system_other)
|
$(call intermediates-dir-for,PACKAGING,system_other)
|
||||||
BUILT_SYSTEMOTHERIMAGE_TARGET := $(PRODUCT_OUT)/system_other.img
|
BUILT_SYSTEMOTHERIMAGE_TARGET := $(PRODUCT_OUT)/system_other.img
|
||||||
|
@ -2533,7 +2545,7 @@ define build-systemotherimage-target
|
||||||
$(systemotherimage_intermediates)/generated_system_other_image_info.txt
|
$(systemotherimage_intermediates)/generated_system_other_image_info.txt
|
||||||
$(hide) $(call assert-max-image-size,$(INSTALLED_SYSTEMOTHERIMAGE_TARGET),\
|
$(hide) $(call assert-max-image-size,$(INSTALLED_SYSTEMOTHERIMAGE_TARGET),\
|
||||||
$(call read-image-prop-dictionary,\
|
$(call read-image-prop-dictionary,\
|
||||||
$(systemotherimage_intermediates)/generated_system_other_image_info.txt,system_size))
|
$(systemotherimage_intermediates)/generated_system_other_image_info.txt,system_other_size))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# We just build this directly to the install location.
|
# We just build this directly to the install location.
|
||||||
|
|
|
@ -576,7 +576,7 @@ def ImagePropFromGlobalDict(glob_dict, mount_point):
|
||||||
copy_prop("avb_system_other_algorithm", "avb_algorithm")
|
copy_prop("avb_system_other_algorithm", "avb_algorithm")
|
||||||
copy_prop("fs_type", "fs_type")
|
copy_prop("fs_type", "fs_type")
|
||||||
copy_prop("system_fs_type", "fs_type")
|
copy_prop("system_fs_type", "fs_type")
|
||||||
copy_prop("system_size", "partition_size")
|
copy_prop("system_other_size", "partition_size")
|
||||||
if not copy_prop("system_journal_size", "journal_size"):
|
if not copy_prop("system_journal_size", "journal_size"):
|
||||||
d["journal_size"] = "0"
|
d["journal_size"] = "0"
|
||||||
copy_prop("system_verity_block_device", "verity_block_device")
|
copy_prop("system_verity_block_device", "verity_block_device")
|
||||||
|
@ -723,7 +723,7 @@ def GlobalDictFromImageProp(image_prop, mount_point):
|
||||||
if mount_point == "system":
|
if mount_point == "system":
|
||||||
copy_prop("partition_size", "system_size")
|
copy_prop("partition_size", "system_size")
|
||||||
elif mount_point == "system_other":
|
elif mount_point == "system_other":
|
||||||
copy_prop("partition_size", "system_size")
|
copy_prop("partition_size", "system_other_size")
|
||||||
elif mount_point == "vendor":
|
elif mount_point == "vendor":
|
||||||
copy_prop("partition_size", "vendor_size")
|
copy_prop("partition_size", "vendor_size")
|
||||||
elif mount_point == "odm":
|
elif mount_point == "odm":
|
||||||
|
|
Loading…
Reference in New Issue