一、准备工具
linux系统下:
1、安装工具软件
sudo apt install android-sdk-libsparse-utils
2、下载make_ext4fs
make_ext4fs,linux下system.img打包工具-Android文档类资源-CSDN下载
3、基础知识(可选看不看,不看进入下一步)
system.img、vendor.img 都存在两种格式raw,sparse ,在linux 下执行:file system.img
① 一种是raw ext4 image,即经常说的raw image,使用file观察它: 其特点是完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载,因此比较大(一般1G左右)。file 查看
$ file system.img
system.img:Linux rev 1.0 ext4 filesystem data, UUID=da594c53-9beb-f85c-85c5-cedf76546f7a, volume name "system" (extents) (large files)
② 另一种是sparse ext4 image,即经常说的simg
就是说是一个非常普通的dat文件。由于它将raw ext4进行稀疏描述,因此尺寸比较小(没有全零的无效填充区,一般在300到500M之间)。file查看:
$ file system.img
system.img: Android sparse image, version: 1.0, Total of 393216 4096-byte output blocks in 40 input chunks.
android本身提供了源代码工具在两者之间转换,源代码位于:
system/core/libsparse/simg2img.c // 将sparse image转换为raw image;
system/core/libsparse/img2simg.c // 将raw image转换为sparse image;
二、system.img解包
//解包
$ sudo simg2img system.img system.img.ext4
//创建一个目录
$ sudo mkdir sysmain
//将解包的ext4文件挂载到sysmain
$ sudo mount -o loop system.img.ext4 sysmain
接下来你就可以 cd 到sysmain中修改 镜像内容了!!!
三、system.img 打包
以下方法任选一种即可
方法① :
sudo ./make_ext4fs -l 1456M -s -a system systest.img sysmain
如果执行报错“error: ext4_allocate_best_fit_partial: failed to allocate 2260 blocks, out ...” ,请将上诉-l 后面的大小调大 点(但不要太大,否则可能要修改 刷机配置,如mtk的 scatter.txt文件!)
1456M也可以通过原先的 file system.img计算得出
出来的镜像systest.img 就是修改过的,可以重命名 为system.img,如果 设备没有安全启动 那么就能启动成功!
方法②:
$ sudo umount sysmain
$ sudo img2simg system.img.ext4 systest.img
完成!方法② 也适用于 userdata.img 的修改!!亲测有效
vendor.img类同
-----------
ps 1:mtk的话刷机工具为 SP_Flash_Tool
ps 2:安全启动只对只读分区做签名校验
------------------------------------------------------------------
boot.img 打包解包
需要先下载工具:
https://download.csdn.net/download/ab6326795/87364050?spm=1001.2014.3001.5501
使用说明:
一、使用AIK重打包boot.img
将刷机包中的boot.img拷贝到AIK-Linux目录下,执行./unpackimg.sh解包,把./split_img/boot.img-zImage文件删掉,然后将Image.gz-dtb文件拷贝到./split_img目录下,并重命名为boot.img-zImage。
执行./repackimg.sh,生成image-new.img文件,即我们可以刷入的boot.img文件。
二、 如果AIK遇到 “unrecognized format. error!” 或 “ramdisk”问题
那么使用 mb 吧。这玩意似乎要MINGW,我cmd 里没跑通,MINGW里跑成功了!!
unpack:
./mb.exe unpack /d/WPSSoftware/test/boot.img
repack:
./mb.exe repack /d/WPSSoftware/test/boot.img文章来源:https://www.toymoban.com/news/detail-731076.html
接下来参考:【教程】Nexus、Pixel手机解锁bootloader+刷TWRP Recovery + 刷机(含修改ROM boot.img) + ROOT教程_pixel twrp_江西省遂川县杰出青年的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-731076.html
到了这里,关于linux下system.img、vendor.img、boot.img解包和打包(android rom修改)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!