summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYing Wang <wangying@google.com>2010-11-17 15:40:38 -0800
committerJean-Baptiste Queru <jbq@google.com>2010-12-28 13:41:33 -0800
commit085a14698b5d99b0b93ac70ea428c3c9e2277be2 (patch)
tree63b3bfac96c42890504e50bb355e4a089a4b7d26
parent76aa8d0a8bc753b1fffa239609d4364699fec6cc (diff)
downloadbuild-085a14698b5d99b0b93ac70ea428c3c9e2277be2.zip
build-085a14698b5d99b0b93ac70ea428c3c9e2277be2.tar.gz
build-085a14698b5d99b0b93ac70ea428c3c9e2277be2.tar.bz2
Product-configurable sparse ext images.
Also pass extfs sparse image flag to the release tool. Change-Id: I79a6a71873634a231aa8990cee22374259601505
-rw-r--r--core/Makefile13
-rw-r--r--core/config.mk2
-rwxr-xr-xtools/releasetools/img_from_target_files23
3 files changed, 26 insertions, 12 deletions
diff --git a/core/Makefile b/core/Makefile
index e11234e..29c4043 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -566,8 +566,12 @@ endif
endif
endif
+ifneq (true,$(TARGET_USERIMAGES_SPARSE_EXT_DISABLED))
+ INTERNAL_USERIMAGES_SPARSE_EXT_FLAG := -s
+endif
+
ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true)
-INTERNAL_USERIMAGES_DEPS := $(MKEXT2USERIMG) $(MAKE_EXT4FS)
+INTERNAL_USERIMAGES_DEPS := $(MKEXTUSERIMG) $(MAKE_EXT4FS)
INTERNAL_USERIMAGES_BINARY_PATHS := $(sort $(dir $(INTERNAL_USERIMAGES_DEPS)))
# $(1): src directory
@@ -577,8 +581,8 @@ INTERNAL_USERIMAGES_BINARY_PATHS := $(sort $(dir $(INTERNAL_USERIMAGES_DEPS)))
# $(5): size of the partition
define build-userimage-ext-target
@mkdir -p $(dir $(2))
- $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$(PATH) \
- $(MKEXT2USERIMG) $(1) $(2) $(4) $(3) $(5)
+ $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$(PATH) \
+ $(MKEXTUSERIMG) $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG) $(1) $(2) $(4) $(3) $(5)
endef
else
INTERNAL_USERIMAGES_DEPS := $(MKYAFFS2)
@@ -1044,6 +1048,9 @@ endif
ifdef mkyaffs2_extra_flags
$(hide) echo "mkyaffs2_extra_flags=$(mkyaffs2_extra_flags)" >> $(zip_root)/META/misc_info.txt
endif
+ifdef INTERNAL_USERIMAGES_SPARSE_EXT_FLAG
+ $(hide) echo "extfs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG)" >> $(zip_root)/META/misc_info.txt
+endif
@# Zip everything up, preserving symlinks
$(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .)
@# Run fs_config on all the system files in the zip, and save the output
diff --git a/core/config.mk b/core/config.mk
index 0dec4be..1282ad6 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -210,7 +210,7 @@ APICHECK := $(HOST_OUT_EXECUTABLES)/apicheck$(HOST_EXECUTABLE_SUFFIX)
FS_GET_STATS := $(HOST_OUT_EXECUTABLES)/fs_get_stats$(HOST_EXECUTABLE_SUFFIX)
MKEXT2IMG := $(HOST_OUT_EXECUTABLES)/genext2fs$(HOST_EXECUTABLE_SUFFIX)
MAKE_EXT4FS := $(HOST_OUT_EXECUTABLES)/make_ext4fs$(HOST_EXECUTABLE_SUFFIX)
-MKEXT2USERIMG := $(HOST_OUT_EXECUTABLES)/mkuserimg.sh
+MKEXTUSERIMG := $(HOST_OUT_EXECUTABLES)/mkuserimg.sh
MKEXT2BOOTIMG := external/genext2fs/mkbootimg_ext2.sh
MKTARBALL := build/tools/mktarball.sh
TUNE2FS := tune2fs
diff --git a/tools/releasetools/img_from_target_files b/tools/releasetools/img_from_target_files
index f10af49..0139916 100755
--- a/tools/releasetools/img_from_target_files
+++ b/tools/releasetools/img_from_target_files
@@ -61,10 +61,13 @@ def AddUserdata(output_zip):
img = tempfile.NamedTemporaryFile()
build_command = []
- if OPTIONS.info_dict["fstab"]["/data"].fs_type.startswith("ext"):
- build_command = ["mkuserimg.sh",
- user_dir, img.name,
- OPTIONS.info_dict["fstab"]["/data"].fs_type, "data"]
+ fstab = OPTIONS.info_dict["fstab"]
+ if fstab and fstab["/data"].fs_type.startswith("ext"):
+ build_command = ["mkuserimg.sh"]
+ if "extfs_sparse_flag" in OPTIONS.info_dict:
+ build_command.append(OPTIONS.info_dict["extfs_sparse_flag"])
+ build_command.extend([user_dir, img.name,
+ fstab["/data"].fs_type, "data"])
if "userdata_size" in OPTIONS.info_dict:
build_command.append(str(OPTIONS.info_dict["userdata_size"]))
else:
@@ -109,10 +112,14 @@ def AddSystem(output_zip):
pass
build_command = []
- if OPTIONS.info_dict["fstab"]["/system"].fs_type.startswith("ext"):
- build_command = ["mkuserimg.sh",
- os.path.join(OPTIONS.input_tmp, "system"), img.name,
- OPTIONS.info_dict["fstab"]["/system"].fs_type, "system"]
+ fstab = OPTIONS.info_dict["fstab"]
+ if fstab and fstab["/system"].fs_type.startswith("ext"):
+
+ build_command = ["mkuserimg.sh"]
+ if "extfs_sparse_flag" in OPTIONS.info_dict:
+ build_command.append(OPTIONS.info_dict["extfs_sparse_flag"])
+ build_command.extend([os.path.join(OPTIONS.input_tmp, "system"), img.name,
+ fstab["/system"].fs_type, "system"])
if "system_size" in OPTIONS.info_dict:
build_command.append(str(OPTIONS.info_dict["system_size"]))
else: