diff --git a/core/Makefile b/core/Makefile index 45123bc105..15f7681d2b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -2079,13 +2079,13 @@ $(INSTALLED_RECOVERY_BUILD_PROP_TARGET): \ $(hide) cat $(INSTALLED_SYSTEM_EXT_BUILD_PROP_TARGET) >> $@ $(call append-recovery-ui-properties,$(PRIVATE_RECOVERY_UI_PROPERTIES),$@) -ifdef INSTALLED_VENDOR_BOOTIMAGE_TARGET +ifeq (truetrue,$(strip $(BUILDING_VENDOR_BOOT_IMAGE))$(strip $(AB_OTA_UPDATER))) INTERNAL_RECOVERYIMAGE_ARGS := \ --kernel $(recovery_kernel) --ramdisk $(recovery_ramdisk) ifdef GENERIC_KERNEL_CMDLINE INTERNAL_RECOVERYIMAGE_ARGS += --cmdline "$(GENERIC_KERNEL_CMDLINE)" endif -else # INSTALLED_VENDOR_BOOTIMAGE_TARGET not defined +else # not (BUILDING_VENDOR_BOOT_IMAGE and AB_OTA_UPDATER) INTERNAL_RECOVERYIMAGE_ARGS := \ $(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \ --ramdisk $(recovery_ramdisk) @@ -2113,6 +2113,9 @@ ifdef BOARD_INCLUDE_DTB_IN_BOOTIMG INTERNAL_RECOVERYIMAGE_ARGS += --dtb $(INSTALLED_DTBIMAGE_TARGET) endif endif # INSTALLED_VENDOR_BOOTIMAGE_TARGET not defined +ifndef BOARD_RECOVERY_MKBOOTIMG_ARGS + BOARD_RECOVERY_MKBOOTIMG_ARGS := $(BOARD_MKBOOTIMG_ARGS) +endif $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) \ $(INTERNAL_ROOT_FILES) \ @@ -2156,10 +2159,10 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) \ define build-recoveryimage-target $(if $(filter true,$(PRODUCT_SUPPORTS_VBOOT)), \ $(MKBOOTIMG) --kernel $(2) $(MKBOOTIMG_KERNEL_ARG) $(INTERNAL_RECOVERYIMAGE_ARGS) \ - $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) \ + $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_RECOVERY_MKBOOTIMG_ARGS) \ --output $(1).unsigned, \ $(MKBOOTIMG) --kernel $(2) $(MKBOOTIMG_KERNEL_ARG) $(INTERNAL_RECOVERYIMAGE_ARGS) \ - $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) \ + $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_RECOVERY_MKBOOTIMG_ARGS) \ --output $(1)) $(if $(filter true,$(PRODUCT_SUPPORTS_BOOT_SIGNER)),\ $(if $(filter true,$(BOARD_USES_RECOVERY_AS_BOOT)),\ @@ -4154,6 +4157,7 @@ ifdef PRODUCT_EXTRA_RECOVERY_KEYS $(hide) echo "extra_recovery_keys=$(PRODUCT_EXTRA_RECOVERY_KEYS)" >> $@ endif $(hide) echo 'mkbootimg_args=$(BOARD_MKBOOTIMG_ARGS)' >> $@ + $(hide) echo 'recovery_mkbootimg_args=$(BOARD_RECOVERY_MKBOOTIMG_ARGS)' >> $@ $(hide) echo 'mkbootimg_version_args=$(INTERNAL_MKBOOTIMG_VERSION_ARGS)' >> $@ $(hide) echo "multistage_support=1" >> $@ $(hide) echo "blockimgdiff_versions=3,4" >> $@ @@ -4464,9 +4468,9 @@ ifneq (,$(INSTALLED_RECOVERYIMAGE_TARGET)$(filter true,$(BOARD_USES_RECOVERY_AS_ ifdef INSTALLED_KERNEL_TARGET cp $(INSTALLED_KERNEL_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/ endif -ifdef INSTALLED_VENDOR_BOOTIMAGE_TARGET +ifeq (truetrue,$(strip $(BUILDING_VENDOR_BOOT_IMAGE))$(strip $(AB_OTA_UPDATER))) echo "$(GENERIC_KERNEL_CMDLINE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/cmdline -else # INSTALLED_VENDOR_BOOTIMAGE_TARGET not defined +else # not (BUILDING_VENDOR_BOOT_IMAGE and AB_OTA_UPDATER) ifdef INSTALLED_2NDBOOTLOADER_TARGET cp $(INSTALLED_2NDBOOTLOADER_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/second endif diff --git a/core/board_config.mk b/core/board_config.mk index 8ff16e2592..a329cb1f25 100644 --- a/core/board_config.mk +++ b/core/board_config.mk @@ -365,11 +365,6 @@ ifdef BOARD_BOOT_HEADER_VERSION ifneq ($(TARGET_NO_VENDOR_BOOT),true) BUILDING_VENDOR_BOOT_IMAGE := true endif - ifdef BUILDING_RECOVERY_IMAGE - ifneq ($(BOARD_USES_RECOVERY_AS_BOOT),true) - $(error Boot header version >=3 requires recovery as boot) - endif - endif endif endif .KATI_READONLY := BUILDING_VENDOR_BOOT_IMAGE diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index e704654937..ffcd38bb02 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -1072,7 +1072,13 @@ def _BuildBootableImage(sourcedir, fs_config_file, info_dict=None, cmd.append("--pagesize") cmd.append(open(fn).read().rstrip("\n")) - args = info_dict.get("mkbootimg_args") + # "boot" or "recovery", without extension. + partition_name = os.path.basename(sourcedir).lower() + + if partition_name == "recovery": + args = info_dict.get("recovery_mkbootimg_args") + else: + args = info_dict.get("mkbootimg_args") if args and args.strip(): cmd.extend(shlex.split(args)) @@ -1090,9 +1096,6 @@ def _BuildBootableImage(sourcedir, fs_config_file, info_dict=None, else: cmd.extend(["--output", img.name]) - # "boot" or "recovery", without extension. - partition_name = os.path.basename(sourcedir).lower() - if partition_name == "recovery": if info_dict.get("include_recovery_dtbo") == "true": fn = os.path.join(sourcedir, "recovery_dtbo")