http://muzso.hu/2012/08/10/how-to-pack-and-unpack-system.img-and-userdata.img-from-an-android-factory-imageHow to pack and unpack system.img and userdata.img from an Android factory image
Fri, 2012.08.10 - 03:34 - müzso
http://forum.xda-developers.com/showthread.php?t=1081239
- Download the https://android.googlesource.com/platform/system/extras repository:
git clone https://android.googlesource.com/platform/system/extras - Check out a revision of your choice:
cd extras
git checkout android-4.1.1_r1 - Compile simg2img:
cd ext4_utils
gcc -o simg2img -lz sparse_crc32.c simg2img.c - Unpack your Android image files:
cd ../../
./extras/ext4_utils/simg2img system.img system.raw.img
./extras/ext4_utils/simg2img userdata.img userdata.raw.img - Do whatever you want with the images (eg. you can use Paragon's ExtFS on a Mac or just simply mount the images in linux via the loop device).
(Update, 2012.02.16: Paragon's ExtFS -or at least v8- does not work well.
It doesn't show all files that are in the ext4 image.)
Eg.
mkdir /mnt/my_system /mnt/my_userdata
mount -t ext4 -o loop system.raw.img /mnt/my_system
mount -t ext4 -o loop userdata.raw.img /mnt/my_userdata - Compile make_ext4fs:
cd extras/ext4_utils
gcc -o make_ext4fs -lz make_ext4fs_main.c make_ext4fs.c ext4fixup.c ext4_utils.c allocate.c backed_block.c output_file.c contents.c extent.c indirect.c uuid.c sha1.c sparse_crc32.c wipe.c - Repack the images:
cd ../../
PATH="$PATH:$(pwd)/extras/ext4_utils/make_ext4fs" ./extras/ext4_utils/mkuserimg.sh -s /mnt/my_system_dir my_system.img ext4 /tmp 512M
P.S.: if compiling stuff is not your thing, you can just download simg2img and make_ext4fs from
here.