Loading core/Makefile +88 −1 Original line number Diff line number Diff line Loading @@ -1411,6 +1411,20 @@ $(if $(filter $(2),odm_dlkm),\ $(hide) echo "odm_dlkm_selinux_fc=$(SELINUX_FC)" >> $(1) $(hide) echo "building_odm_dlkm_image=$(BUILDING_ODM_DLKM_IMAGE)" >> $(1) ) $(if $(filter $(2),modules),\ $(if $(BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "modules_fs_type=$(BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_MODULESIMAGE_EXTFS_INODE_COUNT),$(hide) echo "modules_extfs_inode_count=$(BOARD_MODULESIMAGE_EXTFS_INODE_COUNT)" >> $(1)) $(if $(BOARD_MODULESIMAGE_EXTFS_RSV_PCT),$(hide) echo "modules_extfs_rsv_pct=$(BOARD_MODULESIMAGE_EXTFS_RSV_PCT)" >> $(1)) $(if $(BOARD_MODULESIMAGE_PARTITION_SIZE),$(hide) echo "modules_size=$(BOARD_MODULESIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_MODULESIMAGE_JOURNAL_SIZE),$(hide) echo "modules_journal_size=$(BOARD_MODULESIMAGE_JOURNAL_SIZE)" >> $(1)) $(if $(BOARD_MODULESIMAGE_SQUASHFS_COMPRESSOR),$(hide) echo "modules_squashfs_compressor=$(BOARD_MODULESIMAGE_SQUASHFS_COMPRESSOR)" >> $(1)) $(if $(BOARD_MODULESIMAGE_SQUASHFS_COMPRESSOR_OPT),$(hide) echo "modules_squashfs_compressor_opt=$(BOARD_MODULESIMAGE_SQUASHFS_COMPRESSOR_OPT)" >> $(1)) $(if $(BOARD_MODULESIMAGE_SQUASHFS_BLOCK_SIZE),$(hide) echo "modules_squashfs_block_size=$(BOARD_MODULESIMAGE_SQUASHFS_BLOCK_SIZE)" >> $(1)) $(if $(BOARD_MODULESIMAGE_SQUASHFS_DISABLE_4K_ALIGN),$(hide) echo "modules_squashfs_disable_4k_align=$(BOARD_MODULESIMAGE_SQUASHFS_DISABLE_4K_ALIGN)" >> $(1)) $(if $(BOARD_MODULESIMAGE_PARTITION_RESERVED_SIZE),$(hide) echo "modules_reserved_size=$(BOARD_MODULESIMAGE_PARTITION_RESERVED_SIZE)" >> $(1)) $(hide) echo "modules_selinux_fc=$(SELINUX_FC)" >> $(1) $(hide) echo "building_modules_image=$(BUILDING_MODULES_IMAGE)" >> $(1) ) $(if $(filter $(2),oem),\ $(if $(BOARD_OEMIMAGE_PARTITION_SIZE),$(hide) echo "oem_size=$(BOARD_OEMIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_OEMIMAGE_JOURNAL_SIZE),$(hide) echo "oem_journal_size=$(BOARD_OEMIMAGE_JOURNAL_SIZE)" >> $(1)) Loading Loading @@ -1546,6 +1560,9 @@ endif ifdef BUILDING_ODM_DLKM_IMAGE PROP_DICTIONARY_IMAGES += odm_dlkm endif ifdef BUILDING_MODULES_IMAGE PROP_DICTIONARY_IMAGES += modules endif define generate-userimage-prop-dictionary $(call generate-image-prop-dictionary,$(1),$(PROP_DICTIONARY_IMAGES),$(2)) endef Loading Loading @@ -3002,6 +3019,54 @@ INSTALLED_ODM_DLKMIMAGE_TARGET := $(PRODUCT_OUT)/odm_dlkm.img $(eval $(call copy-one-file,$(BOARD_PREBUILT_ODM_DLKMIMAGE),$(INSTALLED_ODM_DLKMIMAGE_TARGET))) endif # ----------------------------------------------------------------- # modules partition image ifdef BUILDING_MODULES_IMAGE INTERNAL_MODULESIMAGE_FILES := \ $(filter $(TARGET_OUT_MODULES)/%,\ $(ALL_DEFAULT_INSTALLED_MODULES)) INSTALLED_FILES_FILE_MODULES := $(PRODUCT_OUT)/installed-files-modules.txt INSTALLED_FILES_JSON_MODULES := $(INSTALLED_FILES_FILE_MODULES:.txt=.json) $(INSTALLED_FILES_FILE_MODULES): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_MODULES) $(INSTALLED_FILES_FILE_MODULES) : $(INTERNAL_MODULESIMAGE_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ @mkdir -p $(TARGET_OUT_MODULES) $(hide) $(FILESLIST) $(TARGET_OUT_MODULES) > $(@:.txt=.json) $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ modulesimage_intermediates := \ $(call intermediates-dir-for,PACKAGING,modules) BUILT_MODULESIMAGE_TARGET := $(PRODUCT_OUT)/modules.img define build-modulesimage-target $(call pretty,"Target modules fs image: $(INSTALLED_MODULESIMAGE_TARGET)") @mkdir -p $(TARGET_OUT_MODULES) @mkdir -p $(modulesimage_intermediates) && rm -rf $(modulesimage_intermediates)/modules_image_info.txt $(call generate-userimage-prop-dictionary, $(modulesimage_intermediates)/modules_image_info.txt, skip_fsck=true) PATH=$(INTERNAL_USERIMAGES_BINARY_PATHS):$$PATH \ $(BUILD_IMAGE) \ $(TARGET_OUT_MODULES) $(modulesimage_intermediates)/modules_image_info.txt \ $(INSTALLED_MODULESIMAGE_TARGET) $(TARGET_OUT) $(call assert-max-image-size,$(INSTALLED_MODULESIMAGE_TARGET),$(BOARD_MODULESIMAGE_PARTITION_SIZE)) endef # We just build this directly to the install location. INSTALLED_MODULESIMAGE_TARGET := $(BUILT_MODULESIMAGE_TARGET) $(INSTALLED_MODULESIMAGE_TARGET): \ $(INTERNAL_USERIMAGES_DEPS) \ $(INTERNAL_MODULESIMAGE_FILES) \ $(INSTALLED_FILES_FILE_MODULES) $(build-modulesimage-target) .PHONY: modulesimage-nodeps mnod modulesimage-nodeps mnod: | $(INTERNAL_USERIMAGES_DEPS) $(build-modulesimage-target) sync: $(INTERNAL_MODULESIMAGE_FILES) # BOARD_PREBUILT_MODULESIMAGE is not allowed. endif # ----------------------------------------------------------------- # dtbo image Loading Loading @@ -3501,7 +3566,10 @@ endif # BOARD_AVB_ENABLE # ----------------------------------------------------------------- # Check VINTF of build # Note: vendor_dlkm and odm_dlkm does not have VINTF files. # Note: the following do not have VINTF files: # - vendor_dlkm # - odm_dlkm # - modules ifeq (,$(TARGET_BUILD_UNBUNDLED)) intermediates := $(call intermediates-dir-for,PACKAGING,check_vintf_all) Loading Loading @@ -4523,6 +4591,11 @@ ifdef BUILDING_SYSTEM_OTHER_IMAGE @# Contents of the system_other image $(hide) $(call package_files-copy-root, \ $(TARGET_OUT_SYSTEM_OTHER),$(zip_root)/SYSTEM_OTHER) endif ifdef BUILDING_MODULES_IMAGE @# Contents of the modules image $(hide) $(call package_files-copy-root, \ $(TARGET_OUT_MODULES),$(zip_root)/MODULES) endif @# Extra contents of the OTA package $(hide) mkdir -p $(zip_root)/OTA Loading Loading @@ -4572,6 +4645,7 @@ ifneq ($(PRODUCT_ODM_DLKM_BASE_FS_PATH),) $(hide) cp $(PRODUCT_ODM_DLKM_BASE_FS_PATH) \ $(zip_root)/META/$(notdir $(PRODUCT_ODM_DLKM_BASE_FS_PATH)) endif # No PRODUCT_MODULES_BASE_FS_PATH for modules partition ifeq ($(TARGET_OTA_ALLOW_NON_AB),true) ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),) $(hide) PATH=$(INTERNAL_USERIMAGES_BINARY_PATHS):$$PATH MKBOOTIMG=$(MKBOOTIMG) \ Loading Loading @@ -4665,6 +4739,9 @@ ifdef BUILDING_VENDOR_DLKM_IMAGE endif ifdef BUILDING_ODM_DLKM_IMAGE $(hide) $(call fs_config,$(zip_root)/ODM_DLKM,odm_dlkm/) > $(zip_root)/META/odm_dlkm_filesystem_config.txt endif ifdef BUILDING_MODULES_IMAGE $(hide) $(call fs_config,$(zip_root)/MODULES,modules/) > $(zip_root)/META/modules_filesystem_config.txt endif @# ROOT always contains the files for the root under normal boot. $(hide) $(call fs_config,$(zip_root)/ROOT,) > $(zip_root)/META/root_filesystem_config.txt Loading Loading @@ -5209,6 +5286,16 @@ odm_dlkmimage: $(INSTALLED_QEMU_ODM_DLKMIMAGE) droidcore: $(INSTALLED_QEMU_ODM_DLKMIMAGE) endif ifdef INSTALLED_MODULESIMAGE_TARGET INSTALLED_QEMU_MODULESIMAGE := $(PRODUCT_OUT)/modules-qemu.img $(INSTALLED_QEMU_MODULESIMAGE): $(INSTALLED_MODULESIMAGE_TARGET) $(MK_QEMU_IMAGE_SH) $(SGDISK_HOST) @echo Create modules-qemu.img (export SGDISK=$(SGDISK_HOST); $(MK_QEMU_IMAGE_SH) $(INSTALLED_MODULESIMAGE_TARGET)) modulesimage: $(INSTALLED_QEMU_MODULESIMAGE) droidcore: $(INSTALLED_QEMU_MODULESIMAGE) endif QEMU_VERIFIED_BOOT_PARAMS := $(PRODUCT_OUT)/VerifiedBootParams.textproto $(QEMU_VERIFIED_BOOT_PARAMS): $(INSTALLED_VBMETAIMAGE_TARGET) $(INSTALLED_SYSTEMIMAGE_TARGET) \ $(MK_VBMETA_BOOT_KERNEL_CMDLINE_SH) $(AVBTOOL) Loading core/board_config.mk +25 −0 Original line number Diff line number Diff line Loading @@ -627,6 +627,31 @@ ifdef BOARD_PREBUILT_ODM_DLKMIMAGE endif .KATI_READONLY := BUILDING_ODM_DLKM_IMAGE ########################################### # Are we building modules image BOARD_USES_MODULESIMAGE := ifdef BOARD_PREBUILT_MODULESIMAGE $(error BOARD_PREBUILT_MODULESIMAGE must not be set. Prebuilt modules image is not allowed. Instead, install prebuilt APEXes.) endif ifdef BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE BOARD_USES_MODULESIMAGE := true endif BUILDING_MODULES_IMAGE := ifeq ($(PRODUCT_BUILD_MODULES_IMAGE),) ifdef BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE BUILDING_MODULES_IMAGE := true endif else ifeq ($(PRODUCT_BUILD_MODULES_IMAGE),true) BUILDING_MODULES_IMAGE := true ifndef BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE $(error PRODUCT_BUILD_MODULES_IMAGE set to true, but BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE not defined) endif endif # BOARD_PREBUILT_MODULESIMAGE is not allowed. # The prebuilt for an individual module should be provided instead. .KATI_READONLY := BUILDING_MODULES_IMAGE ########################################### # Ensure consistency among TARGET_RECOVERY_UPDATER_LIBS, AB_OTA_UPDATER, and PRODUCT_OTA_FORCE_NON_AB_PACKAGE. TARGET_RECOVERY_UPDATER_LIBS ?= Loading core/config.mk +1 −1 Original line number Diff line number Diff line Loading @@ -898,7 +898,7 @@ $(foreach group,$(call to-upper,$(BOARD_SUPER_PARTITION_GROUPS)), \ ) # BOARD_*_PARTITION_LIST: a list of the following tokens valid_super_partition_list := system vendor product system_ext odm vendor_dlkm odm_dlkm valid_super_partition_list := system vendor product system_ext odm vendor_dlkm odm_dlkm modules $(foreach group,$(call to-upper,$(BOARD_SUPER_PARTITION_GROUPS)), \ $(if $(filter-out $(valid_super_partition_list),$(BOARD_$(group)_PARTITION_LIST)), \ $(error BOARD_$(group)_PARTITION_LIST contains invalid partition name \ Loading core/envsetup.mk +51 −0 Original line number Diff line number Diff line Loading @@ -255,6 +255,7 @@ TARGET_COPY_OUT_VENDOR_DEBUG_RAMDISK := vendor_debug_ramdisk TARGET_COPY_OUT_TEST_HARNESS_RAMDISK := test_harness_ramdisk TARGET_COPY_OUT_ROOT := root TARGET_COPY_OUT_RECOVERY := recovery TARGET_COPY_OUT_MODULES := modules # The directory used for optional partitions depend on the BoardConfig, so # they're defined to placeholder values here and swapped after reading the # BoardConfig, to be either the partition dir, or a subdir within 'system'. Loading Loading @@ -887,6 +888,56 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED := $(TARGET_O $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED # Unlike other partitions, modules partition should only contain APEXes at build time. TARGET_OUT_MODULES := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_MODULES) .KATI_READONLY := TARGET_OUT_MODULES TARGET_OUT_MODULES_EXECUTABLES := TARGET_OUT_MODULES_OPTIONAL_EXECUTABLES := TARGET_OUT_MODULES_SHARED_LIBRARIES := TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE := TARGET_OUT_MODULES_JAVA_LIBRARIES := TARGET_OUT_MODULES_APPS := TARGET_OUT_MODULES_APPS_PRIVILEGED := TARGET_OUT_MODULES_ETC := .KATI_READONLY := \ TARGET_OUT_MODULES_EXECUTABLES \ TARGET_OUT_MODULES_OPTIONAL_EXECUTABLES \ TARGET_OUT_MODULES_SHARED_LIBRARIES \ TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE \ TARGET_OUT_MODULES_JAVA_LIBRARIES \ TARGET_OUT_MODULES_APPS \ TARGET_OUT_MODULES_APPS_PRIVILEGED \ TARGET_OUT_MODULES_ETC $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_EXECUTABLES := $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_SHARED_LIBRARIES := $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE := $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS := $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS_PRIVILEGED := .KATI_READONLY := \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_EXECUTABLES \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_SHARED_LIBRARIES \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS_PRIVILEGED $(KATI_obsolete_var \ TARGET_OUT_MODULES_EXECUTABLES \ TARGET_OUT_MODULES_OPTIONAL_EXECUTABLES \ TARGET_OUT_MODULES_SHARED_LIBRARIES \ TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE \ TARGET_OUT_MODULES_JAVA_LIBRARIES \ TARGET_OUT_MODULES_APPS \ TARGET_OUT_MODULES_APPS_PRIVILEGED \ TARGET_OUT_MODULES_ETC \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_EXECUTABLES \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_SHARED_LIBRARIES \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS_PRIVILEGED \ , modules partition should not contain any executables, libraries, or apps. It should only contain APEXes) TARGET_OUT_BREAKPAD := $(PRODUCT_OUT)/breakpad .KATI_READONLY := TARGET_OUT_BREAKPAD Loading core/main.mk +3 −0 Original line number Diff line number Diff line Loading @@ -1581,6 +1581,9 @@ vbmetasystemimage: $(INSTALLED_VBMETA_SYSTEMIMAGE_TARGET) .PHONY: vbmetavendorimage vbmetavendorimage: $(INSTALLED_VBMETA_VENDORIMAGE_TARGET) .PHONY: modulesimage modulesimage: $(INSTALLED_MODULESIMAGE_TARGET) # Build files and then package it into the rom formats .PHONY: droidcore droidcore: $(filter $(HOST_OUT_ROOT)/%,$(modules_to_install)) \ Loading Loading
core/Makefile +88 −1 Original line number Diff line number Diff line Loading @@ -1411,6 +1411,20 @@ $(if $(filter $(2),odm_dlkm),\ $(hide) echo "odm_dlkm_selinux_fc=$(SELINUX_FC)" >> $(1) $(hide) echo "building_odm_dlkm_image=$(BUILDING_ODM_DLKM_IMAGE)" >> $(1) ) $(if $(filter $(2),modules),\ $(if $(BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "modules_fs_type=$(BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_MODULESIMAGE_EXTFS_INODE_COUNT),$(hide) echo "modules_extfs_inode_count=$(BOARD_MODULESIMAGE_EXTFS_INODE_COUNT)" >> $(1)) $(if $(BOARD_MODULESIMAGE_EXTFS_RSV_PCT),$(hide) echo "modules_extfs_rsv_pct=$(BOARD_MODULESIMAGE_EXTFS_RSV_PCT)" >> $(1)) $(if $(BOARD_MODULESIMAGE_PARTITION_SIZE),$(hide) echo "modules_size=$(BOARD_MODULESIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_MODULESIMAGE_JOURNAL_SIZE),$(hide) echo "modules_journal_size=$(BOARD_MODULESIMAGE_JOURNAL_SIZE)" >> $(1)) $(if $(BOARD_MODULESIMAGE_SQUASHFS_COMPRESSOR),$(hide) echo "modules_squashfs_compressor=$(BOARD_MODULESIMAGE_SQUASHFS_COMPRESSOR)" >> $(1)) $(if $(BOARD_MODULESIMAGE_SQUASHFS_COMPRESSOR_OPT),$(hide) echo "modules_squashfs_compressor_opt=$(BOARD_MODULESIMAGE_SQUASHFS_COMPRESSOR_OPT)" >> $(1)) $(if $(BOARD_MODULESIMAGE_SQUASHFS_BLOCK_SIZE),$(hide) echo "modules_squashfs_block_size=$(BOARD_MODULESIMAGE_SQUASHFS_BLOCK_SIZE)" >> $(1)) $(if $(BOARD_MODULESIMAGE_SQUASHFS_DISABLE_4K_ALIGN),$(hide) echo "modules_squashfs_disable_4k_align=$(BOARD_MODULESIMAGE_SQUASHFS_DISABLE_4K_ALIGN)" >> $(1)) $(if $(BOARD_MODULESIMAGE_PARTITION_RESERVED_SIZE),$(hide) echo "modules_reserved_size=$(BOARD_MODULESIMAGE_PARTITION_RESERVED_SIZE)" >> $(1)) $(hide) echo "modules_selinux_fc=$(SELINUX_FC)" >> $(1) $(hide) echo "building_modules_image=$(BUILDING_MODULES_IMAGE)" >> $(1) ) $(if $(filter $(2),oem),\ $(if $(BOARD_OEMIMAGE_PARTITION_SIZE),$(hide) echo "oem_size=$(BOARD_OEMIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_OEMIMAGE_JOURNAL_SIZE),$(hide) echo "oem_journal_size=$(BOARD_OEMIMAGE_JOURNAL_SIZE)" >> $(1)) Loading Loading @@ -1546,6 +1560,9 @@ endif ifdef BUILDING_ODM_DLKM_IMAGE PROP_DICTIONARY_IMAGES += odm_dlkm endif ifdef BUILDING_MODULES_IMAGE PROP_DICTIONARY_IMAGES += modules endif define generate-userimage-prop-dictionary $(call generate-image-prop-dictionary,$(1),$(PROP_DICTIONARY_IMAGES),$(2)) endef Loading Loading @@ -3002,6 +3019,54 @@ INSTALLED_ODM_DLKMIMAGE_TARGET := $(PRODUCT_OUT)/odm_dlkm.img $(eval $(call copy-one-file,$(BOARD_PREBUILT_ODM_DLKMIMAGE),$(INSTALLED_ODM_DLKMIMAGE_TARGET))) endif # ----------------------------------------------------------------- # modules partition image ifdef BUILDING_MODULES_IMAGE INTERNAL_MODULESIMAGE_FILES := \ $(filter $(TARGET_OUT_MODULES)/%,\ $(ALL_DEFAULT_INSTALLED_MODULES)) INSTALLED_FILES_FILE_MODULES := $(PRODUCT_OUT)/installed-files-modules.txt INSTALLED_FILES_JSON_MODULES := $(INSTALLED_FILES_FILE_MODULES:.txt=.json) $(INSTALLED_FILES_FILE_MODULES): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_FILES_JSON_MODULES) $(INSTALLED_FILES_FILE_MODULES) : $(INTERNAL_MODULESIMAGE_FILES) $(FILESLIST) $(FILESLIST_UTIL) @echo Installed file list: $@ @mkdir -p $(dir $@) @rm -f $@ @mkdir -p $(TARGET_OUT_MODULES) $(hide) $(FILESLIST) $(TARGET_OUT_MODULES) > $(@:.txt=.json) $(hide) $(FILESLIST_UTIL) -c $(@:.txt=.json) > $@ modulesimage_intermediates := \ $(call intermediates-dir-for,PACKAGING,modules) BUILT_MODULESIMAGE_TARGET := $(PRODUCT_OUT)/modules.img define build-modulesimage-target $(call pretty,"Target modules fs image: $(INSTALLED_MODULESIMAGE_TARGET)") @mkdir -p $(TARGET_OUT_MODULES) @mkdir -p $(modulesimage_intermediates) && rm -rf $(modulesimage_intermediates)/modules_image_info.txt $(call generate-userimage-prop-dictionary, $(modulesimage_intermediates)/modules_image_info.txt, skip_fsck=true) PATH=$(INTERNAL_USERIMAGES_BINARY_PATHS):$$PATH \ $(BUILD_IMAGE) \ $(TARGET_OUT_MODULES) $(modulesimage_intermediates)/modules_image_info.txt \ $(INSTALLED_MODULESIMAGE_TARGET) $(TARGET_OUT) $(call assert-max-image-size,$(INSTALLED_MODULESIMAGE_TARGET),$(BOARD_MODULESIMAGE_PARTITION_SIZE)) endef # We just build this directly to the install location. INSTALLED_MODULESIMAGE_TARGET := $(BUILT_MODULESIMAGE_TARGET) $(INSTALLED_MODULESIMAGE_TARGET): \ $(INTERNAL_USERIMAGES_DEPS) \ $(INTERNAL_MODULESIMAGE_FILES) \ $(INSTALLED_FILES_FILE_MODULES) $(build-modulesimage-target) .PHONY: modulesimage-nodeps mnod modulesimage-nodeps mnod: | $(INTERNAL_USERIMAGES_DEPS) $(build-modulesimage-target) sync: $(INTERNAL_MODULESIMAGE_FILES) # BOARD_PREBUILT_MODULESIMAGE is not allowed. endif # ----------------------------------------------------------------- # dtbo image Loading Loading @@ -3501,7 +3566,10 @@ endif # BOARD_AVB_ENABLE # ----------------------------------------------------------------- # Check VINTF of build # Note: vendor_dlkm and odm_dlkm does not have VINTF files. # Note: the following do not have VINTF files: # - vendor_dlkm # - odm_dlkm # - modules ifeq (,$(TARGET_BUILD_UNBUNDLED)) intermediates := $(call intermediates-dir-for,PACKAGING,check_vintf_all) Loading Loading @@ -4523,6 +4591,11 @@ ifdef BUILDING_SYSTEM_OTHER_IMAGE @# Contents of the system_other image $(hide) $(call package_files-copy-root, \ $(TARGET_OUT_SYSTEM_OTHER),$(zip_root)/SYSTEM_OTHER) endif ifdef BUILDING_MODULES_IMAGE @# Contents of the modules image $(hide) $(call package_files-copy-root, \ $(TARGET_OUT_MODULES),$(zip_root)/MODULES) endif @# Extra contents of the OTA package $(hide) mkdir -p $(zip_root)/OTA Loading Loading @@ -4572,6 +4645,7 @@ ifneq ($(PRODUCT_ODM_DLKM_BASE_FS_PATH),) $(hide) cp $(PRODUCT_ODM_DLKM_BASE_FS_PATH) \ $(zip_root)/META/$(notdir $(PRODUCT_ODM_DLKM_BASE_FS_PATH)) endif # No PRODUCT_MODULES_BASE_FS_PATH for modules partition ifeq ($(TARGET_OTA_ALLOW_NON_AB),true) ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),) $(hide) PATH=$(INTERNAL_USERIMAGES_BINARY_PATHS):$$PATH MKBOOTIMG=$(MKBOOTIMG) \ Loading Loading @@ -4665,6 +4739,9 @@ ifdef BUILDING_VENDOR_DLKM_IMAGE endif ifdef BUILDING_ODM_DLKM_IMAGE $(hide) $(call fs_config,$(zip_root)/ODM_DLKM,odm_dlkm/) > $(zip_root)/META/odm_dlkm_filesystem_config.txt endif ifdef BUILDING_MODULES_IMAGE $(hide) $(call fs_config,$(zip_root)/MODULES,modules/) > $(zip_root)/META/modules_filesystem_config.txt endif @# ROOT always contains the files for the root under normal boot. $(hide) $(call fs_config,$(zip_root)/ROOT,) > $(zip_root)/META/root_filesystem_config.txt Loading Loading @@ -5209,6 +5286,16 @@ odm_dlkmimage: $(INSTALLED_QEMU_ODM_DLKMIMAGE) droidcore: $(INSTALLED_QEMU_ODM_DLKMIMAGE) endif ifdef INSTALLED_MODULESIMAGE_TARGET INSTALLED_QEMU_MODULESIMAGE := $(PRODUCT_OUT)/modules-qemu.img $(INSTALLED_QEMU_MODULESIMAGE): $(INSTALLED_MODULESIMAGE_TARGET) $(MK_QEMU_IMAGE_SH) $(SGDISK_HOST) @echo Create modules-qemu.img (export SGDISK=$(SGDISK_HOST); $(MK_QEMU_IMAGE_SH) $(INSTALLED_MODULESIMAGE_TARGET)) modulesimage: $(INSTALLED_QEMU_MODULESIMAGE) droidcore: $(INSTALLED_QEMU_MODULESIMAGE) endif QEMU_VERIFIED_BOOT_PARAMS := $(PRODUCT_OUT)/VerifiedBootParams.textproto $(QEMU_VERIFIED_BOOT_PARAMS): $(INSTALLED_VBMETAIMAGE_TARGET) $(INSTALLED_SYSTEMIMAGE_TARGET) \ $(MK_VBMETA_BOOT_KERNEL_CMDLINE_SH) $(AVBTOOL) Loading
core/board_config.mk +25 −0 Original line number Diff line number Diff line Loading @@ -627,6 +627,31 @@ ifdef BOARD_PREBUILT_ODM_DLKMIMAGE endif .KATI_READONLY := BUILDING_ODM_DLKM_IMAGE ########################################### # Are we building modules image BOARD_USES_MODULESIMAGE := ifdef BOARD_PREBUILT_MODULESIMAGE $(error BOARD_PREBUILT_MODULESIMAGE must not be set. Prebuilt modules image is not allowed. Instead, install prebuilt APEXes.) endif ifdef BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE BOARD_USES_MODULESIMAGE := true endif BUILDING_MODULES_IMAGE := ifeq ($(PRODUCT_BUILD_MODULES_IMAGE),) ifdef BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE BUILDING_MODULES_IMAGE := true endif else ifeq ($(PRODUCT_BUILD_MODULES_IMAGE),true) BUILDING_MODULES_IMAGE := true ifndef BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE $(error PRODUCT_BUILD_MODULES_IMAGE set to true, but BOARD_MODULESIMAGE_FILE_SYSTEM_TYPE not defined) endif endif # BOARD_PREBUILT_MODULESIMAGE is not allowed. # The prebuilt for an individual module should be provided instead. .KATI_READONLY := BUILDING_MODULES_IMAGE ########################################### # Ensure consistency among TARGET_RECOVERY_UPDATER_LIBS, AB_OTA_UPDATER, and PRODUCT_OTA_FORCE_NON_AB_PACKAGE. TARGET_RECOVERY_UPDATER_LIBS ?= Loading
core/config.mk +1 −1 Original line number Diff line number Diff line Loading @@ -898,7 +898,7 @@ $(foreach group,$(call to-upper,$(BOARD_SUPER_PARTITION_GROUPS)), \ ) # BOARD_*_PARTITION_LIST: a list of the following tokens valid_super_partition_list := system vendor product system_ext odm vendor_dlkm odm_dlkm valid_super_partition_list := system vendor product system_ext odm vendor_dlkm odm_dlkm modules $(foreach group,$(call to-upper,$(BOARD_SUPER_PARTITION_GROUPS)), \ $(if $(filter-out $(valid_super_partition_list),$(BOARD_$(group)_PARTITION_LIST)), \ $(error BOARD_$(group)_PARTITION_LIST contains invalid partition name \ Loading
core/envsetup.mk +51 −0 Original line number Diff line number Diff line Loading @@ -255,6 +255,7 @@ TARGET_COPY_OUT_VENDOR_DEBUG_RAMDISK := vendor_debug_ramdisk TARGET_COPY_OUT_TEST_HARNESS_RAMDISK := test_harness_ramdisk TARGET_COPY_OUT_ROOT := root TARGET_COPY_OUT_RECOVERY := recovery TARGET_COPY_OUT_MODULES := modules # The directory used for optional partitions depend on the BoardConfig, so # they're defined to placeholder values here and swapped after reading the # BoardConfig, to be either the partition dir, or a subdir within 'system'. Loading Loading @@ -887,6 +888,56 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED := $(TARGET_O $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED # Unlike other partitions, modules partition should only contain APEXes at build time. TARGET_OUT_MODULES := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_MODULES) .KATI_READONLY := TARGET_OUT_MODULES TARGET_OUT_MODULES_EXECUTABLES := TARGET_OUT_MODULES_OPTIONAL_EXECUTABLES := TARGET_OUT_MODULES_SHARED_LIBRARIES := TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE := TARGET_OUT_MODULES_JAVA_LIBRARIES := TARGET_OUT_MODULES_APPS := TARGET_OUT_MODULES_APPS_PRIVILEGED := TARGET_OUT_MODULES_ETC := .KATI_READONLY := \ TARGET_OUT_MODULES_EXECUTABLES \ TARGET_OUT_MODULES_OPTIONAL_EXECUTABLES \ TARGET_OUT_MODULES_SHARED_LIBRARIES \ TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE \ TARGET_OUT_MODULES_JAVA_LIBRARIES \ TARGET_OUT_MODULES_APPS \ TARGET_OUT_MODULES_APPS_PRIVILEGED \ TARGET_OUT_MODULES_ETC $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_EXECUTABLES := $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_SHARED_LIBRARIES := $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE := $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS := $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS_PRIVILEGED := .KATI_READONLY := \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_EXECUTABLES \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_SHARED_LIBRARIES \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS_PRIVILEGED $(KATI_obsolete_var \ TARGET_OUT_MODULES_EXECUTABLES \ TARGET_OUT_MODULES_OPTIONAL_EXECUTABLES \ TARGET_OUT_MODULES_SHARED_LIBRARIES \ TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE \ TARGET_OUT_MODULES_JAVA_LIBRARIES \ TARGET_OUT_MODULES_APPS \ TARGET_OUT_MODULES_APPS_PRIVILEGED \ TARGET_OUT_MODULES_ETC \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_EXECUTABLES \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_SHARED_LIBRARIES \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_RENDERSCRIPT_BITCODE \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS \ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_MODULES_APPS_PRIVILEGED \ , modules partition should not contain any executables, libraries, or apps. It should only contain APEXes) TARGET_OUT_BREAKPAD := $(PRODUCT_OUT)/breakpad .KATI_READONLY := TARGET_OUT_BREAKPAD Loading
core/main.mk +3 −0 Original line number Diff line number Diff line Loading @@ -1581,6 +1581,9 @@ vbmetasystemimage: $(INSTALLED_VBMETA_SYSTEMIMAGE_TARGET) .PHONY: vbmetavendorimage vbmetavendorimage: $(INSTALLED_VBMETA_VENDORIMAGE_TARGET) .PHONY: modulesimage modulesimage: $(INSTALLED_MODULESIMAGE_TARGET) # Build files and then package it into the rom formats .PHONY: droidcore droidcore: $(filter $(HOST_OUT_ROOT)/%,$(modules_to_install)) \ Loading