一加12刷机手动获取ROOT教程

一加12刷机手动获取ROOT教程
小码同学前言
学会自己打补丁,以后不需要使用第三方工具获取root了,自己动手也不麻烦,思路如下:
1、获取到当前系统的boot.img(或者init_boot.img,如一加12 Color15版本就是init_boot.img)
2、使用magisk APP对boot.img打补丁
3、在Fastboot模式刷入boot.img补丁版本
思路就是这么简单,但前期可能就需要准备一下。
1、怎么获取当前系统的boot.img,一般下载全量包来解析全量包获取到boot.img或者init_boot.img
2、给手机刷boot.img补丁版,可以使用两种方式,一种是电脑给手机刷,一种是使用另一台手机给手机刷,手机够手机刷需要能够使用adb功能
基本信息
手机信息
系统信息:Color15,Android15
版本号:PJD110_15.0.0.502
基带版本:Q_V1_P14,Q_V1_P14
准备工作
ADB工具包(必选)
解包工具(必选)
Super Payload Dumper Py解包工具:https://rookie1679.lanzouq.com/iKIme2q91bfa
Super Payload Dumper Go解包工具:https://rookie1679.lanzouq.com/iCl8b2q91bvg
解包工具二选一即可(工具自带环境,不需要额外安装环境)
tips:Super Payload Dumper软件提示使用
一、解包全部分区
- 将rom文件或者ROM包的URL拖到unpack.exe图标上即可解包全部分区到output文件夹
- 多线程解包,速度超快
二、解包单个分区
解包单个分区镜像,将unpack.exe文件名改为你想解的分区名
- 如果要解包boot分区,请将unpack.exe重命名为boot.exe,然后将rom文件拖到boot.exe图标上。
- 如果要解包init_boot分区,请将unpack.exe重命名为init_boot.exe,然后将rom文件拖到boot.exe图标上。
- 其他分区同理,你可以将unpack.exe复制多份并重命名为不同分区名字以备日常使用。
驱动(必选)
建议两个驱动都安装,一加驱动是一加官方的驱动,下面是Android系统的驱动,建议都安装。
系统ROM包
ROM包你可以看自己系统的版本,然后去大侠阿木官网下载一个ROM包(就是你系统的全量包),一般ROM包大小都有几个G以上的,像我一加12 Color15就7G
大侠阿木官网:https://yun.daxiaamu.com
你可以在大侠阿木官网下载ROM包,也可以去官网下载,大侠阿木也提供了百度云的ROM包,都可以用。
下载ROM全量包完成之后,准备工作就齐全了。
解包
先对全量包ROM解包,得到boot.img
和init_boot.img
将上面准备工具中的解包工具解压打开,得到这样的文件(你解压是没有output文件夹的),如下图:
你需要的操作就是,将全量包拖拽到unpack.exe
文件里面,unpack.exe
会自动执行解包操作的,解包结束会有一个output文件夹
,这个文件夹就是解包后的各分区文件,我们需要的文件就是init_boot.img
boot.img:在这里是不起作用的,但后面如果你执行root的过程手机开不了机,或者变砖了,可以通过刷入boot.img可以救砖。
init_boot.img:等会用它给magisk打补丁,这一个解包过程就是为了达到这个文件
magis打补丁
打开USB调试
设置 – 关于手机 – 版本信息 – 连击 版本号
开启 开发者选项
设置 – 其他设置 – 开发者选项 – 开启 USB调试
打补丁
1、将电脑的init_boot.img
文件传输到手机,使用数据线的传输的时候选择传输文件
模式
2、手机安装magisk APP
金丝雀Magisk版:https://rookie1679.lanzouq.com/ilmTU2q9387g
3、打补丁,截图中的boot.img
应该是init_boot.img
文件,我改不小心名字了,你不用改,不影响的
magisk.img
每次修补生成的名字都不一样,使用的时候请输入生成的名字
安装驱动
将下载的驱动双击安装即可
进入Fastboot
手机关机之后,长按电源键
和音量减键
,即可进入Fastboot模式
刷入补丁
解压ADB工具包
,将补丁
文件复制到电脑中的ADB工具包
里面,如下图这样的:
可以在路径下输入cmd
打开终端
然后执行改命令
1 | # 1、模板 fastboot flash init_boot init_boot.img |
init_boot.img替换成你的init_boot.img文件名
我版本的init_boot.img补丁版本:https://rookie1679.lanzouq.com/iyPMd2q9dhud
如果出现< waiting for device >
这个说明你手机没进入Fastboot模式,你需要手机关机之后,长按电源键
和音量减键
,即可进入Fastboot模式
LSPosed问题
如果你是Android 15,你可能会遇到一个问题,LSPosed有点异常,但也不是不能用,我是Android14升级到Android15(Color 14升级Color 15),LSPosed就出现了问题,LSP能正常使用,但app无法打开,寄生管理器也无法使用,打开就是闪退。
原因是LSPosed只支持Android14以下,不支持Android15,所以就出现了这个问题,至于什么时候支持,这个不清楚,所以我们需要另寻出路,用别的XPosed框架,目前有LSPosed、LSPatch、LSPosed第三方等众多的XP框架。
Android 15不支持官方的LSPosed框架,在酷安
逛了一下,发现第三方LSPosed支持Android 15,我找到了Github的仓库。
第三方LSPosed仓库:https://github.com/JingMatrix/LSPosed
你可以去仓库下载LSP的模块,在magisk刷入,我下面也放了我下载好的蓝奏云版本,自取刷入即可。
Zygisk Next
Zygisk的独立实现,为KernelSU提供Zygisk API支持,并替代Magisk的内置Zygisk
代替Magisk的Zygisk方案:https://github.com/Dr-TSNG/ZygiskNext
刷入LSP
LSPosed蓝奏云下载:https://rookie1679.lanzouq.com/iPFAH2qacuzg
Zygisk Next蓝奏云下载:https://rookie1679.lanzouq.com/ilxcP2qacveb
在Magisk卸载原来的LSPosed模块
,然后重启,再刷入上面这个LSPosed
,如果不用Magisk自带的Zygisk,你可以刷入以上Zygisk Next
模块。
payload_dumper进化版
对于上面解包的步骤,还有另一个方式,也是大侠阿木提供的教程,我这里只是提一下后面可能自己有需求,先记录一下,这个工具可以实现在线解包,也就是说可以把全量包的URL丢进去,在线解包得到你想要的分区img,同时还不需要在线下载全量包,这个就很方便,又省事,不过,有个前提是全量包所在的服务器需要支持ranges
,但大侠阿木说一加的服务器是支持的,就可以在线解包了。
payload_dumper仓库地址:https://github.com/5ec1cff/payload-dumper
payload_dumper基于Python开发,所以你电脑想要用的话,还得电脑安装Python环境,
- Python3 >= 3.8
- pip
功能特性
这是一个修改版的 payload dumper ,除了具有它原先支持的功能,还支持以下特性:
- 从包含 payload.bin 的 zip 归档中直接提取分区,而无需解压。
- 从来自网络的包含 payload.bin (的 zip 归档)的 url (如 OTA 更新地址)直接提取分区,而无需下载整个文件。
借助该脚本,你只需要少量的时间和存储空间就能从 OTA 更新包或地址中提取你想要的分区,尤其是比较小的分区,如 boot, init_boot, vbmeta 等。
用法
1 | pip install git+https://github.com/5ec1cff/payload-dumper |
指定文件导出位置
在后面加上--out D:\\rom\images
路径即可
1 | payload_dumper --partitions boot --out D:\\rom\images https://romurl.zip |
转储整个 payload.bin
文件
1 | payload_dumper payload.bin |
转储特定分区
使用逗号分隔的要转储的分区列表:
1 | payload_dumper --partitions boot,dtbo,vendor payload.bin |
使用 OTA 修补旧镜像
假设旧分区位于名为 old/
的目录中:
1 | payload_dumper --diff payload.bin |
本文章来源于我的博客:https://blog.hikki.site