add vendor_boot image support
The vendor_boot partition is generated by mkbootimg and contains all the device-specific information that used to reside in the boot partition. Bug: 137297791 Change-Id: I5b005097b73f59857c3a2f92d693b3e67ee8424e
This commit is contained in:
206
core/Makefile
206
core/Makefile
@@ -710,12 +710,10 @@ $(1)/$(DEPMOD_STAGING_SUBDIR)/$(3): $(2)
|
|||||||
(for MODULE in $$(PRIVATE_LOAD_MODULES); do basename $$$$MODULE >> $$@; done)
|
(for MODULE in $$(PRIVATE_LOAD_MODULES); do basename $$$$MODULE >> $$@; done)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Until support for a vendor-boot/vendor-ramdisk is added, store vendor ramdisk
|
ifneq ($(BUILDING_VENDOR_BOOT_IMAGE),true)
|
||||||
# kernel modules on the generic ramdisk as a stopgap.
|
# If there is no vendor boot partition, store vendor ramdisk kernel modules in the
|
||||||
ifneq ($(BOARD_VENDOR_RAMDISK_KERNEL_MODULES),)
|
# boot ramdisk.
|
||||||
BOARD_GENERIC_RAMDISK_KERNEL_MODULES += $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES)
|
BOARD_GENERIC_RAMDISK_KERNEL_MODULES += $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES)
|
||||||
endif
|
|
||||||
ifneq ($(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD),)
|
|
||||||
BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD += $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD)
|
BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD += $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -726,13 +724,13 @@ ifeq ($(BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD),)
|
|||||||
BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD := $(BOARD_GENERIC_RAMDISK_KERNEL_MODULES)
|
BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD := $(BOARD_GENERIC_RAMDISK_KERNEL_MODULES)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef BOARD_GENERIC_RAMDISK_KERNEL_MODULES
|
ifneq ($(strip $(BOARD_GENERIC_RAMDISK_KERNEL_MODULES)),)
|
||||||
ifeq ($(BOARD_USES_RECOVERY_AS_BOOT), true)
|
ifeq ($(BOARD_USES_RECOVERY_AS_BOOT), true)
|
||||||
BOARD_RECOVERY_KERNEL_MODULES += $(BOARD_GENERIC_RAMDISK_KERNEL_MODULES)
|
BOARD_RECOVERY_KERNEL_MODULES += $(BOARD_GENERIC_RAMDISK_KERNEL_MODULES)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef BOARD_RECOVERY_KERNEL_MODULES
|
ifneq ($(strip $(BOARD_RECOVERY_KERNEL_MODULES)),)
|
||||||
ifeq ($(BOARD_USES_RECOVERY_AS_BOOT), true)
|
ifeq ($(BOARD_USES_RECOVERY_AS_BOOT), true)
|
||||||
ifdef BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD
|
ifdef BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD
|
||||||
ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call module-load-list-copy-paths,$(call intermediates-dir-for,PACKAGING,ramdisk_modules),$(BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD),modules.load,$(TARGET_RECOVERY_ROOT_OUT)))
|
ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call module-load-list-copy-paths,$(call intermediates-dir-for,PACKAGING,ramdisk_modules),$(BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD),modules.load,$(TARGET_RECOVERY_ROOT_OUT)))
|
||||||
@@ -741,20 +739,27 @@ ifdef BOARD_RECOVERY_KERNEL_MODULES
|
|||||||
ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_RECOVERY_KERNEL_MODULES),$(TARGET_RECOVERY_ROOT_OUT),,$(call intermediates-dir-for,PACKAGING,depmod_recovery),$(BOARD_RECOVERY_KERNEL_MODULES_LOAD),modules.load.recovery))
|
ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_RECOVERY_KERNEL_MODULES),$(TARGET_RECOVERY_ROOT_OUT),,$(call intermediates-dir-for,PACKAGING,depmod_recovery),$(BOARD_RECOVERY_KERNEL_MODULES_LOAD),modules.load.recovery))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(strip $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES)),)
|
||||||
|
ifeq ($(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD),)
|
||||||
|
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES)
|
||||||
|
endif
|
||||||
|
ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_VENDOR_RAMDISK_KERNEL_MODULES),$(TARGET_VENDOR_RAMDISK_OUT),,$(call intermediates-dir-for,PACKAGING,depmod_vendor_ramdisk),$(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD),modules.load))
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(BOARD_USES_RECOVERY_AS_BOOT), true)
|
ifneq ($(BOARD_USES_RECOVERY_AS_BOOT), true)
|
||||||
ifdef BOARD_GENERIC_RAMDISK_KERNEL_MODULES
|
ifneq ($(strip $(BOARD_GENERIC_RAMDISK_KERNEL_MODULES)),)
|
||||||
ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_GENERIC_RAMDISK_KERNEL_MODULES),$(TARGET_RAMDISK_OUT),,$(call intermediates-dir-for,PACKAGING,depmod_ramdisk),$(BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD),modules.load))
|
ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_GENERIC_RAMDISK_KERNEL_MODULES),$(TARGET_RAMDISK_OUT),,$(call intermediates-dir-for,PACKAGING,depmod_ramdisk),$(BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD),modules.load))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef BOARD_VENDOR_KERNEL_MODULES
|
ifneq ($(strip $(BOARD_VENDOR_KERNEL_MODULES)),)
|
||||||
ifeq ($(BOARD_VENDOR_KERNEL_MODULES_LOAD),)
|
ifeq ($(BOARD_VENDOR_KERNEL_MODULES_LOAD),)
|
||||||
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(BOARD_VENDOR_KERNEL_MODULES)
|
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(BOARD_VENDOR_KERNEL_MODULES)
|
||||||
endif
|
endif
|
||||||
ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_VENDOR_KERNEL_MODULES),$(TARGET_OUT_VENDOR),vendor,$(call intermediates-dir-for,PACKAGING,depmod_vendor),$(BOARD_VENDOR_KERNEL_MODULES_LOAD),modules.load))
|
ALL_DEFAULT_INSTALLED_MODULES += $(call copy-many-files,$(call build-image-kernel-modules,$(BOARD_VENDOR_KERNEL_MODULES),$(TARGET_OUT_VENDOR),vendor,$(call intermediates-dir-for,PACKAGING,depmod_vendor),$(BOARD_VENDOR_KERNEL_MODULES_LOAD),modules.load))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef BOARD_ODM_KERNEL_MODULES
|
ifneq ($(strip $(BOARD_ODM_KERNEL_MODULES)),)
|
||||||
ifeq ($(BOARD_RECOVERY_KERNEL_MODULES_LOAD),)
|
ifeq ($(BOARD_RECOVERY_KERNEL_MODULES_LOAD),)
|
||||||
BOARD_ODM_KERNEL_MODULES_LOAD := $(BOARD_ODM_KERNEL_MODULES)
|
BOARD_ODM_KERNEL_MODULES_LOAD := $(BOARD_ODM_KERNEL_MODULES)
|
||||||
endif
|
endif
|
||||||
@@ -1034,24 +1039,18 @@ INTERNAL_BOOTIMAGE_ARGS := \
|
|||||||
$(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \
|
$(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \
|
||||||
--kernel $(INSTALLED_KERNEL_TARGET)
|
--kernel $(INSTALLED_KERNEL_TARGET)
|
||||||
|
|
||||||
ifdef BOARD_INCLUDE_DTB_IN_BOOTIMG
|
|
||||||
INTERNAL_BOOTIMAGE_ARGS += --dtb $(INSTALLED_DTBIMAGE_TARGET)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
|
ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
|
||||||
INTERNAL_BOOTIMAGE_ARGS += --ramdisk $(INSTALLED_RAMDISK_TARGET)
|
INTERNAL_BOOTIMAGE_ARGS += --ramdisk $(INSTALLED_RAMDISK_TARGET)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifndef BUILDING_VENDOR_BOOT_IMAGE
|
||||||
|
ifdef BOARD_INCLUDE_DTB_IN_BOOTIMG
|
||||||
|
INTERNAL_BOOTIMAGE_ARGS += --dtb $(INSTALLED_DTBIMAGE_TARGET)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
INTERNAL_BOOTIMAGE_FILES := $(filter-out --%,$(INTERNAL_BOOTIMAGE_ARGS))
|
INTERNAL_BOOTIMAGE_FILES := $(filter-out --%,$(INTERNAL_BOOTIMAGE_ARGS))
|
||||||
|
|
||||||
ifdef BOARD_KERNEL_BASE
|
|
||||||
INTERNAL_BOOTIMAGE_ARGS += --base $(BOARD_KERNEL_BASE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef BOARD_KERNEL_PAGESIZE
|
|
||||||
INTERNAL_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(PRODUCT_SUPPORTS_VERITY),true)
|
ifeq ($(PRODUCT_SUPPORTS_VERITY),true)
|
||||||
ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
|
ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
|
||||||
VERITY_KEYID := veritykeyid=id:`openssl x509 -in $(PRODUCT_VERITY_SIGNING_KEY).x509.pem -text \
|
VERITY_KEYID := veritykeyid=id:`openssl x509 -in $(PRODUCT_VERITY_SIGNING_KEY).x509.pem -text \
|
||||||
@@ -1060,8 +1059,22 @@ endif
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
INTERNAL_KERNEL_CMDLINE := $(strip $(INTERNAL_KERNEL_CMDLINE) buildvariant=$(TARGET_BUILD_VARIANT) $(VERITY_KEYID))
|
INTERNAL_KERNEL_CMDLINE := $(strip $(INTERNAL_KERNEL_CMDLINE) buildvariant=$(TARGET_BUILD_VARIANT) $(VERITY_KEYID))
|
||||||
|
|
||||||
|
ifndef BUILDING_VENDOR_BOOT_IMAGE
|
||||||
|
ifdef BOARD_KERNEL_BASE
|
||||||
|
INTERNAL_BOOTIMAGE_ARGS += --base $(BOARD_KERNEL_BASE)
|
||||||
|
endif
|
||||||
|
ifdef BOARD_KERNEL_PAGESIZE
|
||||||
|
INTERNAL_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
|
||||||
|
endif
|
||||||
ifdef INTERNAL_KERNEL_CMDLINE
|
ifdef INTERNAL_KERNEL_CMDLINE
|
||||||
INTERNAL_BOOTIMAGE_ARGS += --cmdline "$(INTERNAL_KERNEL_CMDLINE)"
|
INTERNAL_BOOTIMAGE_ARGS += --cmdline "$(INTERNAL_KERNEL_CMDLINE)"
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
# building vendor boot image, dtb/base/pagesize go there
|
||||||
|
ifdef GENERIC_KERNEL_CMDLINE
|
||||||
|
INTERNAL_BOOTIMAGE_ARGS += --cmdline "$(GENERIC_KERNEL_CMDLINE)"
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
INTERNAL_MKBOOTIMG_VERSION_ARGS := \
|
INTERNAL_MKBOOTIMG_VERSION_ARGS := \
|
||||||
@@ -1157,6 +1170,55 @@ INSTALLED_BOOTIMAGE_TARGET :=
|
|||||||
endif # BOARD_PREBUILT_BOOTIMAGE
|
endif # BOARD_PREBUILT_BOOTIMAGE
|
||||||
endif # TARGET_NO_KERNEL
|
endif # TARGET_NO_KERNEL
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# vendor boot image
|
||||||
|
ifeq ($(BUILDING_VENDOR_BOOT_IMAGE),true)
|
||||||
|
|
||||||
|
ifeq ($(PRODUCT_SUPPORTS_VERITY),true)
|
||||||
|
$(error vboot 1.0 does not support vendor_boot partition)
|
||||||
|
endif
|
||||||
|
|
||||||
|
INTERNAL_VENDOR_RAMDISK_FILES := $(filter $(TARGET_VENDOR_RAMDISK_OUT)/%, \
|
||||||
|
$(ALL_GENERATED_SOURCES) \
|
||||||
|
$(ALL_DEFAULT_INSTALLED_MODULES))
|
||||||
|
|
||||||
|
INTERNAL_VENDOR_RAMDISK_TARGET := $(call intermediates-dir-for,PACKAGING,vendor-boot)/vendor-ramdisk.cpio.gz
|
||||||
|
$(INTERNAL_VENDOR_RAMDISK_TARGET): $(MKBOOTFS) $(INTERNAL_VENDOR_RAMDISK_FILES) | $(MINIGZIP)
|
||||||
|
$(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_VENDOR_RAMDISK_OUT) | $(MINIGZIP) > $@
|
||||||
|
|
||||||
|
ifdef BOARD_INCLUDE_DTB_IN_BOOTIMG
|
||||||
|
INTERNAL_VENDOR_BOOTIMAGE_ARGS += --dtb $(INSTALLED_DTBIMAGE_TARGET)
|
||||||
|
endif
|
||||||
|
ifdef BOARD_KERNEL_BASE
|
||||||
|
INTERNAL_VENDOR_BOOTIMAGE_ARGS += --base $(BOARD_KERNEL_BASE)
|
||||||
|
endif
|
||||||
|
ifdef BOARD_KERNEL_PAGESIZE
|
||||||
|
INTERNAL_VENDOR_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
|
||||||
|
endif
|
||||||
|
ifdef INTERNAL_KERNEL_CMDLINE
|
||||||
|
INTERNAL_VENDOR_BOOTIMAGE_ARGS += --vendor_cmdline "$(INTERNAL_KERNEL_CMDLINE)"
|
||||||
|
endif
|
||||||
|
|
||||||
|
INSTALLED_VENDOR_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/vendor_boot.img
|
||||||
|
$(INSTALLED_VENDOR_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_VENDOR_RAMDISK_TARGET) $(INSTALLED_DTBIMAGE_TARGET)
|
||||||
|
ifeq ($(BOARD_AVB_ENABLE),true)
|
||||||
|
$(INSTALLED_VENDOR_BOOTIMAGE_TARGET): $(AVBTOOL) $(BOARD_AVB_VENDOR_BOOTIMAGE_KEY_PATH)
|
||||||
|
$(call pretty,"Target vendor_boot image: $@")
|
||||||
|
$(MKBOOTIMG) $(INTERNAL_VENDOR_BOOTIMAGE_ARGS) $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) --vendor_ramdisk $(INTERNAL_VENDOR_RAMDISK_TARGET) --vendor_boot $@
|
||||||
|
$(call assert-max-image-size,$@,$(BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE))
|
||||||
|
$(AVBTOOL) add_hash_footer \
|
||||||
|
--image $@ \
|
||||||
|
--partition_size $(BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE) \
|
||||||
|
--partition_name vendor_boot $(INTERNAL_AVB_VENDOR_BOOT_SIGNING_ARGS) \
|
||||||
|
$(BOARD_AVB_VENDOR_BOOT_ADD_HASH_FOOTER_ARGS)
|
||||||
|
else
|
||||||
|
$(INSTALLED_VENDOR_BOOTIMAGE_TARGET):
|
||||||
|
$(call pretty,"Target vendor_boot image: $@")
|
||||||
|
$(MKBOOTIMG) $(INTERNAL_VENDOR_BOOTIMAGE_ARGS) $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) --vendor_ramdisk $(INTERNAL_VENDOR_RAMDISK_TARGET) --vendor_boot $@
|
||||||
|
$(call assert-max-image-size,$@,$(BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE))
|
||||||
|
endif
|
||||||
|
endif # BUILDING_VENDOR_BOOT_IMAGE
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# NOTICE files
|
# NOTICE files
|
||||||
#
|
#
|
||||||
@@ -1917,11 +1979,16 @@ $(INSTALLED_RECOVERY_BUILD_PROP_TARGET): \
|
|||||||
$(hide) cat $(INSTALLED_SYSTEM_EXT_BUILD_PROP_TARGET) >> $@
|
$(hide) cat $(INSTALLED_SYSTEM_EXT_BUILD_PROP_TARGET) >> $@
|
||||||
$(call append-recovery-ui-properties,$(PRIVATE_RECOVERY_UI_PROPERTIES),$@)
|
$(call append-recovery-ui-properties,$(PRIVATE_RECOVERY_UI_PROPERTIES),$@)
|
||||||
|
|
||||||
INTERNAL_RECOVERYIMAGE_ARGS := \
|
ifdef INSTALLED_VENDOR_BOOTIMAGE_TARGET
|
||||||
$(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \
|
INTERNAL_RECOVERYIMAGE_ARGS := \
|
||||||
--kernel $(recovery_kernel) \
|
--kernel $(recovery_kernel) --ramdisk $(recovery_ramdisk)
|
||||||
--ramdisk $(recovery_ramdisk)
|
ifdef GENERIC_KERNEL_CMDLINE
|
||||||
|
INTERNAL_RECOVERYIMAGE_ARGS += --cmdline "$(GENERIC_KERNEL_CMDLINE)"
|
||||||
|
endif
|
||||||
|
else # INSTALLED_VENDOR_BOOTIMAGE_TARGET not defined
|
||||||
|
INTERNAL_RECOVERYIMAGE_ARGS := \
|
||||||
|
$(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \
|
||||||
|
--kernel $(recovery_kernel) --ramdisk $(recovery_ramdisk)
|
||||||
# Assumes this has already been stripped
|
# Assumes this has already been stripped
|
||||||
ifdef INTERNAL_KERNEL_CMDLINE
|
ifdef INTERNAL_KERNEL_CMDLINE
|
||||||
INTERNAL_RECOVERYIMAGE_ARGS += --cmdline "$(INTERNAL_KERNEL_CMDLINE)"
|
INTERNAL_RECOVERYIMAGE_ARGS += --cmdline "$(INTERNAL_KERNEL_CMDLINE)"
|
||||||
@@ -1938,13 +2005,14 @@ ifdef BOARD_PREBUILT_RECOVERY_DTBOIMAGE
|
|||||||
else
|
else
|
||||||
INTERNAL_RECOVERYIMAGE_ARGS += --recovery_dtbo $(BOARD_PREBUILT_DTBOIMAGE)
|
INTERNAL_RECOVERYIMAGE_ARGS += --recovery_dtbo $(BOARD_PREBUILT_DTBOIMAGE)
|
||||||
endif
|
endif
|
||||||
endif
|
endif # BOARD_INCLUDE_RECOVERY_DTBO
|
||||||
ifdef BOARD_INCLUDE_RECOVERY_ACPIO
|
ifdef BOARD_INCLUDE_RECOVERY_ACPIO
|
||||||
INTERNAL_RECOVERYIMAGE_ARGS += --recovery_acpio $(BOARD_RECOVERY_ACPIO)
|
INTERNAL_RECOVERYIMAGE_ARGS += --recovery_acpio $(BOARD_RECOVERY_ACPIO)
|
||||||
endif
|
endif
|
||||||
ifdef BOARD_INCLUDE_DTB_IN_BOOTIMG
|
ifdef BOARD_INCLUDE_DTB_IN_BOOTIMG
|
||||||
INTERNAL_RECOVERYIMAGE_ARGS += --dtb $(INSTALLED_DTBIMAGE_TARGET)
|
INTERNAL_RECOVERYIMAGE_ARGS += --dtb $(INSTALLED_DTBIMAGE_TARGET)
|
||||||
endif
|
endif
|
||||||
|
endif # INSTALLED_VENDOR_BOOTIMAGE_TARGET not defined
|
||||||
|
|
||||||
# $(1): output file
|
# $(1): output file
|
||||||
define build-recoveryimage-target
|
define build-recoveryimage-target
|
||||||
@@ -3184,6 +3252,7 @@ BOARD_AVB_ODM_ADD_HASHTREE_FOOTER_ARGS += \
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
BOOT_FOOTER_ARGS := BOARD_AVB_BOOT_ADD_HASH_FOOTER_ARGS
|
BOOT_FOOTER_ARGS := BOARD_AVB_BOOT_ADD_HASH_FOOTER_ARGS
|
||||||
|
VENDOR_BOOT_FOOTER_ARGS := BOARD_AVB_VENDOR_BOOT_ADD_HASH_FOOTER_ARGS
|
||||||
DTBO_FOOTER_ARGS := BOARD_AVB_DTBO_ADD_HASH_FOOTER_ARGS
|
DTBO_FOOTER_ARGS := BOARD_AVB_DTBO_ADD_HASH_FOOTER_ARGS
|
||||||
SYSTEM_FOOTER_ARGS := BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS
|
SYSTEM_FOOTER_ARGS := BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS
|
||||||
VENDOR_FOOTER_ARGS := BOARD_AVB_VENDOR_ADD_HASHTREE_FOOTER_ARGS
|
VENDOR_FOOTER_ARGS := BOARD_AVB_VENDOR_ADD_HASHTREE_FOOTER_ARGS
|
||||||
@@ -3242,6 +3311,10 @@ ifdef INSTALLED_BOOTIMAGE_TARGET
|
|||||||
$(eval $(call check-and-set-avb-args,boot))
|
$(eval $(call check-and-set-avb-args,boot))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef INSTALLED_VENDOR_BOOTIMAGE_TARGET
|
||||||
|
$(eval $(call check-and-set-avb-args,vendor_boot))
|
||||||
|
endif
|
||||||
|
|
||||||
$(eval $(call check-and-set-avb-args,system))
|
$(eval $(call check-and-set-avb-args,system))
|
||||||
|
|
||||||
ifdef INSTALLED_VENDORIMAGE_TARGET
|
ifdef INSTALLED_VENDORIMAGE_TARGET
|
||||||
@@ -3317,6 +3390,9 @@ define extract-avb-chain-public-keys
|
|||||||
$(if $(BOARD_AVB_BOOT_KEY_PATH),\
|
$(if $(BOARD_AVB_BOOT_KEY_PATH),\
|
||||||
$(hide) $(AVBTOOL) extract_public_key --key $(BOARD_AVB_BOOT_KEY_PATH) \
|
$(hide) $(AVBTOOL) extract_public_key --key $(BOARD_AVB_BOOT_KEY_PATH) \
|
||||||
--output $(1)/boot.avbpubkey)
|
--output $(1)/boot.avbpubkey)
|
||||||
|
$(if $(BOARD_AVB_VENDOR_BOOT_KEY_PATH),\
|
||||||
|
$(AVBTOOL) extract_public_key --key $(BOARD_AVB_VENDOR_BOOT_KEY_PATH) \
|
||||||
|
--output $(1)/vendor_boot.avbpubkey)
|
||||||
$(if $(BOARD_AVB_SYSTEM_KEY_PATH),\
|
$(if $(BOARD_AVB_SYSTEM_KEY_PATH),\
|
||||||
$(hide) $(AVBTOOL) extract_public_key --key $(BOARD_AVB_SYSTEM_KEY_PATH) \
|
$(hide) $(AVBTOOL) extract_public_key --key $(BOARD_AVB_SYSTEM_KEY_PATH) \
|
||||||
--output $(1)/system.avbpubkey)
|
--output $(1)/system.avbpubkey)
|
||||||
@@ -3404,6 +3480,7 @@ $(INSTALLED_VBMETAIMAGE_TARGET): PRIVATE_AVB_VBMETA_SIGNING_ARGS := \
|
|||||||
$(INSTALLED_VBMETAIMAGE_TARGET): \
|
$(INSTALLED_VBMETAIMAGE_TARGET): \
|
||||||
$(AVBTOOL) \
|
$(AVBTOOL) \
|
||||||
$(INSTALLED_BOOTIMAGE_TARGET) \
|
$(INSTALLED_BOOTIMAGE_TARGET) \
|
||||||
|
$(INSTALLED_VENDOR_BOOTIMAGE_TARGET) \
|
||||||
$(INSTALLED_SYSTEMIMAGE_TARGET) \
|
$(INSTALLED_SYSTEMIMAGE_TARGET) \
|
||||||
$(INSTALLED_VENDORIMAGE_TARGET) \
|
$(INSTALLED_VENDORIMAGE_TARGET) \
|
||||||
$(INSTALLED_PRODUCTIMAGE_TARGET) \
|
$(INSTALLED_PRODUCTIMAGE_TARGET) \
|
||||||
@@ -3770,6 +3847,10 @@ endif
|
|||||||
ifeq ($(INSTALLED_BOOTIMAGE_TARGET),)
|
ifeq ($(INSTALLED_BOOTIMAGE_TARGET),)
|
||||||
$(hide) echo "no_boot=true" >> $@
|
$(hide) echo "no_boot=true" >> $@
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(INSTALLED_VENDOR_BOOTIMAGE_TARGET),)
|
||||||
|
echo "vendor_boot=true" >> $@
|
||||||
|
echo "vendor_boot_size=$(BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE)" >> $@
|
||||||
|
endif
|
||||||
ifeq ($(INSTALLED_RECOVERYIMAGE_TARGET),)
|
ifeq ($(INSTALLED_RECOVERYIMAGE_TARGET),)
|
||||||
$(hide) echo "no_recovery=true" >> $@
|
$(hide) echo "no_recovery=true" >> $@
|
||||||
endif
|
endif
|
||||||
@@ -3822,6 +3903,12 @@ ifdef BOARD_AVB_BOOT_KEY_PATH
|
|||||||
$(hide) echo "avb_boot_algorithm=$(BOARD_AVB_BOOT_ALGORITHM)" >> $@
|
$(hide) echo "avb_boot_algorithm=$(BOARD_AVB_BOOT_ALGORITHM)" >> $@
|
||||||
$(hide) echo "avb_boot_rollback_index_location=$(BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION)" >> $@
|
$(hide) echo "avb_boot_rollback_index_location=$(BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION)" >> $@
|
||||||
endif # BOARD_AVB_BOOT_KEY_PATH
|
endif # BOARD_AVB_BOOT_KEY_PATH
|
||||||
|
echo "avb_vendor_boot_add_hash_footer_args=$(BOARD_AVB_VENDOR_BOOT_ADD_HASH_FOOTER_ARGS)" >> $@
|
||||||
|
ifdef BOARD_AVB_VENDOR_BOOT_KEY_PATH
|
||||||
|
echo "avb_vendor_boot_key_path=$(BOARD_AVB_VENDOR_BOOT_KEY_PATH)" >> $@
|
||||||
|
echo "avb_vendor_boot_algorithm=$(BOARD_AVB_VENDOR_BOOT_ALGORITHM)" >> $@
|
||||||
|
echo "avb_vendor_boot_rollback_index_location=$(BOARD_AVB_VENDOR_BOOT_ROLLBACK_INDEX_LOCATION)" >> $@
|
||||||
|
endif # BOARD_AVB_VENDOR_BOOT_KEY_PATH
|
||||||
$(hide) echo "avb_recovery_add_hash_footer_args=$(BOARD_AVB_RECOVERY_ADD_HASH_FOOTER_ARGS)" >> $@
|
$(hide) echo "avb_recovery_add_hash_footer_args=$(BOARD_AVB_RECOVERY_ADD_HASH_FOOTER_ARGS)" >> $@
|
||||||
ifdef BOARD_AVB_RECOVERY_KEY_PATH
|
ifdef BOARD_AVB_RECOVERY_KEY_PATH
|
||||||
$(hide) echo "avb_recovery_key_path=$(BOARD_AVB_RECOVERY_KEY_PATH)" >> $@
|
$(hide) echo "avb_recovery_key_path=$(BOARD_AVB_RECOVERY_KEY_PATH)" >> $@
|
||||||
@@ -3993,6 +4080,7 @@ endif
|
|||||||
$(BUILT_TARGET_FILES_PACKAGE): \
|
$(BUILT_TARGET_FILES_PACKAGE): \
|
||||||
$(INSTALLED_RAMDISK_TARGET) \
|
$(INSTALLED_RAMDISK_TARGET) \
|
||||||
$(INSTALLED_BOOTIMAGE_TARGET) \
|
$(INSTALLED_BOOTIMAGE_TARGET) \
|
||||||
|
$(INSTALLED_VENDOR_BOOTIMAGE_TARGET) \
|
||||||
$(INSTALLED_RADIOIMAGE_TARGET) \
|
$(INSTALLED_RADIOIMAGE_TARGET) \
|
||||||
$(INSTALLED_RECOVERYIMAGE_TARGET) \
|
$(INSTALLED_RECOVERYIMAGE_TARGET) \
|
||||||
$(INSTALLED_USERDATAIMAGE_TARGET) \
|
$(INSTALLED_USERDATAIMAGE_TARGET) \
|
||||||
@@ -4043,33 +4131,37 @@ ifneq (,$(INSTALLED_RECOVERYIMAGE_TARGET)$(filter true,$(BOARD_USES_RECOVERY_AS_
|
|||||||
$(hide) $(call package_files-copy-root, \
|
$(hide) $(call package_files-copy-root, \
|
||||||
$(TARGET_RECOVERY_ROOT_OUT),$(zip_root)/$(PRIVATE_RECOVERY_OUT)/RAMDISK)
|
$(TARGET_RECOVERY_ROOT_OUT),$(zip_root)/$(PRIVATE_RECOVERY_OUT)/RAMDISK)
|
||||||
ifdef INSTALLED_KERNEL_TARGET
|
ifdef INSTALLED_KERNEL_TARGET
|
||||||
$(hide) cp $(INSTALLED_KERNEL_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/kernel
|
cp $(INSTALLED_KERNEL_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/kernel
|
||||||
endif
|
endif
|
||||||
|
ifdef INSTALLED_VENDOR_BOOTIMAGE_TARGET
|
||||||
|
echo "$(GENERIC_KERNEL_CMDLINE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/cmdline
|
||||||
|
else # INSTALLED_VENDOR_BOOTIMAGE_TARGET not defined
|
||||||
ifdef INSTALLED_2NDBOOTLOADER_TARGET
|
ifdef INSTALLED_2NDBOOTLOADER_TARGET
|
||||||
$(hide) cp $(INSTALLED_2NDBOOTLOADER_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/second
|
cp $(INSTALLED_2NDBOOTLOADER_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/second
|
||||||
endif
|
endif
|
||||||
ifdef BOARD_INCLUDE_RECOVERY_DTBO
|
ifdef BOARD_INCLUDE_RECOVERY_DTBO
|
||||||
ifdef BOARD_PREBUILT_RECOVERY_DTBOIMAGE
|
ifdef BOARD_PREBUILT_RECOVERY_DTBOIMAGE
|
||||||
$(hide) cp $(BOARD_PREBUILT_RECOVERY_DTBOIMAGE) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/recovery_dtbo
|
cp $(BOARD_PREBUILT_RECOVERY_DTBOIMAGE) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/recovery_dtbo
|
||||||
else
|
else
|
||||||
$(hide) cp $(BOARD_PREBUILT_DTBOIMAGE) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/recovery_dtbo
|
cp $(BOARD_PREBUILT_DTBOIMAGE) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/recovery_dtbo
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
endif # BOARD_INCLUDE_RECOVERY_DTBO
|
||||||
ifdef BOARD_INCLUDE_RECOVERY_ACPIO
|
ifdef BOARD_INCLUDE_RECOVERY_ACPIO
|
||||||
$(hide) cp $(BOARD_RECOVERY_ACPIO) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/recovery_acpio
|
cp $(BOARD_RECOVERY_ACPIO) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/recovery_acpio
|
||||||
endif
|
endif
|
||||||
ifdef INSTALLED_DTBIMAGE_TARGET
|
ifdef INSTALLED_DTBIMAGE_TARGET
|
||||||
$(hide) cp $(INSTALLED_DTBIMAGE_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/dtb
|
cp $(INSTALLED_DTBIMAGE_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/dtb
|
||||||
endif
|
endif
|
||||||
ifdef INTERNAL_KERNEL_CMDLINE
|
ifdef INTERNAL_KERNEL_CMDLINE
|
||||||
$(hide) echo "$(INTERNAL_KERNEL_CMDLINE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/cmdline
|
echo "$(INTERNAL_KERNEL_CMDLINE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/cmdline
|
||||||
endif
|
endif
|
||||||
ifdef BOARD_KERNEL_BASE
|
ifdef BOARD_KERNEL_BASE
|
||||||
$(hide) echo "$(BOARD_KERNEL_BASE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/base
|
echo "$(BOARD_KERNEL_BASE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/base
|
||||||
endif
|
endif
|
||||||
ifdef BOARD_KERNEL_PAGESIZE
|
ifdef BOARD_KERNEL_PAGESIZE
|
||||||
$(hide) echo "$(BOARD_KERNEL_PAGESIZE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/pagesize
|
echo "$(BOARD_KERNEL_PAGESIZE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/pagesize
|
||||||
endif
|
endif
|
||||||
|
endif # INSTALLED_VENDOR_BOOTIMAGE_TARGET not defined
|
||||||
endif # INSTALLED_RECOVERYIMAGE_TARGET defined or BOARD_USES_RECOVERY_AS_BOOT is true
|
endif # INSTALLED_RECOVERYIMAGE_TARGET defined or BOARD_USES_RECOVERY_AS_BOOT is true
|
||||||
@# Components of the boot image
|
@# Components of the boot image
|
||||||
$(hide) mkdir -p $(zip_root)/BOOT
|
$(hide) mkdir -p $(zip_root)/BOOT
|
||||||
@@ -4085,25 +4177,42 @@ endif
|
|||||||
ifdef INSTALLED_KERNEL_TARGET
|
ifdef INSTALLED_KERNEL_TARGET
|
||||||
$(hide) cp $(INSTALLED_KERNEL_TARGET) $(zip_root)/BOOT/kernel
|
$(hide) cp $(INSTALLED_KERNEL_TARGET) $(zip_root)/BOOT/kernel
|
||||||
endif
|
endif
|
||||||
|
ifndef INSTALLED_VENDOR_BOOTIMAGE_TARGET
|
||||||
ifdef INSTALLED_2NDBOOTLOADER_TARGET
|
ifdef INSTALLED_2NDBOOTLOADER_TARGET
|
||||||
$(hide) cp $(INSTALLED_2NDBOOTLOADER_TARGET) $(zip_root)/BOOT/second
|
cp $(INSTALLED_2NDBOOTLOADER_TARGET) $(zip_root)/BOOT/second
|
||||||
endif
|
endif
|
||||||
ifdef INSTALLED_DTBIMAGE_TARGET
|
ifdef INSTALLED_DTBIMAGE_TARGET
|
||||||
$(hide) cp $(INSTALLED_DTBIMAGE_TARGET) $(zip_root)/BOOT/dtb
|
cp $(INSTALLED_DTBIMAGE_TARGET) $(zip_root)/BOOT/dtb
|
||||||
endif
|
|
||||||
ifdef INTERNAL_KERNEL_CMDLINE
|
|
||||||
$(hide) echo "$(INTERNAL_KERNEL_CMDLINE)" > $(zip_root)/BOOT/cmdline
|
|
||||||
endif
|
endif
|
||||||
|
echo "$(INTERNAL_KERNEL_CMDLINE)" > $(zip_root)/BOOT/cmdline
|
||||||
ifdef BOARD_KERNEL_BASE
|
ifdef BOARD_KERNEL_BASE
|
||||||
$(hide) echo "$(BOARD_KERNEL_BASE)" > $(zip_root)/BOOT/base
|
echo "$(BOARD_KERNEL_BASE)" > $(zip_root)/BOOT/base
|
||||||
endif
|
endif
|
||||||
ifdef BOARD_KERNEL_PAGESIZE
|
ifdef BOARD_KERNEL_PAGESIZE
|
||||||
$(hide) echo "$(BOARD_KERNEL_PAGESIZE)" > $(zip_root)/BOOT/pagesize
|
echo "$(BOARD_KERNEL_PAGESIZE)" > $(zip_root)/BOOT/pagesize
|
||||||
endif
|
endif
|
||||||
endif # BOARD_USES_RECOVERY_AS_BOOT
|
else # INSTALLED_VENDOR_BOOTIMAGE_TARGET defined
|
||||||
|
echo "$(GENERIC_KERNEL_CMDLINE)" > $(zip_root)/BOOT/cmdline
|
||||||
|
endif # INSTALLED_VENDOR_BOOTIMAGE_TARGET defined
|
||||||
|
endif # BOARD_USES_RECOVERY_AS_BOOT not true
|
||||||
$(hide) $(foreach t,$(INSTALLED_RADIOIMAGE_TARGET),\
|
$(hide) $(foreach t,$(INSTALLED_RADIOIMAGE_TARGET),\
|
||||||
mkdir -p $(zip_root)/RADIO; \
|
mkdir -p $(zip_root)/RADIO; \
|
||||||
cp $(t) $(zip_root)/RADIO/$(notdir $(t));)
|
cp $(t) $(zip_root)/RADIO/$(notdir $(t));)
|
||||||
|
ifdef INSTALLED_VENDOR_BOOTIMAGE_TARGET
|
||||||
|
mkdir -p $(zip_root)/VENDOR_BOOT
|
||||||
|
$(call package_files-copy-root, \
|
||||||
|
$(TARGET_VENDOR_RAMDISK_OUT),$(zip_root)/VENDOR_BOOT/RAMDISK)
|
||||||
|
ifdef INSTALLED_DTBIMAGE_TARGET
|
||||||
|
cp $(INSTALLED_DTBIMAGE_TARGET) $(zip_root)/VENDOR_BOOT/dtb
|
||||||
|
endif
|
||||||
|
ifdef BOARD_KERNEL_BASE
|
||||||
|
echo "$(BOARD_KERNEL_BASE)" > $(zip_root)/VENDOR_BOOT/base
|
||||||
|
endif
|
||||||
|
ifdef BOARD_KERNEL_PAGESIZE
|
||||||
|
echo "$(BOARD_KERNEL_PAGESIZE)" > $(zip_root)/VENDOR_BOOT/pagesize
|
||||||
|
endif
|
||||||
|
echo "$(INTERNAL_KERNEL_CMDLINE)" > $(zip_root)/VENDOR_BOOT/vendor_cmdline
|
||||||
|
endif # INSTALLED_VENDOR_BOOTIMAGE_TARGET
|
||||||
ifdef BUILDING_SYSTEM_IMAGE
|
ifdef BUILDING_SYSTEM_IMAGE
|
||||||
@# Contents of the system image
|
@# Contents of the system image
|
||||||
$(hide) $(call package_files-copy-root, \
|
$(hide) $(call package_files-copy-root, \
|
||||||
@@ -4256,6 +4365,9 @@ ifeq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
|
|||||||
@# BOOT/RAMDISK exists and contains the ramdisk for recovery if using BOARD_USES_RECOVERY_AS_BOOT.
|
@# BOOT/RAMDISK exists and contains the ramdisk for recovery if using BOARD_USES_RECOVERY_AS_BOOT.
|
||||||
$(hide) $(call fs_config,$(zip_root)/BOOT/RAMDISK,) > $(zip_root)/META/boot_filesystem_config.txt
|
$(hide) $(call fs_config,$(zip_root)/BOOT/RAMDISK,) > $(zip_root)/META/boot_filesystem_config.txt
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(INSTALLED_VENDOR_BOOTIMAGE_TARGET),)
|
||||||
|
$(call fs_config,$(zip_root)/VENDOR_BOOT/RAMDISK,) > $(zip_root)/META/vendor_boot_filesystem_config.txt
|
||||||
|
endif
|
||||||
ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
|
ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
|
||||||
@# BOOT/RAMDISK also exists and contains the first stage ramdisk if not using BOARD_BUILD_SYSTEM_ROOT_IMAGE.
|
@# BOOT/RAMDISK also exists and contains the first stage ramdisk if not using BOARD_BUILD_SYSTEM_ROOT_IMAGE.
|
||||||
$(hide) $(call fs_config,$(zip_root)/BOOT/RAMDISK,) > $(zip_root)/META/boot_filesystem_config.txt
|
$(hide) $(call fs_config,$(zip_root)/BOOT/RAMDISK,) > $(zip_root)/META/boot_filesystem_config.txt
|
||||||
|
@@ -336,6 +336,20 @@ else ifeq ($(PRODUCT_BUILD_RECOVERY_IMAGE),true)
|
|||||||
endif
|
endif
|
||||||
.KATI_READONLY := BUILDING_RECOVERY_IMAGE
|
.KATI_READONLY := BUILDING_RECOVERY_IMAGE
|
||||||
|
|
||||||
|
# Are we building a vendor boot image
|
||||||
|
BUILDING_VENDOR_BOOT_IMAGE :=
|
||||||
|
ifdef BOARD_BOOT_HEADER_VERSION
|
||||||
|
ifneq ($(call math_gt_or_eq,$(BOARD_BOOT_HEADER_VERSION),3),)
|
||||||
|
BUILDING_VENDOR_BOOT_IMAGE := true
|
||||||
|
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
|
||||||
|
|
||||||
# Are we building a ramdisk image
|
# Are we building a ramdisk image
|
||||||
BUILDING_RAMDISK_IMAGE := true
|
BUILDING_RAMDISK_IMAGE := true
|
||||||
ifeq ($(PRODUCT_BUILD_RAMDISK_IMAGE),)
|
ifeq ($(PRODUCT_BUILD_RAMDISK_IMAGE),)
|
||||||
|
@@ -241,6 +241,7 @@ _product_path_placeholder := ||PRODUCT-PATH-PH||
|
|||||||
_system_ext_path_placeholder := ||SYSTEM_EXT-PATH-PH||
|
_system_ext_path_placeholder := ||SYSTEM_EXT-PATH-PH||
|
||||||
_odm_path_placeholder := ||ODM-PATH-PH||
|
_odm_path_placeholder := ||ODM-PATH-PH||
|
||||||
TARGET_COPY_OUT_VENDOR := $(_vendor_path_placeholder)
|
TARGET_COPY_OUT_VENDOR := $(_vendor_path_placeholder)
|
||||||
|
TARGET_COPY_OUT_VENDOR_RAMDISK := vendor-ramdisk
|
||||||
TARGET_COPY_OUT_PRODUCT := $(_product_path_placeholder)
|
TARGET_COPY_OUT_PRODUCT := $(_product_path_placeholder)
|
||||||
# TODO(b/135957588) TARGET_COPY_OUT_PRODUCT_SERVICES will copy the target to
|
# TODO(b/135957588) TARGET_COPY_OUT_PRODUCT_SERVICES will copy the target to
|
||||||
# product
|
# product
|
||||||
@@ -849,6 +850,8 @@ TARGET_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RAMDISK)
|
|||||||
TARGET_RAMDISK_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)
|
TARGET_RAMDISK_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)
|
||||||
TARGET_DEBUG_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DEBUG_RAMDISK)
|
TARGET_DEBUG_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DEBUG_RAMDISK)
|
||||||
|
|
||||||
|
TARGET_VENDOR_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_RAMDISK)
|
||||||
|
|
||||||
TARGET_ROOT_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ROOT)
|
TARGET_ROOT_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ROOT)
|
||||||
TARGET_ROOT_OUT_BIN := $(TARGET_ROOT_OUT)/bin
|
TARGET_ROOT_OUT_BIN := $(TARGET_ROOT_OUT)/bin
|
||||||
TARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc
|
TARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc
|
||||||
|
@@ -1526,6 +1526,9 @@ bptimage: $(INSTALLED_BPTIMAGE_TARGET)
|
|||||||
.PHONY: vendorimage
|
.PHONY: vendorimage
|
||||||
vendorimage: $(INSTALLED_VENDORIMAGE_TARGET)
|
vendorimage: $(INSTALLED_VENDORIMAGE_TARGET)
|
||||||
|
|
||||||
|
.PHONY: vendorbootimage
|
||||||
|
vendorbootimage: $(INSTALLED_VENDOR_BOOTIMAGE_TARGET)
|
||||||
|
|
||||||
.PHONY: productimage
|
.PHONY: productimage
|
||||||
productimage: $(INSTALLED_PRODUCTIMAGE_TARGET)
|
productimage: $(INSTALLED_PRODUCTIMAGE_TARGET)
|
||||||
|
|
||||||
@@ -1568,6 +1571,7 @@ droidcore: $(filter $(HOST_OUT_ROOT)/%,$(modules_to_install)) \
|
|||||||
$(INSTALLED_CACHEIMAGE_TARGET) \
|
$(INSTALLED_CACHEIMAGE_TARGET) \
|
||||||
$(INSTALLED_BPTIMAGE_TARGET) \
|
$(INSTALLED_BPTIMAGE_TARGET) \
|
||||||
$(INSTALLED_VENDORIMAGE_TARGET) \
|
$(INSTALLED_VENDORIMAGE_TARGET) \
|
||||||
|
$(INSTALLED_VENDOR_BOOTIMAGE_TARGET) \
|
||||||
$(INSTALLED_ODMIMAGE_TARGET) \
|
$(INSTALLED_ODMIMAGE_TARGET) \
|
||||||
$(INSTALLED_SUPERIMAGE_EMPTY_TARGET) \
|
$(INSTALLED_SUPERIMAGE_EMPTY_TARGET) \
|
||||||
$(INSTALLED_PRODUCTIMAGE_TARGET) \
|
$(INSTALLED_PRODUCTIMAGE_TARGET) \
|
||||||
|
@@ -673,6 +673,7 @@ def AddImagesToTargetFiles(filename):
|
|||||||
|
|
||||||
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"
|
has_boot = OPTIONS.info_dict.get("no_boot") != "true"
|
||||||
|
has_vendor_boot = OPTIONS.info_dict.get("vendor_boot") == "true"
|
||||||
|
|
||||||
# {vendor,odm,product,system_ext}.img are unlike system.img or
|
# {vendor,odm,product,system_ext}.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
|
||||||
@@ -734,6 +735,19 @@ def AddImagesToTargetFiles(filename):
|
|||||||
if output_zip:
|
if output_zip:
|
||||||
boot_image.AddToZip(output_zip)
|
boot_image.AddToZip(output_zip)
|
||||||
|
|
||||||
|
if has_vendor_boot:
|
||||||
|
banner("vendor_boot")
|
||||||
|
vendor_boot_image = common.GetVendorBootImage(
|
||||||
|
"IMAGES/vendor_boot.img", "vendor_boot.img", OPTIONS.input_tmp,
|
||||||
|
"VENDOR_BOOT")
|
||||||
|
if vendor_boot_image:
|
||||||
|
partitions['vendor_boot'] = os.path.join(OPTIONS.input_tmp, "IMAGES",
|
||||||
|
"vendor_boot.img")
|
||||||
|
if not os.path.exists(partitions['vendor_boot']):
|
||||||
|
vendor_boot_image.WriteToDir(OPTIONS.input_tmp)
|
||||||
|
if output_zip:
|
||||||
|
vendor_boot_image.AddToZip(output_zip)
|
||||||
|
|
||||||
recovery_image = None
|
recovery_image = None
|
||||||
if has_recovery:
|
if has_recovery:
|
||||||
banner("recovery")
|
banner("recovery")
|
||||||
|
@@ -100,7 +100,7 @@ SPECIAL_CERT_STRINGS = ("PRESIGNED", "EXTERNAL")
|
|||||||
# that system_other is not in the list because we don't want to include its
|
# that system_other is not in the list because we don't want to include its
|
||||||
# descriptor into vbmeta.img.
|
# descriptor into vbmeta.img.
|
||||||
AVB_PARTITIONS = ('boot', 'dtbo', 'odm', 'product', 'recovery', 'system',
|
AVB_PARTITIONS = ('boot', 'dtbo', 'odm', 'product', 'recovery', 'system',
|
||||||
'system_ext', 'vendor')
|
'system_ext', 'vendor', 'vendor_boot')
|
||||||
|
|
||||||
# Chained VBMeta partitions.
|
# Chained VBMeta partitions.
|
||||||
AVB_VBMETA_PARTITIONS = ('vbmeta_system', 'vbmeta_vendor')
|
AVB_VBMETA_PARTITIONS = ('vbmeta_system', 'vbmeta_vendor')
|
||||||
@@ -733,6 +733,25 @@ def BuildVBMeta(image_path, partitions, name, needed_partitions):
|
|||||||
RunAndCheckOutput(cmd)
|
RunAndCheckOutput(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
def _MakeRamdisk(sourcedir, fs_config_file=None):
|
||||||
|
ramdisk_img = tempfile.NamedTemporaryFile()
|
||||||
|
|
||||||
|
if fs_config_file is not None and os.access(fs_config_file, os.F_OK):
|
||||||
|
cmd = ["mkbootfs", "-f", fs_config_file,
|
||||||
|
os.path.join(sourcedir, "RAMDISK")]
|
||||||
|
else:
|
||||||
|
cmd = ["mkbootfs", os.path.join(sourcedir, "RAMDISK")]
|
||||||
|
p1 = Run(cmd, stdout=subprocess.PIPE)
|
||||||
|
p2 = Run(["minigzip"], stdin=p1.stdout, stdout=ramdisk_img.file.fileno())
|
||||||
|
|
||||||
|
p2.wait()
|
||||||
|
p1.wait()
|
||||||
|
assert p1.returncode == 0, "mkbootfs of %s ramdisk failed" % (sourcedir,)
|
||||||
|
assert p2.returncode == 0, "minigzip of %s ramdisk failed" % (sourcedir,)
|
||||||
|
|
||||||
|
return ramdisk_img
|
||||||
|
|
||||||
|
|
||||||
def _BuildBootableImage(sourcedir, fs_config_file, info_dict=None,
|
def _BuildBootableImage(sourcedir, fs_config_file, info_dict=None,
|
||||||
has_ramdisk=False, two_step_image=False):
|
has_ramdisk=False, two_step_image=False):
|
||||||
"""Build a bootable image from the specified sourcedir.
|
"""Build a bootable image from the specified sourcedir.
|
||||||
@@ -746,24 +765,6 @@ def _BuildBootableImage(sourcedir, fs_config_file, info_dict=None,
|
|||||||
for building the requested image.
|
for building the requested image.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def make_ramdisk():
|
|
||||||
ramdisk_img = tempfile.NamedTemporaryFile()
|
|
||||||
|
|
||||||
if os.access(fs_config_file, os.F_OK):
|
|
||||||
cmd = ["mkbootfs", "-f", fs_config_file,
|
|
||||||
os.path.join(sourcedir, "RAMDISK")]
|
|
||||||
else:
|
|
||||||
cmd = ["mkbootfs", os.path.join(sourcedir, "RAMDISK")]
|
|
||||||
p1 = Run(cmd, stdout=subprocess.PIPE)
|
|
||||||
p2 = Run(["minigzip"], stdin=p1.stdout, stdout=ramdisk_img.file.fileno())
|
|
||||||
|
|
||||||
p2.wait()
|
|
||||||
p1.wait()
|
|
||||||
assert p1.returncode == 0, "mkbootfs of %s ramdisk failed" % (sourcedir,)
|
|
||||||
assert p2.returncode == 0, "minigzip of %s ramdisk failed" % (sourcedir,)
|
|
||||||
|
|
||||||
return ramdisk_img
|
|
||||||
|
|
||||||
if not os.access(os.path.join(sourcedir, "kernel"), os.F_OK):
|
if not os.access(os.path.join(sourcedir, "kernel"), os.F_OK):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@@ -776,7 +777,7 @@ def _BuildBootableImage(sourcedir, fs_config_file, info_dict=None,
|
|||||||
img = tempfile.NamedTemporaryFile()
|
img = tempfile.NamedTemporaryFile()
|
||||||
|
|
||||||
if has_ramdisk:
|
if has_ramdisk:
|
||||||
ramdisk_img = make_ramdisk()
|
ramdisk_img = _MakeRamdisk(sourcedir, fs_config_file)
|
||||||
|
|
||||||
# use MKBOOTIMG from environ, or "mkbootimg" if empty or not set
|
# use MKBOOTIMG from environ, or "mkbootimg" if empty or not set
|
||||||
mkbootimg = os.getenv('MKBOOTIMG') or "mkbootimg"
|
mkbootimg = os.getenv('MKBOOTIMG') or "mkbootimg"
|
||||||
@@ -938,6 +939,105 @@ def GetBootableImage(name, prebuilt_name, unpack_dir, tree_subdir,
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def _BuildVendorBootImage(sourcedir, info_dict=None):
|
||||||
|
"""Build a vendor boot image from the specified sourcedir.
|
||||||
|
|
||||||
|
Take a ramdisk, dtb, and vendor_cmdline from the input (in 'sourcedir'), and
|
||||||
|
turn them into a vendor boot image.
|
||||||
|
|
||||||
|
Return the image data, or None if sourcedir does not appear to contains files
|
||||||
|
for building the requested image.
|
||||||
|
"""
|
||||||
|
|
||||||
|
if info_dict is None:
|
||||||
|
info_dict = OPTIONS.info_dict
|
||||||
|
|
||||||
|
img = tempfile.NamedTemporaryFile()
|
||||||
|
|
||||||
|
ramdisk_img = _MakeRamdisk(sourcedir)
|
||||||
|
|
||||||
|
# use MKBOOTIMG from environ, or "mkbootimg" if empty or not set
|
||||||
|
mkbootimg = os.getenv('MKBOOTIMG') or "mkbootimg"
|
||||||
|
|
||||||
|
cmd = [mkbootimg]
|
||||||
|
|
||||||
|
fn = os.path.join(sourcedir, "dtb")
|
||||||
|
if os.access(fn, os.F_OK):
|
||||||
|
cmd.append("--dtb")
|
||||||
|
cmd.append(fn)
|
||||||
|
|
||||||
|
fn = os.path.join(sourcedir, "vendor_cmdline")
|
||||||
|
if os.access(fn, os.F_OK):
|
||||||
|
cmd.append("--vendor_cmdline")
|
||||||
|
cmd.append(open(fn).read().rstrip("\n"))
|
||||||
|
|
||||||
|
fn = os.path.join(sourcedir, "base")
|
||||||
|
if os.access(fn, os.F_OK):
|
||||||
|
cmd.append("--base")
|
||||||
|
cmd.append(open(fn).read().rstrip("\n"))
|
||||||
|
|
||||||
|
fn = os.path.join(sourcedir, "pagesize")
|
||||||
|
if os.access(fn, os.F_OK):
|
||||||
|
cmd.append("--pagesize")
|
||||||
|
cmd.append(open(fn).read().rstrip("\n"))
|
||||||
|
|
||||||
|
args = info_dict.get("mkbootimg_args")
|
||||||
|
if args and args.strip():
|
||||||
|
cmd.extend(shlex.split(args))
|
||||||
|
|
||||||
|
args = info_dict.get("mkbootimg_version_args")
|
||||||
|
if args and args.strip():
|
||||||
|
cmd.extend(shlex.split(args))
|
||||||
|
|
||||||
|
cmd.extend(["--vendor_ramdisk", ramdisk_img.name])
|
||||||
|
cmd.extend(["--vendor_boot", img.name])
|
||||||
|
|
||||||
|
RunAndCheckOutput(cmd)
|
||||||
|
|
||||||
|
# AVB: if enabled, calculate and add hash.
|
||||||
|
if info_dict.get("avb_enable") == "true":
|
||||||
|
avbtool = info_dict["avb_avbtool"]
|
||||||
|
part_size = info_dict["vendor_boot_size"]
|
||||||
|
cmd = [avbtool, "add_hash_footer", "--image", img.name,
|
||||||
|
"--partition_size", str(part_size), "--partition_name vendor_boot"]
|
||||||
|
AppendAVBSigningArgs(cmd, "vendor_boot")
|
||||||
|
args = info_dict.get("avb_vendor_boot_add_hash_footer_args")
|
||||||
|
if args and args.strip():
|
||||||
|
cmd.extend(shlex.split(args))
|
||||||
|
RunAndCheckOutput(cmd)
|
||||||
|
|
||||||
|
img.seek(os.SEEK_SET, 0)
|
||||||
|
data = img.read()
|
||||||
|
|
||||||
|
ramdisk_img.close()
|
||||||
|
img.close()
|
||||||
|
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
def GetVendorBootImage(name, prebuilt_name, unpack_dir, tree_subdir,
|
||||||
|
info_dict=None):
|
||||||
|
"""Return a File object with the desired vendor boot image.
|
||||||
|
|
||||||
|
Look for it under 'unpack_dir'/IMAGES, otherwise construct it from
|
||||||
|
the source files in 'unpack_dir'/'tree_subdir'."""
|
||||||
|
|
||||||
|
prebuilt_path = os.path.join(unpack_dir, "IMAGES", prebuilt_name)
|
||||||
|
if os.path.exists(prebuilt_path):
|
||||||
|
logger.info("using prebuilt %s from IMAGES...", prebuilt_name)
|
||||||
|
return File.FromLocalFile(name, prebuilt_path)
|
||||||
|
|
||||||
|
logger.info("building image from target_files %s...", tree_subdir)
|
||||||
|
|
||||||
|
if info_dict is None:
|
||||||
|
info_dict = OPTIONS.info_dict
|
||||||
|
|
||||||
|
data = _BuildVendorBootImage(os.path.join(unpack_dir, tree_subdir), info_dict)
|
||||||
|
if data:
|
||||||
|
return File(name, data)
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def Gunzip(in_filename, out_filename):
|
def Gunzip(in_filename, out_filename):
|
||||||
"""Gunzips the given gzip compressed file to a given output file."""
|
"""Gunzips the given gzip compressed file to a given output file."""
|
||||||
with gzip.open(in_filename, "rb") as in_file, \
|
with gzip.open(in_filename, "rb") as in_file, \
|
||||||
|
Reference in New Issue
Block a user