[android]system.img文件的打包和解包
1:system.img的两种格式
system2_0.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)
system1_0.img: Android sparse image, version: 1.0, Total of 393216 4096-byte output blocks in 1765 input chunks.
以上两种格式分别为:
ext4 filesystem data
Android sparse image
2:两种格式的相互转化工具
//sparse image转化成为ext4的raw imge
Usage: simg2img <sparse_image_files> <raw_image_file>
//ext4的raw image to sparse image
Usage: img2simg <raw_image_file> <sparse_image_file> [<block_size>]
3:system.img文件重新打包的过程
总体思路是将system.img镜像挂载后,然后修改,修改完成为使用make_ext4fs命令进行打包。
1:先将system.img文件转化为ext4的raw image file(只要这个格式的system.img可以挂载)
2:然后挂载system.img
sudo mount system.img /mnt/system
3:然后根据自己的需要,修改/mnt/system目录下的文件
4:重新打包
sudo make_ext4fs -s -l 3096M new.img /mnt/system
5:重新打包后的文件new.img是sparse image格式,所以需要转化成ext4的 raw image
sim2img new.img system.img
6:至此,修改system.img,重新打包的过程完成
4:recovery.img的打包解包过程
http://rex-shen.net/android-unpackpack-factory-images/
6:boot.img文件的解包
#操作命令
mkdir boot && cd boot
abooting -x ../boot.img
#得到这三个文件 :bootimg.cfg initrd.img zImage
#initrd.img文件的解包
file initrd.img
initrd.img: gzip compressed data, from Unix #可以看到是一个gzip的压缩文件
#下面是解压initrd.img文件的命令
mkdir initrd
cd initrd
cat ../initrd.img | gunzip | cpio -vid
#解压上面的initrd.img后,可以看到非常多的文件
#上面编辑完后,重新打包命令如下
cd initrd
find . | cpio --create --format='newc' | gzip > ../myinitd.img
#新写打包boot.img
abootimg --create myboot.img -f bootimg.cfg -k zImage -r myinitrd.img
#下面的命令可以打印出myboot.img文件中的config信息
abootimg -i myboot.img
5:Debian系统中包含的Android开发工具
#安装命令
sudo apt-get install android-tools-adb android-tools-fastboot android-tools-fsutils abootimg
#每个工具的用途,根据需要安装
android-tools-adb
Android Debug Bridge CLI tool
android-tools-fastboot
Android Fastboot protocol CLI tool
android-tools-fsutils
Android ext4 utilities with sparse support
abootimg
Tool to read/write/update android boot images
[android]system.img文件的打包和解包的更多相关文章
- pak文件的打包和解包
pak格式的文件 一般游戏有资源 游戏素材会打包放进去 比如游戏语音 游戏多加点语音 多加一些贴图资源 外部文件实现的 素材--->pak文件--->用的时候从文件中取出来 文件的打包 ...
- python中*和**的打包和解包
python中的*和**,能够让函数支持任意数量的参数,它们在函数定义和调用中,有着不同的目的 一. 打包参数 * 的作用:在函数定义中,收集所有的位置参数到一个新的元组,并将这个元组赋值给变量arg ...
- unity学习 5.x依赖打包和解包
unity5已经封装好了接口,所以依赖打包并没有那么神秘和复杂了. 打包: 1.定义好资源的assetBundleName 2.BuildPipeline.BuildAssetBundles,指定资源 ...
- Android 校验apk文件渠道号、包名、版本号
功能:可查看单个或目录下所有apk文件的渠道号.包名.版本号 下载地址:http://download.csdn.net/detail/zgz345/9248487使用:以查看包名.版本号为例 1.c ...
- Android系统的镜像文件的打包过程
在前面一篇文章中,我们分析了Android模块的编译过程.当Android系统的所有模块都编译好之后,我们就可以对编译出来的模块文件进行打包了.打包结果是获得一系列的镜像文件,例如system.img ...
- xpack文件打包解包代码库
Github ###概述 xpack是一个文件资源打包工具及类库,可以对多文件进行打包解包. 其使用文件名的hash作为索引,建立hash索引表以加速文件查找. ###特性 支持hashid自动解冲突 ...
- Day004_Linux基础_基础命令之tar打包解包
基础命令之 打包,和解包. tar zcvf 打包的参数 tar zcvf /tmp/etc.tar.gz /etc 将/etc/下的文件压缩成一个压缩包 z 通过gzip工具进行压缩 c 表示 ...
- Linux 文件的打包压缩
压缩和解压 压缩:为了节约磁盘空间. gzip --- .gz bzip2 --- .bz2 xz --- .xz compress --- .z 压缩比例:xz > bzip2 > gz ...
- Linux下 解包/打包 Android 映像文件 system.img, boot.img, ramdisk.img, userdata.img.
Linux下 解包/打包 Android 映像文件 system.img, boot.img, ramdisk.img, userdata.img. 2014年10月20日 ⁄ 计算机视觉 ⁄ 共 1 ...
随机推荐
- WordPress疑难问题以及解决方案汇总
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/101 WordPress疑难问题以及解决方案汇总: 最近这 ...
- 为什么AlertDialog要使用Builder来构建呢
为什么 AlertDialog 使用Builder 模式呢? 首先说句废话,因为 AlertDialog 太过复杂,内部参数太多,然后不使用构建者模式那么 AlertDialog 的构造方法就可能是: ...
- dedecmsV5.7 arclist标签同时取出主表和附表里的数据
{dede:arclist}{/dede:arclist}标签默认取出来的是主表x_archives中的数据,如果要取出附表中的数据,需要满足两个条件: 指定channelid属性(注意:channe ...
- SQL server利用脚本添加链接服务器,可设置别名
USE [master]GO EXEC master.dbo.sp_addlinkedserver @server = N'你的别名', @srvproduct=N'', @provider=N'SQ ...
- 网络编程~~~ socket(套字节)
一 socket (套接字) socket处于应用层与传输层之间,提供了一些简单的接口,避免与操作系统之间的对接,省去了相当繁琐复杂的操作. socket在python中属于一个模块,通过调用模块中已 ...
- Mybatis整合Redis实现二级缓存
Mybatis集成ehcache . 为什么需要缓存 拉高程序的性能 . 什么样的数据需要缓存 很少被修改或根本不改的数据 业务场景比如:耗时较高的统计分析sql.电话账单查询sql等 . ehcac ...
- JUC-4-CopyOnWriteArrayList
什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器.通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新 ...
- lambda的一個小用法
lambda主要是對流的掌握,當然可以連著寫很多,但是不太容易閲讀 public static void main(String[] args) throws IOException { Path d ...
- React 创建一个自动跟新时间的组件
componentDidMount声明周期函数 表示组件渲染完成后 componentWillUnmount声明周期函数 组件将要卸载 通常用于(为了防止内存泄漏 清除定时器) 11==>创建组 ...
- LINUX上安装JDK+tomcat+mysql操作笔记
1.环境准备: 1-1.centos 64位(本人的虚拟机安装此系统),安装步骤和网络配置已经在前两篇记录. 1-2.JDK 版本1.8 1-3.tomcat压缩包 1-4.CRT远程连接工具(可用其 ...