Add BUILD_RECOVERY_IMAGE and BUILD_BOOT_IMAGE flags
Bug: 123428770 Test: Built system-only image and checked that no boot.img or recovery.img files where created. Booted the resulting merged build on device. Change-Id: I760476502775e68125907c39e66b8665e789a798
This commit is contained in:
@@ -459,10 +459,11 @@ endif
|
|||||||
|
|
||||||
build_desc :=
|
build_desc :=
|
||||||
|
|
||||||
ifeq (,$(filter true, $(TARGET_NO_KERNEL) $(TARGET_NO_RECOVERY)))
|
|
||||||
INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img
|
|
||||||
else
|
|
||||||
INSTALLED_RECOVERYIMAGE_TARGET :=
|
INSTALLED_RECOVERYIMAGE_TARGET :=
|
||||||
|
ifdef BUILDING_RECOVERY_IMAGE
|
||||||
|
ifneq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
|
||||||
|
INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(INSTALLED_BUILD_PROP_TARGET): $(intermediate_system_build_prop) $(INSTALLED_RECOVERYIMAGE_TARGET)
|
$(INSTALLED_BUILD_PROP_TARGET): $(intermediate_system_build_prop) $(INSTALLED_RECOVERYIMAGE_TARGET)
|
||||||
@@ -900,13 +901,14 @@ ramdisk-nodeps: $(MKBOOTFS) | $(MINIGZIP)
|
|||||||
|
|
||||||
endif # BUILDING_RAMDISK_IMAGE
|
endif # BUILDING_RAMDISK_IMAGE
|
||||||
|
|
||||||
|
|
||||||
INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img
|
|
||||||
|
|
||||||
ifneq ($(strip $(TARGET_NO_KERNEL)),true)
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# the boot image, which is a collection of other images.
|
# the boot image, which is a collection of other images.
|
||||||
|
|
||||||
|
# This is defined here since we may be building recovery as boot
|
||||||
|
# below and only want to define this once
|
||||||
|
BUILT_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img
|
||||||
|
|
||||||
|
ifneq ($(strip $(TARGET_NO_KERNEL)),true)
|
||||||
INTERNAL_BOOTIMAGE_ARGS := \
|
INTERNAL_BOOTIMAGE_ARGS := \
|
||||||
$(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \
|
$(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \
|
||||||
--kernel $(INSTALLED_KERNEL_TARGET)
|
--kernel $(INSTALLED_KERNEL_TARGET)
|
||||||
@@ -945,8 +947,10 @@ INTERNAL_MKBOOTIMG_VERSION_ARGS := \
|
|||||||
--os_version $(PLATFORM_VERSION) \
|
--os_version $(PLATFORM_VERSION) \
|
||||||
--os_patch_level $(PLATFORM_SECURITY_PATCH)
|
--os_patch_level $(PLATFORM_SECURITY_PATCH)
|
||||||
|
|
||||||
# We build recovery as boot image if BOARD_USES_RECOVERY_AS_BOOT is true.
|
# Define these only if we are building boot
|
||||||
ifneq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
|
ifdef BUILDING_BOOT_IMAGE
|
||||||
|
INSTALLED_BOOTIMAGE_TARGET := $(BUILT_BOOTIMAGE_TARGET)
|
||||||
|
|
||||||
ifeq ($(TARGET_BOOTIMAGE_USE_EXT2),true)
|
ifeq ($(TARGET_BOOTIMAGE_USE_EXT2),true)
|
||||||
$(error TARGET_BOOTIMAGE_USE_EXT2 is not supported anymore)
|
$(error TARGET_BOOTIMAGE_USE_EXT2 is not supported anymore)
|
||||||
|
|
||||||
@@ -1017,7 +1021,7 @@ bootimage-nodeps: $(MKBOOTIMG)
|
|||||||
$(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE))
|
$(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE))
|
||||||
|
|
||||||
endif # TARGET_BOOTIMAGE_USE_EXT2
|
endif # TARGET_BOOTIMAGE_USE_EXT2
|
||||||
endif # BOARD_USES_RECOVERY_AS_BOOT
|
endif # BUILDING_BOOT_IMAGE
|
||||||
|
|
||||||
else # TARGET_NO_KERNEL == "true"
|
else # TARGET_NO_KERNEL == "true"
|
||||||
ifdef BOARD_PREBUILT_BOOTIMAGE
|
ifdef BOARD_PREBUILT_BOOTIMAGE
|
||||||
@@ -1493,7 +1497,7 @@ endef
|
|||||||
# Recovery image
|
# Recovery image
|
||||||
|
|
||||||
# Recovery image exists if we are building recovery, or building recovery as boot.
|
# Recovery image exists if we are building recovery, or building recovery as boot.
|
||||||
ifneq (,$(INSTALLED_RECOVERYIMAGE_TARGET)$(filter true,$(BOARD_USES_RECOVERY_AS_BOOT)))
|
ifdef BUILDING_RECOVERY_IMAGE
|
||||||
|
|
||||||
INTERNAL_RECOVERYIMAGE_FILES := $(filter $(TARGET_RECOVERY_OUT)/%, \
|
INTERNAL_RECOVERYIMAGE_FILES := $(filter $(TARGET_RECOVERY_OUT)/%, \
|
||||||
$(ALL_DEFAULT_INSTALLED_MODULES))
|
$(ALL_DEFAULT_INSTALLED_MODULES))
|
||||||
@@ -1506,6 +1510,7 @@ INSTALLED_FILES_JSON_RECOVERY := $(INSTALLED_FILES_FILE_RECOVERY:.txt=.json)
|
|||||||
# build-recoveryimage-target, which would touch the files under TARGET_RECOVERY_OUT and race with
|
# build-recoveryimage-target, which would touch the files under TARGET_RECOVERY_OUT and race with
|
||||||
# the call to FILELIST.
|
# the call to FILELIST.
|
||||||
ifeq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
|
ifeq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
|
||||||
|
INSTALLED_BOOTIMAGE_TARGET := $(BUILT_BOOTIMAGE_TARGET)
|
||||||
$(INSTALLED_FILES_FILE_RECOVERY): $(INSTALLED_BOOTIMAGE_TARGET)
|
$(INSTALLED_FILES_FILE_RECOVERY): $(INSTALLED_BOOTIMAGE_TARGET)
|
||||||
else
|
else
|
||||||
$(INSTALLED_FILES_FILE_RECOVERY): $(INSTALLED_RECOVERYIMAGE_TARGET)
|
$(INSTALLED_FILES_FILE_RECOVERY): $(INSTALLED_RECOVERYIMAGE_TARGET)
|
||||||
@@ -1924,9 +1929,9 @@ recoveryimage-nodeps:
|
|||||||
@echo "make $@: ignoring dependencies"
|
@echo "make $@: ignoring dependencies"
|
||||||
$(call build-recoveryimage-target, $(INSTALLED_RECOVERYIMAGE_TARGET))
|
$(call build-recoveryimage-target, $(INSTALLED_RECOVERYIMAGE_TARGET))
|
||||||
|
|
||||||
else # INSTALLED_RECOVERYIMAGE_TARGET not defined
|
else # BUILDING_RECOVERY_IMAGE
|
||||||
RECOVERY_RESOURCE_ZIP :=
|
RECOVERY_RESOURCE_ZIP :=
|
||||||
endif
|
endif # BUILDING_RECOVERY_IMAGE
|
||||||
|
|
||||||
.PHONY: recoveryimage
|
.PHONY: recoveryimage
|
||||||
recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_RESOURCE_ZIP)
|
recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_RESOURCE_ZIP)
|
||||||
@@ -3908,6 +3913,9 @@ endif
|
|||||||
ifdef BOARD_BOOTIMAGE_PARTITION_SIZE
|
ifdef BOARD_BOOTIMAGE_PARTITION_SIZE
|
||||||
$(hide) echo "boot_size=$(BOARD_BOOTIMAGE_PARTITION_SIZE)" >> $(zip_root)/META/misc_info.txt
|
$(hide) echo "boot_size=$(BOARD_BOOTIMAGE_PARTITION_SIZE)" >> $(zip_root)/META/misc_info.txt
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(INSTALLED_BOOTIMAGE_TARGET),)
|
||||||
|
$(hide) echo "no_boot=true" >> $(zip_root)/META/misc_info.txt
|
||||||
|
endif
|
||||||
ifeq ($(INSTALLED_RECOVERYIMAGE_TARGET),)
|
ifeq ($(INSTALLED_RECOVERYIMAGE_TARGET),)
|
||||||
$(hide) echo "no_recovery=true" >> $(zip_root)/META/misc_info.txt
|
$(hide) echo "no_recovery=true" >> $(zip_root)/META/misc_info.txt
|
||||||
endif
|
endif
|
||||||
|
@@ -290,8 +290,33 @@ else ifeq ($(PRODUCT_BUILD_CACHE_IMAGE),true)
|
|||||||
endif
|
endif
|
||||||
.KATI_READONLY := BUILDING_CACHE_IMAGE
|
.KATI_READONLY := BUILDING_CACHE_IMAGE
|
||||||
|
|
||||||
# TODO: Add BUILDING_BOOT_IMAGE / BUILDING_RECOVERY_IMAGE
|
# Are we building a boot image
|
||||||
# This gets complicated with BOARD_USES_RECOVERY_AS_BOOT, so skipping for now.
|
BUILDING_BOOT_IMAGE :=
|
||||||
|
ifeq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
|
||||||
|
BUILDING_BOOT_IMAGE :=
|
||||||
|
else ifeq ($(PRODUCT_BUILD_BOOT_IMAGE),)
|
||||||
|
ifdef BOARD_BOOTIMAGE_PARTITION_SIZE
|
||||||
|
BUILDING_BOOT_IMAGE := true
|
||||||
|
endif
|
||||||
|
else ifeq ($(PRODUCT_BUILD_BOOT_IMAGE),true)
|
||||||
|
BUILDING_BOOT_IMAGE := true
|
||||||
|
endif
|
||||||
|
.KATI_READONLY := BUILDING_BOOT_IMAGE
|
||||||
|
|
||||||
|
# Are we building a recovery image
|
||||||
|
BUILDING_RECOVERY_IMAGE :=
|
||||||
|
ifeq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
|
||||||
|
BUILDING_RECOVERY_IMAGE := true
|
||||||
|
else ifeq ($(PRODUCT_BUILD_RECOVERY_IMAGE),)
|
||||||
|
ifdef BOARD_RECOVERYIMAGE_PARTITION_SIZE
|
||||||
|
ifeq (,$(filter true, $(TARGET_NO_KERNEL) $(TARGET_NO_RECOVERY)))
|
||||||
|
BUILDING_RECOVERY_IMAGE := true
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
else ifeq ($(PRODUCT_BUILD_RECOVERY_IMAGE),true)
|
||||||
|
BUILDING_RECOVERY_IMAGE := true
|
||||||
|
endif
|
||||||
|
.KATI_READONLY := BUILDING_RECOVERY_IMAGE
|
||||||
|
|
||||||
# Are we building a ramdisk image
|
# Are we building a ramdisk image
|
||||||
BUILDING_RAMDISK_IMAGE := true
|
BUILDING_RAMDISK_IMAGE := true
|
||||||
|
@@ -355,9 +355,12 @@ _product_single_value_vars += PRODUCT_BUILD_ODM_IMAGE
|
|||||||
_product_single_value_vars += PRODUCT_BUILD_CACHE_IMAGE
|
_product_single_value_vars += PRODUCT_BUILD_CACHE_IMAGE
|
||||||
_product_single_value_vars += PRODUCT_BUILD_RAMDISK_IMAGE
|
_product_single_value_vars += PRODUCT_BUILD_RAMDISK_IMAGE
|
||||||
_product_single_value_vars += PRODUCT_BUILD_USERDATA_IMAGE
|
_product_single_value_vars += PRODUCT_BUILD_USERDATA_IMAGE
|
||||||
|
_product_single_value_vars += PRODUCT_BUILD_RECOVERY_IMAGE
|
||||||
|
_product_single_value_vars += PRODUCT_BUILD_BOOT_IMAGE
|
||||||
|
|
||||||
_product_list_vars += PRODUCT_UPDATABLE_BOOT_MODULES
|
_product_list_vars += PRODUCT_UPDATABLE_BOOT_MODULES
|
||||||
_product_list_vars += PRODUCT_UPDATABLE_BOOT_LOCATIONS
|
_product_list_vars += PRODUCT_UPDATABLE_BOOT_LOCATIONS
|
||||||
|
|
||||||
# Whether the product would like to check prebuilt ELF files.
|
# Whether the product would like to check prebuilt ELF files.
|
||||||
_product_single_value_vars += PRODUCT_CHECK_ELF_FILES
|
_product_single_value_vars += PRODUCT_CHECK_ELF_FILES
|
||||||
|
|
||||||
|
@@ -405,7 +405,9 @@ $(foreach image, \
|
|||||||
ODM \
|
ODM \
|
||||||
CACHE \
|
CACHE \
|
||||||
RAMDISK \
|
RAMDISK \
|
||||||
USERDATA, \
|
USERDATA \
|
||||||
|
BOOT \
|
||||||
|
RECOVERY, \
|
||||||
$(eval $(call product-build-image-config,$(image))))
|
$(eval $(call product-build-image-config,$(image))))
|
||||||
|
|
||||||
product-build-image-config :=
|
product-build-image-config :=
|
||||||
|
@@ -730,6 +730,7 @@ def AddImagesToTargetFiles(filename):
|
|||||||
OPTIONS.info_dict = common.LoadInfoDict(OPTIONS.input_tmp, repacking=True)
|
OPTIONS.info_dict = common.LoadInfoDict(OPTIONS.input_tmp, repacking=True)
|
||||||
|
|
||||||
has_recovery = OPTIONS.info_dict.get("no_recovery") != "true"
|
has_recovery = OPTIONS.info_dict.get("no_recovery") != "true"
|
||||||
|
has_boot = OPTIONS.info_dict.get("no_boot") != "true"
|
||||||
|
|
||||||
# {vendor,odm,product,product_services}.img are unlike system.img or
|
# {vendor,odm,product,product_services}.img are unlike system.img or
|
||||||
# system_other.img. Because it could be built from source, or dropped into
|
# system_other.img. Because it could be built from source, or dropped into
|
||||||
@@ -777,17 +778,19 @@ def AddImagesToTargetFiles(filename):
|
|||||||
def banner(s):
|
def banner(s):
|
||||||
logger.info("\n\n++++ " + s + " ++++\n\n")
|
logger.info("\n\n++++ " + s + " ++++\n\n")
|
||||||
|
|
||||||
banner("boot")
|
boot_image = None
|
||||||
# common.GetBootableImage() returns the image directly if present.
|
if has_boot:
|
||||||
boot_image = common.GetBootableImage(
|
banner("boot")
|
||||||
"IMAGES/boot.img", "boot.img", OPTIONS.input_tmp, "BOOT")
|
# common.GetBootableImage() returns the image directly if present.
|
||||||
# boot.img may be unavailable in some targets (e.g. aosp_arm64).
|
boot_image = common.GetBootableImage(
|
||||||
if boot_image:
|
"IMAGES/boot.img", "boot.img", OPTIONS.input_tmp, "BOOT")
|
||||||
partitions['boot'] = os.path.join(OPTIONS.input_tmp, "IMAGES", "boot.img")
|
# boot.img may be unavailable in some targets (e.g. aosp_arm64).
|
||||||
if not os.path.exists(partitions['boot']):
|
if boot_image:
|
||||||
boot_image.WriteToDir(OPTIONS.input_tmp)
|
partitions['boot'] = os.path.join(OPTIONS.input_tmp, "IMAGES", "boot.img")
|
||||||
if output_zip:
|
if not os.path.exists(partitions['boot']):
|
||||||
boot_image.AddToZip(output_zip)
|
boot_image.WriteToDir(OPTIONS.input_tmp)
|
||||||
|
if output_zip:
|
||||||
|
boot_image.AddToZip(output_zip)
|
||||||
|
|
||||||
recovery_image = None
|
recovery_image = None
|
||||||
if has_recovery:
|
if has_recovery:
|
||||||
|
Reference in New Issue
Block a user