diff --git a/core/Makefile b/core/Makefile index 8ca00ed826..3aa6ae23e8 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1275,6 +1275,9 @@ DEFAULT_TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS := ext4=max_batch_time=0,commit=1,d ifneq (true,$(TARGET_USERIMAGES_SPARSE_EXT_DISABLED)) INTERNAL_USERIMAGES_SPARSE_EXT_FLAG := -s endif +ifneq (true,$(TARGET_USERIMAGES_SPARSE_EROFS_DISABLED)) + INTERNAL_USERIMAGES_SPARSE_EROFS_FLAG := -s +endif ifneq (true,$(TARGET_USERIMAGES_SPARSE_SQUASHFS_DISABLED)) INTERNAL_USERIMAGES_SPARSE_SQUASHFS_FLAG := -s endif @@ -1291,6 +1294,18 @@ ifeq ($(TARGET_USERIMAGES_USE_F2FS),true) INTERNAL_USERIMAGES_DEPS += $(MKF2FSUSERIMG) endif +ifneq ($(filter \ + $(BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE) \ + $(BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE) \ + $(BOARD_ODMIMAGE_FILE_SYSTEM_TYPE) \ + $(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE) \ + $(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE) \ + $(BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE) \ + $(BOARD_ODM_DLKMIMAGE_FILE_SYSTEM_TYPE) \ + ,erofs),) +INTERNAL_USERIMAGES_DEPS += $(MKEROFSUSERIMG) +endif + ifneq ($(filter \ $(BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE) \ $(BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE) \ @@ -1471,6 +1486,7 @@ $(hide) echo "ext_mkuserimg=$(notdir $(MKEXTUSERIMG))" >> $(1) $(if $(INTERNAL_USERIMAGES_EXT_VARIANT),$(hide) echo "fs_type=$(INTERNAL_USERIMAGES_EXT_VARIANT)" >> $(1)) $(if $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG),$(hide) echo "extfs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG)" >> $(1)) +$(if $(INTERNAL_USERIMAGES_SPARSE_EROFS_FLAG),$(hide) echo "erofs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_EROFS_FLAG)" >> $(1)) $(if $(INTERNAL_USERIMAGES_SPARSE_SQUASHFS_FLAG),$(hide) echo "squashfs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_SQUASHFS_FLAG)" >> $(1)) $(if $(INTERNAL_USERIMAGES_SPARSE_F2FS_FLAG),$(hide) echo "f2fs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_F2FS_FLAG)" >> $(1)) $(if $(BOARD_EXT4_SHARE_DUP_BLOCKS),$(hide) echo "ext4_share_dup_blocks=$(BOARD_EXT4_SHARE_DUP_BLOCKS)" >> $(1)) @@ -3927,6 +3943,8 @@ INTERNAL_OTATOOLS_MODULES := \ mkbootimg \ mke2fs \ mke2fs.conf \ + mkfs.erofs \ + mkerofsimage.sh \ mkf2fsuserimg.sh \ mksquashfs \ mksquashfsimage.sh \ diff --git a/core/config.mk b/core/config.mk index e975214991..f860c431a0 100644 --- a/core/config.mk +++ b/core/config.mk @@ -555,6 +555,7 @@ APICHECK := $(HOST_OUT_JAVA_LIBRARIES)/metalava$(COMMON_JAVA_PACKAGE_SUFFIX) FS_GET_STATS := $(HOST_OUT_EXECUTABLES)/fs_get_stats$(HOST_EXECUTABLE_SUFFIX) MKEXTUSERIMG := $(HOST_OUT_EXECUTABLES)/mkuserimg_mke2fs MKE2FS_CONF := system/extras/ext4_utils/mke2fs.conf +MKEROFSUSERIMG := $(HOST_OUT_EXECUTABLES)/mkerofsimage.sh MKSQUASHFSUSERIMG := $(HOST_OUT_EXECUTABLES)/mksquashfsimage.sh MKF2FSUSERIMG := $(HOST_OUT_EXECUTABLES)/mkf2fsuserimg.sh SIMG2IMG := $(HOST_OUT_EXECUTABLES)/simg2img$(HOST_EXECUTABLE_SUFFIX) diff --git a/tools/releasetools/Android.bp b/tools/releasetools/Android.bp index e1543e7d14..ca6c2b2853 100644 --- a/tools/releasetools/Android.bp +++ b/tools/releasetools/Android.bp @@ -49,6 +49,7 @@ python_defaults { required: [ "blk_alloc_to_base_fs", "e2fsck", + "mkerofsimage.sh", "mkuserimg_mke2fs", "simg2img", "tune2fs", diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 169a11224a..6487b9b8e2 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -296,6 +296,18 @@ def BuildImageMkfs(in_dir, prop_dict, out_file, target_out, fs_config): build_command.extend(["--inode_size", "256"]) if "selinux_fc" in prop_dict: build_command.append(prop_dict["selinux_fc"]) + elif fs_type.startswith("erofs"): + build_command = ["mkerofsimage.sh"] + build_command.extend([in_dir, out_file]) + if "erofs_sparse_flag" in prop_dict: + build_command.extend([prop_dict["erofs_sparse_flag"]]) + build_command.extend(["-m", prop_dict["mount_point"]]) + if target_out: + build_command.extend(["-d", target_out]) + if fs_config: + build_command.extend(["-C", fs_config]) + if "selinux_fc" in prop_dict: + build_command.extend(["-c", prop_dict["selinux_fc"]]) elif fs_type.startswith("squash"): build_command = ["mksquashfsimage.sh"] build_command.extend([in_dir, out_file]) @@ -532,6 +544,7 @@ def ImagePropFromGlobalDict(glob_dict, mount_point): common_props = ( "extfs_sparse_flag", + "erofs_sparse_flag", "squashfs_sparse_flag", "f2fs_sparse_flag", "skip_fsck",