600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 安卓rom包解包linux [ROM开发]解包打包ROM详细教程 .9.8更新安卓7.0

安卓rom包解包linux [ROM开发]解包打包ROM详细教程 .9.8更新安卓7.0

时间:2019-03-14 18:59:55

相关推荐

安卓rom包解包linux [ROM开发]解包打包ROM详细教程 .9.8更新安卓7.0

解包和打包system.img

直接挂载mountsystem.img/mnt/rom

修改后打包 file_contexts放在当前目录 即打包的img所在目录make_ext4fs-S./file_contexts-l1610612736-s-asystemsystem_out.img/mnt/rom

-l时按指定长度 1610612736既是指定长度

通过下面这命令查看大小 会显示xxx bytsfdisk-lsystem.img

打包后还不是Ext4用以下工具和命令./simg2imgsystem_out.imgsystem_new.img

用以下命令可以查看是否为img格式是否为ext4 和原img比对类型filesystem_new.img

解压和打包安卓DAT文件

首先把DAT解压成IMG镜像,我们要使用sdat2img工具把 DAT文件转换成IMG镜像./sdat2img-=input,system.transfer.listfromromzip-=input,system.new.datfromromzip-=outputext4rawimagefile

一个很简单的例子(看你用的啥):./sdat2imgsystem.transfer.listsystem.new.datsystem.img

or./sdat2img.pysystem.transfer.listsystem.new.datsystem.img

新生成的IMG镜像便是我们下一步需要的.

挂载IMG镜像sudomount-text4-oloopsystem.img/mnt/rom

orsudomountsystem.img/mnt/rom

这时候你可以在系统的 /mnt/rom目录下看到文件的具体内容然后进行修改了.

打包回IMG镜像-把修改好的内容打包回去需要使用make_ext4工具./make_ext4fs-S./file_contexts-l1610612736-s-asystemsystem_out.img/mnt/rom

-l时按指定长度 1610612736既是指定长度 通过下面这命令查看大小 会显示xxx bytsfdisk-lsystem.img

打包后还不是Ext4用以下工具和命令./simg2imgsystem_out.imgsystem_new.img

用以下命令可以查看是否为img格式是否为ext4 和原img比对类型filesystem_new.img

封装成DAT仍需要使用工具 使用 rimg2sdat (在安卓7.0,很可能会出现段存储错误)./rimg2sdat

例:./rimg2sdatsystem_new.img

这样就打包好了新的DAT文件,放入刷机ROM.刷机即可~

file_contexts提取

解压rom得到boot.img 有的是BOOT.img

使用unpackbootimg工具./unpackbootimg-i.\BOOT.img

解压后得到BOOT.img-ramdisk和其他一堆文件

只用找到BOOT.img-ramdisk,这是一个gzip的压缩包

直接解压即可得到file_contexts

参考:

工具:

安卓7.0file_contexts提取

先安装工具包:sudoaptinstallabootimg

解包:abootimg-xboot.img

得三个文件,其中有一个initrd.img,使用file命令查看为gzipfileinitrd.imginitrd.img:gzipcompresseddata,fromUnix

解压后得file_contexts.bincat./initrd.img|gunzip|cpio-vid

Android 7.0 file_contexts.bin和file_contexts转换工具

1、file_contexts.bin 转换成 file_contexts,命令如下:./sefcontext-ofile_contextsfile_contexts.binsefcontext

2、file_contexts 转换成 file_contexts.bin,命令如下:./sefcontext_compile-ofile_contexts.binfile_contexts

安卓7.0新版打包dat方式 使用rimg2sdat.py(这个工具使用的输入文件是sparse ext4fs image镜像)

由system目录制作raw ext4fs镜像system.rimg./make_ext4fs-T0-S./file_contexts-l265920-asystemsystem.rimg/mnt/rom

简单解释一下,

-T代表对镜像中的unix文件时间戳进行设置,这里设置为0,表示1970-1-1。

-S 代表file_contexts,即selinux的文件selabel,必须指定;注意是大写S。

-l 表示文件分区的length,也是制作出来的镜像文件的大小;这里n5指定为1G。

-a 表示android中分区的名字,这里表示system分区;

/mnt/rom表示制作源目录。也就是你解包后挂载的那个目录

通过上面的步骤,得到一个2GB的文件system.rimg。这是一个ext4的文件,所以需要转化img2simgsystem.rimgsysparse.rimg

有人会说为什么不直接用-s生成sparse文件,

原因是:这两个文件是不一样的,至于为什么,我也不知道,可能工具有问题,没细究

第一个直接生成的:

file system_out.img

system_out.img: Android sparse image, version: 1.0, Total of 491520 4096-byte output blocks in 4854 input chunks.

第二个是生成的ext4再转化后的:

file sysparse.rimg

sys.rimg: Android sparse image, version: 1.0, Total of 491520 4096-byte output blocks in 10396 input chunks.

会发现 这两个的blocks会不一样../img2sdat.pysysparse.rimg./4

这样,会在当前目录下生成2个文件:system.new.dat system.transfer.list。自己再创建一个空的system.patch.dat即可。

最近筹备的一些东西和遇到的问题。

最近有部分rom开发者将rom打包成了一种特殊的格式,实质肯定是ext的img,但是无法挂载,也没有多余的分区,更无法转化,正在寻找解决办法

同时也准备开发一个rom推广的精简工具,以后我会更倾向于直接刷完三方再一键精简。不太想折腾包了,打包解包太慢,测试时间也长,使用app,会更0基础更方便一些。

测试环境:

ubuntu 16.04 64bit

各种问题解决来自:

以下包中有一个img2simg工具没有,Ubuntu下可以直接安装工具包sudoaptinstallandroid-tools-fsutils

已测试的所有最新的工具 linux使用自行百度学习

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。