From 49968aa1379e669791173e54dab488975fe541d0 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Mon, 9 Nov 2020 11:52:52 -0800 Subject: [PATCH] aosp_arm64 Copy boot image from $OUT to target files If BOARD_COPY_BOOT_IMAGE_TO_TARGET_FILES is defined, in target files, instead of rebuilding the boot image, copy the boot image already built in $OUT to target files package directly so that they are the same package. Define BOARD_COPY_BOOT_IMAGE_TO_TARGET_FILES for aosp_arm64. The GKI APEX is built using the boot image in $OUT. If the boot image in $OUT is different from the boot image in target files, aka the generic boot image we release, the GKI APEX we built is invalid. If another device needs to copy $OUT/boot.img to target files, it can define BOARD_COPY_BOOT_IMAGE_TO_TARGET_FILES. Fixes: 172682114 Test: lunch aosp_arm64 && Change-Id: I10fc7a5aa36e976dbeaf25434239687455bba061 --- core/Makefile | 9 ++++++--- core/board_config.mk | 3 +++ target/board/generic_arm64/BoardConfig.mk | 3 +++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index add62b439..6c6c7c800 100644 --- a/core/Makefile +++ b/core/Makefile @@ -4446,7 +4446,8 @@ endif ifdef BUILDING_BOOT_IMAGE $(BUILT_TARGET_FILES_PACKAGE): $(INTERNAL_RAMDISK_FILES) -else ifdef INTERNAL_PREBUILT_BOOTIMAGE +endif +ifneq (,$(INTERNAL_PREBUILT_BOOTIMAGE) $(filter true,$(BOARD_COPY_BOOT_IMAGE_TO_TARGET_FILES))) $(BUILT_TARGET_FILES_PACKAGE): $(INSTALLED_BOOTIMAGE_TARGET) endif @@ -4745,10 +4746,12 @@ ifdef BOARD_PREBUILT_SYSTEM_EXTIMAGE $(hide) mkdir -p $(zip_root)/IMAGES $(hide) cp $(INSTALLED_SYSTEM_EXTIMAGE_TARGET) $(zip_root)/IMAGES/ endif -ifdef INTERNAL_PREBUILT_BOOTIMAGE +ifneq (,$(INTERNAL_PREBUILT_BOOTIMAGE) $(filter true,$(BOARD_COPY_BOOT_IMAGE_TO_TARGET_FILES))) +ifdef INSTALLED_BOOTIMAGE_TARGET $(hide) mkdir -p $(zip_root)/IMAGES $(hide) cp $(INSTALLED_BOOTIMAGE_TARGET) $(zip_root)/IMAGES/ -endif +endif # INSTALLED_BOOTIMAGE_TARGET +endif # INTERNAL_PREBUILT_BOOTIMAGE != "" || BOARD_COPY_BOOT_IMAGE_TO_TARGET_FILES == true ifdef BOARD_PREBUILT_ODMIMAGE $(hide) mkdir -p $(zip_root)/IMAGES $(hide) cp $(INSTALLED_ODMIMAGE_TARGET) $(zip_root)/IMAGES/ diff --git a/core/board_config.mk b/core/board_config.mk index 457b3bf07..bc5234508 100644 --- a/core/board_config.mk +++ b/core/board_config.mk @@ -107,11 +107,14 @@ _board_strip_readonly_list += \ # recovery resources are built to vendor_boot. # - BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT controls whether GSI AVB keys are # built to vendor_boot. +# - BOARD_COPY_BOOT_IMAGE_TO_TARGET_FILES controls whether boot images in $OUT are added +# to target files package directly. _board_strip_readonly_list += \ BOARD_USES_GENERIC_KERNEL_IMAGE \ BOARD_EXCLUDE_KERNEL_FROM_RECOVERY_IMAGE \ BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT \ BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT \ + BOARD_COPY_BOOT_IMAGE_TO_TARGET_FILES \ _build_broken_var_list := \ BUILD_BROKEN_DUP_RULES \ diff --git a/target/board/generic_arm64/BoardConfig.mk b/target/board/generic_arm64/BoardConfig.mk index 3d3eb2ea5..414e032b5 100644 --- a/target/board/generic_arm64/BoardConfig.mk +++ b/target/board/generic_arm64/BoardConfig.mk @@ -82,6 +82,9 @@ BOARD_USES_RECOVERY_AS_BOOT := TARGET_NO_KERNEL := false BOARD_USES_GENERIC_KERNEL_IMAGE := true BOARD_KERNEL_MODULE_INTERFACE_VERSIONS := 5.4-android12-0 +# Copy boot image in $OUT to target files. This is defined for targets where +# the installed GKI APEXes are built from source. +BOARD_COPY_BOOT_IMAGE_TO_TARGET_FILES := true # No vendor_boot BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT :=