linux下system.img、vendor.img、boot.img解包和打包(android rom修改)

这篇具有很好参考价值的文章主要介绍了linux下system.img、vendor.img、boot.img解包和打包(android rom修改)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、准备工具

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

接下来参考:【教程】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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android OTA 相关工具(七) 使用 lpunpack 解包 super.img

    从 Android 10(Q) 开始,引入了动态分区,伴随的就是一组动态分区内容数据增删改查相关的操作,以及这些操作所需要的工具,包括 lpdump, lpmake, lpunpack, lpadd, lpflash。 工具名称前缀 lp 表示是 logic partition,即逻辑分区。 所谓逻辑分区,是相对于物理分区而言,因为动态分区内部

    2024年02月02日
    浏览(77)
  • 从安卓系统USB升级包里提取system.img、boot.img和recovery.img在内的镜像文件

    如果你拿到一个USB升级包,你会发现升级包的结构基本相似。 但是里面并不是直接就有包括system.img、boot.img和recovery.img在内的镜像文件。 如果我们需要在Android手机上获取Magisk。提取内核(boot.img)就至关重要。当然其他镜像根据你的需要也有其他用处。 这时,如果你需要这

    2024年02月02日
    浏览(45)
  • Quest固件下载链接,最全版本升级包,降级,Quest2,Firmware,rom,system.img,boot.img, 附录下载地址大全

    adb sideload C:path-to-update-fileupdate-file.zip 除了 v20 之外的所有这些链接都是完整的固件版本(因此大约有 800 MB 的下载量),因此您无需担心您当前使用的是哪个版本来使用这些。为防止 Quest 在降级后自行更新,请在 Oculus 应用的“高级设置”中禁用“自动更新软件”(防止升

    2024年02月05日
    浏览(88)
  • Linux下的打包和压缩/解压解包

    打包呢就是把所有东西装在一起,然后压缩就是将这一包东西给它合理摆放,腾出更多的空间,以便放更多的东西。 压缩可以将如果东西是一定的情况下,占用更小的体积,如果空间固定那么压缩就会使这个空间能装更多的东西。这种就像要开学去学校的你,带很多东西,一

    2024年02月13日
    浏览(39)
  • 序列解包和生成器表达式

    (1) 必须一一对应 x, y, z = 1, 2 会抛出异常 (2) 括号可加可不加 可以对range对象进行解包 使用迭代器对象进行解包 使用map对象进行解包 交换两个变量的值 对列表解包 对字符串解包 切片也支持序列解包 序列解包对于列表和字典同样有效 python3.5之后的版本支持下面用法的序列解

    2024年02月07日
    浏览(56)
  • android通过adb命令获取boot.img镜像

    当前系统支持双分区,区a分区boot_a.img如下: 取boot.img 取出来后通过fastboot方式刷机: 参考博客:  Android手机如何提取系统内核(boot.img镜像文件提取)_Mintimate的博客-CSDN博客_安卓boot.img提取

    2024年02月13日
    浏览(45)
  • 【工具使用-ADB】ADB remount报错“Skipping /system for remount Skipping /vendor for remount Skipping /product“

    在对安卓设备进行adb remount的时候报错: 需要使用adb disable-verity对设备进行fastboot进行解锁,解锁完重启即可。 3.1 正常情况下分别输入下面两条命令即可 示例说明: 执行完adb disable-verity如下图所示: 此时进行adb reboot重启一下即可。 3.2 有些设备可能在执行完之后会出现如下

    2024年04月26日
    浏览(37)
  • 打包与解包:Go 中 archive 库的实战应用

    在当今快速发展的软件行业中,Go 语言以其出色的性能、简洁的语法和强大的并发处理能力,成为了众多开发者和企业的首选。Go 不仅在构建高效的网络服务和分布式系统中表现出色,其标准库中的各种工具和库也为开发者提供了极大的便利。在这些工具中, archive 库扮演着

    2024年01月18日
    浏览(33)
  • 项目打包部署之部署jar包和war包

     本文将介绍将Java项目部署到Linux服务器上的步骤。首先,你需要了解服务器的基本知识和安装Java环境的方法。然后,我们就jar包和war包两种应用部署到Linux服务器上来进行讲解,包括如何将应用程序上传到服务器,如何配置服务器,以及如何启动和停止应用程序。  在Li

    2024年02月17日
    浏览(73)
  • Vue 打包 chunk-vendors.js 文件过大导致页面加载缓慢解决方案

    前言 顾名思义, chunk-vendors.js 是捆绑所有不是自己的模块,而是来自其他方的模块的捆绑包,它们称为第三方模块或供应商模块。 通常,它意味着(仅和)来自项目 /node_modules 目录的所有模块,会将所有 /node_modules 中的第三方包打包到 chunk-vendors.js 中。 将所有的第三方包集

    2024年02月16日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包