diff --git a/core/Makefile b/core/Makefile index f77c464cb..e1a4d6493 100644 --- a/core/Makefile +++ b/core/Makefile @@ -680,6 +680,18 @@ endif # ----------------------------------------------------------------- # the ramdisk +BOOT_RAMDISK_COMPRESSOR := $(MINIGZIP) +RECOVERY_RAMDISK_COMPRESSOR := $(MINIGZIP) +ifneq ($(LZMA_RAMDISK_TARGETS),) + ifneq (,$(findstring boot,$(LZMA_RAMDISK_TARGETS))) + BOOT_RAMDISK_COMPRESSOR := lzma -f -c + endif + ifneq (,$(findstring recovery,$(LZMA_RAMDISK_TARGETS))) + RECOVERY_RAMDISK_COMPRESSOR := lzma -f -c + TARGET_NOT_USE_GZIP_RECOVERY_RAMDISK := true + endif +endif + INTERNAL_RAMDISK_FILES := $(filter $(TARGET_ROOT_OUT)/%, \ $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES)) @@ -690,12 +702,12 @@ BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET) $(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) $(INTERNAL_RAMDISK_FILES) | $(MINIGZIP) $(call pretty,"Target ram disk: $@") - $(hide) $(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $@ + $(hide) $(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_ROOT_OUT) | $(BOOT_RAMDISK_COMPRESSOR) > $@ .PHONY: ramdisk-nodeps ramdisk-nodeps: $(MKBOOTFS) | $(MINIGZIP) @echo "make $@: ignoring dependencies" - $(hide) $(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $(INSTALLED_RAMDISK_TARGET) + $(hide) $(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_ROOT_OUT) | $(BOOT_RAMDISK_COMPRESSOR) > $(INSTALLED_RAMDISK_TARGET) INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img @@ -756,7 +768,8 @@ ifneq ($(BOARD_USES_RECOVERY_AS_BOOT),true) ifeq ($(TARGET_BOOTIMAGE_USE_EXT2),true) $(error TARGET_BOOTIMAGE_USE_EXT2 is not supported anymore) -else ifeq (true,$(BOARD_AVB_ENABLE)) # TARGET_BOOTIMAGE_USE_EXT2 != true +else ifndef BOARD_CUSTOM_BOOTIMG_MK +ifeq (true,$(BOARD_AVB_ENABLE)) # TARGET_BOOTIMAGE_USE_EXT2 != true $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(AVBTOOL) $(INTERNAL_BOOTIMAGE_FILES) $(BOARD_AVB_BOOT_KEY_PATH) $(call pretty,"Target boot image: $@") @@ -822,17 +835,18 @@ bootimage-nodeps: $(MKBOOTIMG) $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) -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 +else # TARGET_NO_KERNEL == "true" ifdef BOARD_PREBUILT_BOOTIMAGE ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true) # Remove when b/63676296 is resolved. $(error Prebuilt bootimage is only supported for AB targets) endif $(eval $(call copy-one-file,$(BOARD_PREBUILT_BOOTIMAGE),$(INSTALLED_BOOTIMAGE_TARGET))) -else +else # BOARD_PREBUILT_BOOTIMAGE not defined INTERNAL_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE)) # HACK: The top-level targets depend on the bootimage. Not all targets # can produce a bootimage, though, and emulator targets need the ramdisk @@ -1235,6 +1249,7 @@ IGNORE_RECOVERY_SEPOLICY := $(patsubst $(TARGET_RECOVERY_OUT)/%,--exclude=/%,$(r 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_props := $(intermediate_system_build_prop) ifdef property_overrides_split_enabled recovery_build_props += $(INSTALLED_VENDOR_BUILD_PROP_TARGET) @@ -1321,7 +1336,7 @@ endif # versa though). ifeq (,$(filter true, $(BOARD_USES_FULL_RECOVERY_IMAGE) $(BOARD_BUILD_SYSTEM_ROOT_IMAGE) \ - $(BOARD_INCLUDE_RECOVERY_DTBO))) + $(BOARD_INCLUDE_RECOVERY_DTBO) $(TARGET_NOT_USE_GZIP_RECOVERY_RAMDISK))) # Named '.dat' so we don't attempt to use imgdiff for patching it. RECOVERY_RESOURCE_ZIP := $(TARGET_OUT)/etc/recovery-resource.dat else @@ -1371,9 +1386,8 @@ $(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) $(extra_keys) RECOVERYIMAGE_ID_FILE := $(PRODUCT_OUT)/recovery.id -# $(1): output file -define build-recoveryimage-target - # Making recovery image +define build-recoveryramdisk + @echo ----- Making recovery image ------ $(hide) mkdir -p $(TARGET_RECOVERY_OUT) $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/etc $(TARGET_RECOVERY_ROOT_OUT)/sdcard $(TARGET_RECOVERY_ROOT_OUT)/tmp # Copying baseline ramdisk... @@ -1416,7 +1430,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)) @@ -1461,14 +1479,16 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) $(ADBD) \ $(BOARD_RECOVERY_KERNEL_MODULES) \ $(DEPMOD) $(call pretty,"Target boot image from recovery: $@") + $(call build-recoveryramdisk) + $(hide) $(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_RECOVERY_ROOT_OUT) | $(RECOVERY_RAMDISK_COMPRESSOR) > $(recovery_ramdisk) $(call build-recoveryimage-target, $@) endif -$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) $(ADBD) \ +$(recovery_uncompressed_ramdisk): $(MKBOOTFS) $(ADBD) \ $(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(INTERNAL_RECOVERYIMAGE_FILES) \ - $(recovery_initrc) $(recovery_sepolicy) $(recovery_kernel) \ + $(recovery_initrc) $(recovery_sepolicy) \ $(INSTALLED_2NDBOOTLOADER_TARGET) \ $(recovery_build_props) $(recovery_resource_deps) $(recovery_root_deps) \ $(recovery_fstab) \ @@ -1490,6 +1510,7 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(recovery_ramdisk) $(recovery_k $(RECOVERYIMAGE_EXTRA_DEPS) @echo ----- Making recovery image ------ $(call build-recoveryimage-target, $@) +endif # BOARD_CUSTOM_BOOTIMG_MK ifdef RECOVERY_RESOURCE_ZIP $(RECOVERY_RESOURCE_ZIP): $(INSTALLED_RECOVERYIMAGE_TARGET) | $(ZIPTIME) @@ -1501,6 +1522,8 @@ endif .PHONY: recoveryimage-nodeps recoveryimage-nodeps: @echo "make $@: ignoring dependencies" + $(call build-recoveryramdisk) + $(hide) $(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_RECOVERY_ROOT_OUT) | $(RECOVERY_RAMDISK_COMPRESSOR) > $(recovery_ramdisk) $(call build-recoveryimage-target, $(INSTALLED_RECOVERYIMAGE_TARGET)) else # INSTALLED_RECOVERYIMAGE_TARGET not defined @@ -1518,6 +1541,11 @@ ifneq ($(BOARD_NAND_SPARE_SIZE),) $(error MTD device is no longer supported and thus BOARD_NAND_SPARE_SIZE is deprecated.) endif +ifdef BOARD_CUSTOM_BOOTIMG_MK +include $(BOARD_CUSTOM_BOOTIMG_MK) +endif + + # ----------------------------------------------------------------- # system image # @@ -1634,6 +1662,7 @@ SYSTEMIMAGE_SOURCE_DIR := $(TARGET_OUT) # as the source (since they are very similar). Generate the patch so # we can see how big it's going to be, and include that in the system # image size check calculation. +ifneq ($(INSTALLED_BOOTIMAGE_TARGET),) ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),) ifneq ($(BOARD_USES_FULL_RECOVERY_IMAGE),true) ifneq (,$(filter true, $(BOARD_BUILD_SYSTEM_ROOT_IMAGE) $(BOARD_INCLUDE_RECOVERY_DTBO))) @@ -1641,6 +1670,9 @@ diff_tool := $(HOST_OUT_EXECUTABLES)/bsdiff else diff_tool := $(HOST_OUT_EXECUTABLES)/imgdiff endif +ifeq ($(TARGET_NOT_USE_GZIP_RECOVERY_RAMDISK),true) +diff_tool := $(HOST_OUT_EXECUTABLES)/bsdiff +endif intermediates := $(call intermediates-dir-for,PACKAGING,recovery_patch) RECOVERY_FROM_BOOT_PATCH := $(intermediates)/recovery_from_boot.p $(RECOVERY_FROM_BOOT_PATCH): PRIVATE_DIFF_TOOL := $(diff_tool) @@ -1653,9 +1685,9 @@ $(RECOVERY_FROM_BOOT_PATCH): \ $(PRIVATE_DIFF_TOOL) $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_RECOVERYIMAGE_TARGET) $@ else # $(BOARD_USES_FULL_RECOVERY_IMAGE) == true RECOVERY_FROM_BOOT_PATCH := $(INSTALLED_RECOVERYIMAGE_TARGET) -endif -endif - +endif # BOARD_USES_FULL_RECOVERY_IMAGE +endif # INSTALLED_RECOVERYIMAGE_TARGET +endif # INSTALLED_BOOTIMAGE_TARGET $(INSTALLED_SYSTEMIMAGE): $(BUILT_SYSTEMIMAGE) $(RECOVERY_FROM_BOOT_PATCH) @echo "Install system fs image: $@" @@ -2211,12 +2243,14 @@ $(eval _footer_args := $(PART)_FOOTER_ARGS) $(eval $($(_footer_args)) += --rollback_index $($(_rollback_index))) endef +ifdef INSTALLED_BOOTIMAGE_TARGET ifdef BOARD_AVB_BOOT_KEY_PATH $(eval $(call check-and-set-avb-chain-args,BOOT)) else INTERNAL_AVB_MAKE_VBMETA_IMAGE_ARGS += \ --include_descriptors_from_image $(INSTALLED_BOOTIMAGE_TARGET) endif +endif ifdef BOARD_AVB_SYSTEM_KEY_PATH $(eval $(call check-and-set-avb-chain-args,SYSTEM)) @@ -2587,6 +2621,7 @@ endef # Depending on the various images guarantees that the underlying # directories are up-to-date. $(BUILT_TARGET_FILES_PACKAGE): \ + $(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(INSTALLED_RADIOIMAGE_TARGET) \ $(INSTALLED_RECOVERYIMAGE_TARGET) \ @@ -2702,6 +2737,12 @@ endif # BOARD_USES_RECOVERY_AS_BOOT @# Contents of the data image $(hide) $(call package_files-copy-root, \ $(TARGET_OUT_DATA),$(zip_root)/DATA) +ifdef BOARD_CUSTOM_BOOTIMG + @# Prebuilt boot images + $(hide) mkdir -p $(zip_root)/BOOTABLE_IMAGES + $(hide) $(ACP) $(INSTALLED_BOOTIMAGE_TARGET) $(zip_root)/BOOTABLE_IMAGES/ + $(hide) $(ACP) $(INSTALLED_RECOVERYIMAGE_TARGET) $(zip_root)/BOOTABLE_IMAGES/ +endif ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE @# Contents of the vendor image $(hide) $(call package_files-copy-root, \ @@ -2791,6 +2832,9 @@ endif ifeq ($(BOARD_USES_FULL_RECOVERY_IMAGE),true) $(hide) echo "full_recovery_image=true" >> $(zip_root)/META/misc_info.txt endif +ifeq ($(TARGET_NOT_USE_GZIP_RECOVERY_RAMDISK),true) + $(hide) echo "no_gzip_recovery_ramdisk=true" >> $(zip_root)/META/misc_info.txt +endif ifeq ($(BOARD_AVB_ENABLE),true) $(hide) echo "avb_enable=true" >> $(zip_root)/META/misc_info.txt $(hide) echo "avb_vbmeta_key_path=$(BOARD_AVB_KEY_PATH)" >> $(zip_root)/META/misc_info.txt @@ -3045,6 +3089,7 @@ SYMBOLS_ZIP := $(PRODUCT_OUT)/$(name).zip # For apps_only build we'll establish the dependency later in build/make/core/main.mk. ifndef TARGET_BUILD_APPS $(SYMBOLS_ZIP): $(INSTALLED_SYSTEMIMAGE) \ + $(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_VENDORIMAGE_TARGET) \ @@ -3069,6 +3114,7 @@ name := $(name)-coverage-$(FILE_NAME_TAG) COVERAGE_ZIP := $(PRODUCT_OUT)/$(name).zip ifndef TARGET_BUILD_APPS $(COVERAGE_ZIP): $(INSTALLED_SYSTEMIMAGE) \ + $(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_VENDORIMAGE_TARGET) \ @@ -3393,4 +3439,3 @@ endif FIND_LSDUMPS_FILE := $(PRODUCT_OUT)/lsdump_paths.txt $(FIND_LSDUMPS_FILE) : $(LSDUMP_PATHS) $(hide) rm -rf $@ && echo "$^" > $@ -endif \ No newline at end of file diff --git a/core/clear_vars.mk b/core/clear_vars.mk index e03909470..a403154d1 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -481,7 +481,6 @@ LOCAL_HAS_KT := # Include any vendor specific clear_vars.mk file -include vendor/*/build/core/clear_vars.mk ->>>>>>> 3d49f3e74... core: Add support for gradle compilation # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to # iterate over thousands of entries every time. # Leave the current makefile to make sure we don't break anything diff --git a/core/main.mk b/core/main.mk index 37f2c372c..ceb3c069e 100644 --- a/core/main.mk +++ b/core/main.mk @@ -1108,6 +1108,7 @@ auxiliary: $(INSTALLED_AUX_TARGETS) .PHONY: droidcore droidcore: files \ systemimage \ + $(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(INSTALLED_VBMETAIMAGE_TARGET) \ diff --git a/core/tasks/check_boot_jars/package_whitelist.txt b/core/tasks/check_boot_jars/package_whitelist.txt index 019c35cdd..bd954358b 100644 --- a/core/tasks/check_boot_jars/package_whitelist.txt +++ b/core/tasks/check_boot_jars/package_whitelist.txt @@ -202,10 +202,6 @@ javax\.microedition\.khronos\.egl android -################################################### -# telephony-common.jar -org\.codeaurora\..* - ################################################### # org.descendant.keydisabler.jar org\.descendant\..*