Loading core/Makefile +10 −3 Original line number Diff line number Diff line Loading @@ -3416,7 +3416,7 @@ endif # BOARD_PREBUILT_PVMFWIMAGE # $(INSTALLED_VENDORIMAGE_TARGET)" for "system vendor". # (1): list of partitions like "system", "vendor" or "system product system_ext". define images-for-partitions $(strip $(foreach item,$(1),$(INSTALLED_$(call to-upper,$(item))IMAGE_TARGET))) $(strip $(foreach item,$(1),$(if $(filter $(item),system_other),$(INSTALLED_SYSTEMOTHERIMAGE_TARGET),$(INSTALLED_$(call to-upper,$(item))IMAGE_TARGET)))) endef # ----------------------------------------------------------------- Loading Loading @@ -4145,13 +4145,20 @@ ifeq (,$(TARGET_BUILD_UNBUNDLED)) ifeq (true,$(PRODUCT_BUILD_SUPER_PARTITION)) PARTITIONS_AND_OTHER_IN_SUPER := $(BOARD_SUPER_PARTITION_PARTITION_LIST) # Add the system other image to the misc_info. Because factory ota may install system_other to the super partition. ifdef BUILDING_SYSTEM_OTHER_IMAGE PARTITIONS_AND_OTHER_IN_SUPER += system_other endif # BUILDING_SYSTEM_OTHER_IMAGE # $(1): misc_info.txt # #(2): optional log file define check-all-partition-sizes-target mkdir -p $(dir $(1)) rm -f $(1) $(call dump-super-image-info, $(1)) $(foreach partition,$(BOARD_SUPER_PARTITION_PARTITION_LIST), \ $(foreach partition,$(PARTITIONS_AND_OTHER_IN_SUPER), \ echo "$(partition)_image="$(call images-for-partitions,$(partition)) >> $(1);) $(CHECK_PARTITION_SIZES) $(if $(2),--logfile $(2),-v) $(1) endef Loading @@ -4162,7 +4169,7 @@ $(call dist-for-goals, droid_targets, $(check_all_partition_sizes_log)) $(check_all_partition_sizes_log): \ $(CHECK_PARTITION_SIZES) \ $(call images-for-partitions,$(BOARD_SUPER_PARTITION_PARTITION_LIST)) $(call images-for-partitions,$(PARTITIONS_AND_OTHER_IN_SUPER)) $(call check-all-partition-sizes-target, \ $(call intermediates-dir-for,PACKAGING,check-all-partition-sizes)/misc_info.txt, \ $@) Loading tools/releasetools/check_partition_sizes.py +9 −3 Original line number Diff line number Diff line Loading @@ -223,8 +223,14 @@ class DynamicPartitionSizeChecker(object): error_limit = Expression( "BOARD_SUPER_PARTITION_ERROR_LIMIT{}".format(size_limit_suffix), int(info_dict["super_partition_error_limit"]) // num_slots) self._CheckSumOfPartitionSizes( max_size, info_dict["dynamic_partition_list"].strip().split(), partitions_in_super = info_dict["dynamic_partition_list"].strip().split() # In the vab case, factory OTA will allocate space on super to install # the system_other partition. So add system_other to the partition list. if DeviceType.Get(self.info_dict) == DeviceType.VAB and ( "system_other_image" in info_dict or "system_other_image_size" in info_dict): partitions_in_super.append("system_other") self._CheckSumOfPartitionSizes(max_size, partitions_in_super, warn_limit, error_limit) groups = info_dict.get("super_partition_groups", "").strip().split() Loading tools/releasetools/test_check_partition_sizes.py +11 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ class CheckPartitionSizesTest(test_utils.ReleaseToolsTestCase): system_image_size=50 vendor_image_size=20 product_image_size=20 system_other_image_size=10 """.split("\n")) def test_ab(self): Loading Loading @@ -126,3 +127,13 @@ class CheckPartitionSizesTest(test_utils.ReleaseToolsTestCase): """.split("\n"))) with self.assertRaises(RuntimeError): CheckPartitionSizes(self.info_dict) def test_vab_too_big_with_system_other(self): self.info_dict.update(common.LoadDictionaryFromLines(""" virtual_ab=true system_other_image_size=20 super_partition_size=101 super_super_device_size=101 """.split("\n"))) with self.assertRaises(RuntimeError): CheckPartitionSizes(self.info_dict) Loading
core/Makefile +10 −3 Original line number Diff line number Diff line Loading @@ -3416,7 +3416,7 @@ endif # BOARD_PREBUILT_PVMFWIMAGE # $(INSTALLED_VENDORIMAGE_TARGET)" for "system vendor". # (1): list of partitions like "system", "vendor" or "system product system_ext". define images-for-partitions $(strip $(foreach item,$(1),$(INSTALLED_$(call to-upper,$(item))IMAGE_TARGET))) $(strip $(foreach item,$(1),$(if $(filter $(item),system_other),$(INSTALLED_SYSTEMOTHERIMAGE_TARGET),$(INSTALLED_$(call to-upper,$(item))IMAGE_TARGET)))) endef # ----------------------------------------------------------------- Loading Loading @@ -4145,13 +4145,20 @@ ifeq (,$(TARGET_BUILD_UNBUNDLED)) ifeq (true,$(PRODUCT_BUILD_SUPER_PARTITION)) PARTITIONS_AND_OTHER_IN_SUPER := $(BOARD_SUPER_PARTITION_PARTITION_LIST) # Add the system other image to the misc_info. Because factory ota may install system_other to the super partition. ifdef BUILDING_SYSTEM_OTHER_IMAGE PARTITIONS_AND_OTHER_IN_SUPER += system_other endif # BUILDING_SYSTEM_OTHER_IMAGE # $(1): misc_info.txt # #(2): optional log file define check-all-partition-sizes-target mkdir -p $(dir $(1)) rm -f $(1) $(call dump-super-image-info, $(1)) $(foreach partition,$(BOARD_SUPER_PARTITION_PARTITION_LIST), \ $(foreach partition,$(PARTITIONS_AND_OTHER_IN_SUPER), \ echo "$(partition)_image="$(call images-for-partitions,$(partition)) >> $(1);) $(CHECK_PARTITION_SIZES) $(if $(2),--logfile $(2),-v) $(1) endef Loading @@ -4162,7 +4169,7 @@ $(call dist-for-goals, droid_targets, $(check_all_partition_sizes_log)) $(check_all_partition_sizes_log): \ $(CHECK_PARTITION_SIZES) \ $(call images-for-partitions,$(BOARD_SUPER_PARTITION_PARTITION_LIST)) $(call images-for-partitions,$(PARTITIONS_AND_OTHER_IN_SUPER)) $(call check-all-partition-sizes-target, \ $(call intermediates-dir-for,PACKAGING,check-all-partition-sizes)/misc_info.txt, \ $@) Loading
tools/releasetools/check_partition_sizes.py +9 −3 Original line number Diff line number Diff line Loading @@ -223,8 +223,14 @@ class DynamicPartitionSizeChecker(object): error_limit = Expression( "BOARD_SUPER_PARTITION_ERROR_LIMIT{}".format(size_limit_suffix), int(info_dict["super_partition_error_limit"]) // num_slots) self._CheckSumOfPartitionSizes( max_size, info_dict["dynamic_partition_list"].strip().split(), partitions_in_super = info_dict["dynamic_partition_list"].strip().split() # In the vab case, factory OTA will allocate space on super to install # the system_other partition. So add system_other to the partition list. if DeviceType.Get(self.info_dict) == DeviceType.VAB and ( "system_other_image" in info_dict or "system_other_image_size" in info_dict): partitions_in_super.append("system_other") self._CheckSumOfPartitionSizes(max_size, partitions_in_super, warn_limit, error_limit) groups = info_dict.get("super_partition_groups", "").strip().split() Loading
tools/releasetools/test_check_partition_sizes.py +11 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ class CheckPartitionSizesTest(test_utils.ReleaseToolsTestCase): system_image_size=50 vendor_image_size=20 product_image_size=20 system_other_image_size=10 """.split("\n")) def test_ab(self): Loading Loading @@ -126,3 +127,13 @@ class CheckPartitionSizesTest(test_utils.ReleaseToolsTestCase): """.split("\n"))) with self.assertRaises(RuntimeError): CheckPartitionSizes(self.info_dict) def test_vab_too_big_with_system_other(self): self.info_dict.update(common.LoadDictionaryFromLines(""" virtual_ab=true system_other_image_size=20 super_partition_size=101 super_super_device_size=101 """.split("\n"))) with self.assertRaises(RuntimeError): CheckPartitionSizes(self.info_dict)