diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2010-12-29 15:38:10 -0800 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2010-12-29 15:38:10 -0800 |
commit | b984d51b0eabdcaf138741a43724c84b7847b05b (patch) | |
tree | 1d27bc8a200ccb9c59d11be7253e13bcbf61a45c | |
parent | 9770a4ed0981313ff55e249efd40af9fe8691489 (diff) | |
parent | 6fc6f4d7459f731ab8cdcc355eed490341ec764a (diff) | |
download | diskinstaller-b984d51b0eabdcaf138741a43724c84b7847b05b.tar.gz |
Merge "Add ext4 support"
-rw-r--r-- | config.mk | 16 | ||||
-rw-r--r-- | installer.c | 11 | ||||
-rw-r--r-- | installer.conf | 6 | ||||
-rw-r--r-- | installer.h | 1 |
4 files changed, 26 insertions, 8 deletions
@@ -136,6 +136,7 @@ $(installer_tmp_img): $(MKEXT2IMG) $(internal_installerimage_files) ###################################################################### # Now make a data image that contains all the target image files for the # installer. + bootldr_bin := $(PRODUCT_OUT)/grub/grub.bin installer_target_data_files := \ $(INSTALLED_BOOTIMAGE_TARGET) \ @@ -143,6 +144,17 @@ installer_target_data_files := \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(bootldr_bin) +# $(1): src directory +# $(2): output file +# $(3): mount point +# $(4): ext variant (ext2, ext3, ext4) +# $(5): size of the partition +define build-installerimage-ext-target + @mkdir -p $(dir $(2)) + $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$(PATH) \ + $(MKEXTUSERIMG) $(1) $(2) $(4) $(3) $(5) +endef + installer_data_img := $(TARGET_INSTALLER_OUT)/installer_data.img $(installer_data_img): $(diskinstaller_root)/config.mk \ $(installer_target_data_files) \ @@ -157,8 +169,8 @@ $(installer_data_img): $(diskinstaller_root)/config.mk \ $(TARGET_INSTALLER_OUT)/data/system.img cp -f $(INSTALLED_USERDATAIMAGE_TARGET) \ $(TARGET_INSTALLER_OUT)/data/userdata.img - $(call build-userimage-ext2-target,$(TARGET_INSTALLER_OUT)/data,$@,\ - inst_data,) + $(call build-installerimage-ext-target,$(TARGET_INSTALLER_OUT)/data,$@, \ + inst_data,ext4,$(BOARD_INSTALLERIMAGE_PARTITION_SIZE)) @echo --- Finished installer data image -[ $@ ]- ###################################################################### diff --git a/installer.c b/installer.c index 357c210..5201452 100644 --- a/installer.c +++ b/installer.c @@ -247,7 +247,9 @@ process_image_node(cnode *img, struct disk_info *dinfo, int test) goto fail; } - if (!strcmp(tmp, "ext2")) + if (!strcmp(tmp, "ext4")) + journal_opts = ""; + else if (!strcmp(tmp, "ext2")) journal_opts = ""; else if (!strcmp(tmp, "ext3")) journal_opts = "-j"; @@ -313,6 +315,8 @@ process_image_node(cnode *img, struct disk_info *dinfo, int test) type = INSTALL_IMAGE_EXT2; } else if (!strcmp(tmp, "ext3")) { type = INSTALL_IMAGE_EXT3; + } else if (!strcmp(tmp, "ext4")) { + type = INSTALL_IMAGE_EXT4; } else { LOGE("Unknown image type '%s' for image %s", tmp, img->name); goto fail; @@ -345,6 +349,9 @@ process_image_node(cnode *img, struct disk_info *dinfo, int test) } /* ...fall through... */ + case INSTALL_IMAGE_EXT4: + /* fallthru */ + case INSTALL_IMAGE_EXT2: if (process_ext2_image(dest_part, filename, flags, test)) goto fail; @@ -371,7 +378,7 @@ main(int argc, char *argv[]) char *inst_conf_file = "/system/etc/installer.conf"; char *inst_data_dir = "/data"; char *inst_data_dev = NULL; - char *data_fstype = "ext2"; + char *data_fstype = "ext4"; cnode *config; cnode *images; cnode *img; diff --git a/installer.conf b/installer.conf index acdd7a2..96b81e8 100644 --- a/installer.conf +++ b/installer.conf @@ -14,15 +14,13 @@ images { system { partition system filename /data/system.img - type ext2 - flags resize,addjournal + type raw } data { partition data filename /data/userdata.img - type ext2 - flags resize,addjournal + type raw } cache { diff --git a/installer.h b/installer.h index 98bb2f9..a7108ae 100644 --- a/installer.h +++ b/installer.h @@ -24,6 +24,7 @@ #define INSTALL_IMAGE_RAW 1 #define INSTALL_IMAGE_EXT2 2 #define INSTALL_IMAGE_EXT3 3 +#define INSTALL_IMAGE_EXT4 4 #define INSTALL_IMAGE_TARGZ 10 |