来自:http://blog.csdn.net/free2o/article/details/8969291
Android 中的 system.img 可能有是yaffs2 或者 ext 的文件系统。
1.判断文件系统类型
file out/target/product/generic/system.img
如果输出是: out/target/product/generic/system.img: VMS Alpha executable , 则表明是 yaffs2 文件系统,
如果输出是: data 文件,则表明是 ext 文件系统
2. 解压
- yaffs2 文件系统:
• 下载 unyaffs 工具, 可以从 http://code.google.com/p/unyaffs/downloads/list 下载。
• 创建一个目录把system.img 文件拷贝到该目录下
• 运行 unyaffs system.img && rm system.img 就可以把 system.img 解压到新创建的目录下
- ext 文件系统
• 用simg2img 工具把system.img 转为为ext4 文件格式。
• 用法: simg2img system.img system.ext4.img.
•工具位置 out/host/linux-x86/bin/simg2img
•源代码 http://gitorious.org/0xdroid/system_extras/blobs/9c842adc177c1bcd22c2038d8d237bfb70654dca/ext4_utils/simg2img.c
• 之后创建一个目录,例如 "data",之后运行 mount -t ext4 -o loop system.ext4.img data
• 这样就可以在目录data 下面看到整个system.img 的内容了
3. 压缩
- yaff2 文件系统
• 可以使用工具: out/host/linux-x86/bin/mkyaffs2image
• 工具用例: out/host/linux-x86/bin/mkyaffs2image -f out/target/product/generic/system out/target/product/generic/system.img
- ext4 文件系统
• 可以使用 out/host/linux-x86/bin/mkuserimg.sh 来生成 ext 文件系统的 system.img .
•mkuserimg.sh 用法如下:
mkuserimg.sh [-s] SRC_DIR OUTPUT_FILE EXT_VARIANT MOUNT_POINT SIZE
./mkuserimg.sh -s /some/directory/with/files ./factoryfs_custom.img ext4 ./temp 512M
可以从这里看到源代码: https://android.googlesource.com/platform/system/extras/+/android-cts-4.1_r2/ext4_utils/mkuserimg.sh
Android 中的 system.img 可能有是yaffs2 或者 ext 的文件系统。
1.判断文件系统类型
file out/target/product/generic/system.img
如果输出是: out/target/product/generic/system.img: VMS Alpha executable , 则表明是 yaffs2 文件系统,
如果输出是: data 文件,则表明是 ext 文件系统
2. 解压
- yaffs2 文件系统:
• 下载 unyaffs 工具, 可以从 http://code.google.com/p/unyaffs/downloads/list 下载。
• 创建一个目录把system.img 文件拷贝到该目录下
• 运行 unyaffs system.img && rm system.img 就可以把 system.img 解压到新创建的目录下
- ext 文件系统
• 用simg2img 工具把system.img 转为为ext4 文件格式。
• 用法: simg2img system.img system.ext4.img.
•工具位置 out/host/linux-x86/bin/simg2img
•源代码 http://gitorious.org/0xdroid/system_extras/blobs/9c842adc177c1bcd22c2038d8d237bfb70654dca/ext4_utils/simg2img.c
• 之后创建一个目录,例如 "data",之后运行 mount -t ext4 -o loop system.ext4.img data
• 这样就可以在目录data 下面看到整个system.img 的内容了
3. 压缩
- yaff2 文件系统
• 可以使用工具: out/host/linux-x86/bin/mkyaffs2image
• 工具用例: out/host/linux-x86/bin/mkyaffs2image -f out/target/product/generic/system out/target/product/generic/system.img
- ext4 文件系统
• 可以使用 out/host/linux-x86/bin/mkuserimg.sh 来生成 ext 文件系统的 system.img .
•mkuserimg.sh 用法如下:
mkuserimg.sh [-s] SRC_DIR OUTPUT_FILE EXT_VARIANT MOUNT_POINT SIZE
./mkuserimg.sh -s /some/directory/with/files ./factoryfs_custom.img ext4 ./temp 512M
可以从这里看到源代码: https://android.googlesource.com/platform/system/extras/+/android-cts-4.1_r2/ext4_utils/mkuserimg.sh