Enable system partition compression
* Prerequisites: external/f2fs-tools: sload compression support * Must work with corresponding changes in system/extras repository * If Board config does not change, it falls back to old behavior, i.e. no compression for the system partition * Kernel f2fs compression support is a prerequisite if the Board config enables the compression (see below) * Necessary board config change (e.g. device/<vendor>/<product>/BoardConfig-common.mk) BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := f2fs BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 200000000 BOARD_SYSTEMIMAGE_FILE_SYSTEM_COMPRESS := true BOARD_SYSTEMIMAGE_F2FS_SLOAD_COMPRESS_FLAGS := <sload compress sub-options> Setting BOARD_SYSTEMIMAGE_FILE_SYSTEM_COMPRESS to true enables both the compression support when the initial empty file system be made (mkfs.f2fs) and the compression flag (-c) when the system image files be side-loaded by sload. Sload compress sub-options (i.e. options other than -c) will be provided by BOARD_SYSTEMIMAGE_F2FS_SLOAD_COMPRESS_FLAGS. If it is not given, or is empty, the default sub-options will be used Please refer to the sload.f2fs manual page. Setting BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE to f2fs is trivially necessary. * File system table (fstab), notably the file 'fstab.hardware', should also changed: - The file type must be changed to f2fs - Perhaps also other f2fs-specific options Bug: 170918499 Test: Pixel4a userdebug build (from build id 6918751) Signed-off-by: Robin Hsu <robinhsu@google.com> Change-Id: Id9d67b5cb35dc806e06ff1320e89114abc996a28
This commit is contained in:
@@ -350,8 +350,17 @@ def BuildImageMkfs(in_dir, prop_dict, out_file, target_out, fs_config):
|
||||
build_command.append("--prjquota")
|
||||
if (needs_casefold):
|
||||
build_command.append("--casefold")
|
||||
if (needs_compress):
|
||||
if (needs_compress or prop_dict.get("system_fs_compress") == "true"):
|
||||
build_command.append("--compression")
|
||||
if (prop_dict.get("system_fs_compress") == "true"):
|
||||
build_command.append("--sldc")
|
||||
if (prop_dict.get("system_f2fs_sldc_flags") == None):
|
||||
build_command.append(str(0))
|
||||
else:
|
||||
sldc_flags_str = prop_dict.get("system_f2fs_sldc_flags")
|
||||
sldc_flags = sldc_flags_str.split()
|
||||
build_command.append(str(len(sldc_flags)))
|
||||
build_command.extend(sldc_flags)
|
||||
else:
|
||||
raise BuildImageError(
|
||||
"Error: unknown filesystem type: {}".format(fs_type))
|
||||
@@ -546,6 +555,8 @@ def ImagePropFromGlobalDict(glob_dict, mount_point):
|
||||
"extfs_sparse_flag",
|
||||
"erofs_sparse_flag",
|
||||
"squashfs_sparse_flag",
|
||||
"system_fs_compress",
|
||||
"system_f2fs_sldc_flags",
|
||||
"f2fs_sparse_flag",
|
||||
"skip_fsck",
|
||||
"ext_mkuserimg",
|
||||
|
Reference in New Issue
Block a user