ROM定制开发入门-system userdata镜像解包打包

 

一、linux环境解包打包

 

环境要求:Ubuntu

此处以system.img和userdata.img打包为例,基于谷歌源码编译的工具使用方法和命令

 

1.转换格式

在解包过程中,system或者userdata镜像文件经常以两种格式出现:raw和sparse。

 

一种是raw ext4 image,即经常说的raw image,使用file观察它:

其特点是完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载,因此比较大。

 

$ file system.img

system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)

信息非常明确了。

 

另一种是sparse ext4 image,即经常说的simg,使用file观察它:

$ file system.img

system.img: data

如果格式为data,需要从data格式转成ext4格式,也就是raw格式,如下

 

> simg2img system.img system.img.ext4 //转换格式

> mkdir tmp //新建临时文件夹

> sudo mount -o loop system.img.ext4 tmp 将ext4文件挂载到tmp目录

 

2.常规打包:

ls -l system.img.ext4看大小,假设是1073741824,这个参数后边用到。(此处l是英文字母L)

 

> ./make_ext4fs -s -l 2684354560  -a system new_system.img ./tmp

 

3.安卓5.0以及5.0以上版本打包,需注意

 

命令如下:

$ ./make_ext4fs -s -T 1421464178 -S file_contexts -l 1073741824 -a system new_system.img system/

 

或者:

./make_ext4fs -s  -S file_contexts -l 2048M -a system new_system.img system/

 

命令参数说明:

// -s 表示安静处理,不输出动作,可以不带该参数

// -T 表示Unix时间戳,对system.img中的文件设置修改时间,执行“

date +%s”获取某个时间点的时间戳,也可以直接不用-T 1421464178 ;

// -S 表示sepolicy 的file_contexts,把该文件放到此目录下,文件取自官方system/root路径卡刷包自带(解压内核,在内核里面)

// -l 表示最大的文件大小(受限于分区大小);可以ls -l 当前转格式出来的system大小、单位也可以为MB

// -a 表示Android的mount点,比如system、userdatarecovery;

// oksystem.img 表示输出文件名

// system/ 表示输入目录,该目录下有framework、appbin等目录;

 

上述的simg2img和make_ext4fs是android自带的工具,如果有android源码而且编译通过的话, 这些工具可以在/out/host/linux-x86/bin中找到。

 

Linux工具下载:

https://github.com/Loren-Yi/make_ext4fs

 

 

二、windows下解包打包

仅列出如下,不一一说明用法,如下:

1.第三方PC客户端工具

2.第三方批处理脚本工具

3.主流客户端工具:ROM定制大师,ROM制作工具和蘑菇助手

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X神之怒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值