From bc570b0ec41058ce18f3a4db48e028adfda22f54 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Wed, 5 Nov 2014 21:30:23 +0000 Subject: [PATCH] Redo BOARD_CUSTOM_BOOTIMG_MK support Simplified version of the previous implementation. Recovery's ramdisk is spun off from the main recovery target again to allow overriding just the image-generation step [mikeioannina]: Squash cm-13.0 changes and adapt to N --- core/Makefile | 56 +++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/core/Makefile b/core/Makefile index 9a709d1bd..06889145b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -580,7 +580,9 @@ bootimage-nodeps: $(MKBOOTIMG) $(BOOT_SIGNER) $(BOOT_SIGNER) /boot $(INSTALLED_BOOTIMAGE_TARGET) $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).pk8 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).x509.pem $(INSTALLED_BOOTIMAGE_TARGET) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) -else ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT)) # PRODUCT_SUPPORTS_BOOT_SIGNER != true +else ifndef BOARD_CUSTOM_BOOTIMG_MK + + ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT)) # PRODUCT_SUPPORTS_BOOT_SIGNER != true $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(VBOOT_SIGNER) $(call pretty,"Target boot image: $@") @@ -595,7 +597,7 @@ bootimage-nodeps: $(MKBOOTIMG) $(VBOOT_SIGNER) $(VBOOT_SIGNER) $(FUTILITY) $(INSTALLED_BOOTIMAGE_TARGET).unsigned $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbpubk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbprivk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_SUBKEY).vbprivk $(INSTALLED_BOOTIMAGE_TARGET).keyblock $(INSTALLED_BOOTIMAGE_TARGET) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) -else # PRODUCT_SUPPORTS_VBOOT != true + else # PRODUCT_SUPPORTS_VBOOT != true $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(call pretty,"Target boot image: $@") @@ -610,7 +612,8 @@ bootimage-nodeps: $(MKBOOTIMG) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) @echo -e ${CL_INS}"Made boot image: $@"${CL_RST} -endif # TARGET_BOOTIMAGE_USE_EXT2 + endif # PRODUCT_SUPPORTS_VBOOT +endif # TARGET_BOOTIMAGE_USE_EXT2 / BOARD_CUSTOM_BOOTIMG_MK endif # BOARD_USES_RECOVERY_AS_BOOT else # TARGET_NO_KERNEL @@ -872,6 +875,7 @@ recovery_initrc := $(call include-path-for, recovery)/etc/init.rc recovery_sepolicy := $(call intermediates-dir-for,ETC,sepolicy.recovery)/sepolicy.recovery recovery_kernel := $(INSTALLED_KERNEL_TARGET) # same as a non-recovery system recovery_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.img +recovery_uncompressed_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.cpio recovery_build_prop := $(intermediate_system_build_prop) recovery_resources_common := $(call include-path-for, recovery)/res @@ -994,10 +998,8 @@ $(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) $(extra_keys) @mkdir -p $(dir $@) java -jar $(DUMPKEY_JAR) $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys) > $@ -RECOVERYIMAGE_ID_FILE := $(PRODUCT_OUT)/recovery.id -# $(1): output file -define build-recoveryimage-target - @echo -e ${CL_CYN}"----- Making recovery image ------"${CL_RST} +define build-recoveryramdisk + @echo -e ${CL_CYN}"----- Making recovery ramdisk ------"${CL_RST} $(hide) mkdir -p $(TARGET_RECOVERY_OUT) $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/etc $(TARGET_RECOVERY_ROOT_OUT)/sdcard $(TARGET_RECOVERY_ROOT_OUT)/tmp @echo Copying baseline ramdisk... @@ -1025,7 +1027,11 @@ define build-recoveryimage-target $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/system_root; \ rm -rf $(TARGET_RECOVERY_ROOT_OUT)/system; \ ln -sf /system_root/system $(TARGET_RECOVERY_ROOT_OUT)/system) # Mount the system_root_image to /system_root and symlink /system. - $(hide) $(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk) +endef + +RECOVERYIMAGE_ID_FILE := $(PRODUCT_OUT)/recovery.id +# $(1): output file +define build-recoveryimage-target $(if $(filter true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT)), \ $(hide) $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(1).unsigned, \ $(hide) $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(1) --id > $(RECOVERYIMAGE_ID_FILE)) @@ -1054,20 +1060,36 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \ $(recovery_build_prop) $(recovery_resource_deps) \ $(recovery_fstab) \ $(RECOVERY_INSTALL_OTA_KEYS) - $(call pretty,"Target boot image from recovery: $@") - $(call build-recoveryimage-target, $@) + $(call pretty,"Target boot image from recovery: $@") + $(call build-recoveryramdisk) + $(hide) $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) > $(recovery_uncompressed_ramdisk) + $(hide) $(MINIGZIP) < $(recovery_uncompressed_ramdisk) > $(recovery_ramdisk) + $(call build-recoveryimage-target, $@) endif -$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \ +$(recovery_uncompressed_ramdisk): $(MKBOOTFS) \ $(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(INTERNAL_RECOVERYIMAGE_FILES) \ - $(recovery_initrc) $(recovery_sepolicy) $(recovery_kernel) \ + $(recovery_initrc) $(recovery_sepolicy) \ $(INSTALLED_2NDBOOTLOADER_TARGET) \ $(recovery_build_prop) $(recovery_resource_deps) $(recovery_root_deps) \ $(recovery_fstab) \ $(RECOVERY_INSTALL_OTA_KEYS) - $(call build-recoveryimage-target, $@) + $(call build-recoveryramdisk) + @echo -e ${CL_CYN}"----- Making uncompressed recovery ramdisk ------"${CL_RST} + $(hide) $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) > $@ + +$(recovery_ramdisk): $(MINIGZIP) \ + $(recovery_uncompressed_ramdisk) + @echo -e ${CL_CYN}"----- Making compressed recovery ramdisk ------"${CL_RST} + $(hide) $(MINIGZIP) < $(recovery_uncompressed_ramdisk) > $@ + +ifndef BOARD_CUSTOM_BOOTIMG_MK +$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(recovery_ramdisk) $(recovery_kernel) + @echo -e ${CL_CYN}"----- Making recovery image ------"${CL_RST} + $(call build-recoveryimage-target, $@) +endif # BOARD_CUSTOM_BOOTIMG_MK ifdef RECOVERY_RESOURCE_ZIP $(RECOVERY_RESOURCE_ZIP): $(INSTALLED_RECOVERYIMAGE_TARGET) | $(ZIPTIME) @@ -1079,6 +1101,9 @@ endif .PHONY: recoveryimage-nodeps recoveryimage-nodeps: @echo "make $@: ignoring dependencies" + $(call build-recoveryramdisk) + $(hide) $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) > $(recovery_uncompressed_ramdisk) + $(hide) $(MINIGZIP) < $(recovery_uncompressed_ramdisk) > $(recovery_ramdisk) $(call build-recoveryimage-target, $(INSTALLED_RECOVERYIMAGE_TARGET)) else # INSTALLED_RECOVERYIMAGE_TARGET not defined @@ -1104,6 +1129,11 @@ ifeq ($(BOARD_NAND_SPARE_SIZE),) BOARD_NAND_SPARE_SIZE := 64 endif +ifdef BOARD_CUSTOM_BOOTIMG_MK +include $(BOARD_CUSTOM_BOOTIMG_MK) +endif + + # ----------------------------------------------------------------- # system image # -- 2.11.0