miuiv13-redmi-note11TPro-root

本文详述了一位用户在尝试为红米Note11TPro获取MIUI13系统根权限以及解包OTA更新过程中遇到的各种问题。从payload.bin的解包工具payload_dumper的安装和使用,到遇到的protobuf版本不兼容问题,再到尝试使用unota工具的失败,用户逐步排查并尝试了不同解决方案。最终,用户通过线刷包成功获取boot.img,并使用Magisk修补和隐藏root权限。在过程中遇到了AB分区、OEM解锁、Magisk模块等问题,展示了Android系统自定义和安全性的复杂性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

miuiv13-redmi-note11TPro-root

好多年不关注这些了,搜索发现多了ab分区、卡刷/OTA包payload.bin等变化。现在再看源码、搜资料自己解包payload.bin等是来不及了。所以还是先看看网上的一些教程吧。

payload.bin解包

  • 更新MIUIV13.0.13的OTA包时保存了一份,结构如下:
    在这里插入图片描述

payload_dumper

  • 根据:https://zhuanlan.zhihu.com/p/424625779、https://blog.csdn.net/weixin_43890033/article/details/119457211,使用https://github.com/vm03/payload_dumper,git clone下来。
  • 把payload.bin放在payload_dumper目录,使用Win10子系统Ubuntu18.04LTS执行:
python3 payload_dumper.py payload.bin
Traceback (most recent call last):
  File "payload_dumper.py", line 7, in <module>
    import bsdiff4
ModuleNotFoundError: No module named 'bsdiff4'

缺少库,根据requirements.txt安装

pip3 install bsdiff4>=1.1.5

安装protobuf报错。

python3 payload_dumper.py payload.bin
Traceback (most recent call last):
  File "payload_dumper.py", line 15, in <module>
    import update_metadata_pb2 as um
  File "/mnt/d/payload_dumper/update_metadata_pb2.py", line 6, in <module>
    from google.protobuf import descriptor as _descriptor
ModuleNotFoundError: No module named 'google'

pip3 install protobuf>=3.19.3
protobuf requires Python '>=3.7' but the running Python is 3.6.9

直接读取requirements.txt安装也是报错:protobuf requires Python ‘>=3.7’ but the running Python is 3.6.9。不想升级python。

pip3 install -r requirements.txt
Collecting protobuf>=3.19.3 (from -r requirements.txt (line 1))
  Using cached https://files.pythonhosted.org/packages/6c/be/4e32d02bf08b8f76bf6e59f2a531690c1e4264530404501f3489ca975d9a/protobuf-4.21.0-py2.py3-none-any.whl
protobuf requires Python '>=3.7' but the running Python is 3.6.9

因为不了解python,仔细看是大于等于的关系,安装的是protobuf-4.21.0版本,尝试安装protobuf-3.19.3版本成功:(six>=1.16.0通过requirements.txt安装了)

pip3 install protobuf==3.19.3
Collecting protobuf==3.19.3
Installing collect
包含boot.exe huawei C8800 root工具 Android平台ROM的定制及精简教程.pdf signapk.jar 等等 2010.11.02.2更新 0. 添加crc校验,目前是关闭,只有在debug方式解开updata.app时才启用 (--unpack-updata UPDATA.APP debug) 1. 修复windows系统下系统目录符号\与linux下系统目录符号/不一致的情况,感谢cgw233@gmial.com提交bug 2010.11.02更新: 0. 修复unyaffs在windows下的文件打开模式bug,感谢cgw233@gmial.com提交bug 1. 添加注释 2. 代码兼容2.4, 2.5. 2.6, 2.7至3.0, 3.1 3. 增加对565文件的解析 以上内容请运行,看参数提示即可,基本改变不大。 unpack-yafffs, unpack-yaffs2, unpack-yaffs功能完全一致。 由于之前拼写错误,把yaffs文件系统弄成了yafffs,而这个版本实际是版本2,所以这几个都支持。 2010.10.27更新: 1. 添加解开及生成rle格式 2. 修订bootimg格式 工具主要语言为python,分两处版本,源文件及windows下可执行文件exe,内容及用法完全一致。 运行方法: bootimg.py 功能 参数 目前支持以下功能: --repack-ramdisk, 生成 ramdisk --unpack-ramdisk, 解开 ramdisk --repack-bootimg, 生成 bootimg (包括boot.img及recovery.img) --unpack-bootimg, 解开 bootimg --unpack-updata, 解开 updata --unpack-yafffs, 解开 yafffs --unpack-rle, 解开rle,生成raw格式及png图片(如果pil可用, exe里有pil) --repack-rle, 生成rle,可支持多种格式 下面一一说明功能中的参数。 --unpack-updata [文件] [文件]为空时,默认使用UPDATA.APP 解开后,会有四个文件,boot.img, recovery.img, system.img, userdata.img 这些都是刷机时可能需要的。 --unpack-bootimg [文件] [文件]为空时,默认使用boot.img 解开后,会有两个文件,kernel和ramdisk.gz 同时,注意输出,比如base, cmdline, name等等 --repack-bootimg [base] [cmdline] [base]为空时,使用0x200000 (C8600默认) [cmdline]为空时,使用mem=211 console=null androidboot.hardware=qcom (c8600适用) 生成bootimg时,会使用kernel和ramdisk.gz(如果存在ramdisk.cpio.gz,优先使用),生成boot.img 更新: --repack-bootimg [base] [cmdline] [page_size] [padding_header] [padding_kernel] [padding_ramdisk] 具体的参数请在注意unpack时的原始参数。 2010.10.27更新 --repack-bootimg [base] [cmdline] [page_size] [padding_size] 有关padding_size请参看unpack-bootimg时的结果,c8600默认为4096字节 --unpack-ramdisk [文件] [目录] [文件]为空时,使用ramdisk.gz [目录]为空时,使用initrd, (请保证这个目录不存在) 输出:cpiolist.txt, initrd目录下的文件 --repack-ramdisk [cpiolist] [cpiolist]为空时,读取cpiolist.txt 根据cpiolist.txt生成ramdisk.cpio.gz cpiolist.txt格式 1). 文件 file 目标系统路径 当前系统路径 目标系统权限 2). 目录 dir 目录系统路径 目录系统权限 3). 软链接 slink 目录系统路径 链接路径 目标系统权限 --unpack-yafffs [文件] [目录] [文件]为空时,使用userdata.img (呃,这个比system.img小) [目录]为空时,使用文件除.img外的其它内容,比如userdata.img时使用userdata 注:目录必须不存在 将把文件解开到目录下去 注:windows系统不支持软链接和硬链接,可能会报警告信息 --unpack-rle [rle] [raw] 2010.10.27版本新增 如果有pil模块,将生成png,目前仅支持320x480 --repack-rle [raw] [rle] 2010.10.27版本新增 如果有pil模块,raw可以是任何图片格式。 已经测试的有jpg, png等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值