Android手机如何提取系统内核(boot.img镜像文件提取)
前言
Android手机,刷Magisk时候,可选的方法很多,其中一种就算刷进过Magisk Manager修补后的内核镜像;当然,卸载Magisk也可以通过刷原版内核进行实现。
这边就提供几种获取Android手机内核的方法。
刷机包内提取
大概百分之六十的刷机包都是有提供内核的(无论卡刷包或者线刷包)。
比如,你下载的卡刷包是:MK90.0-oscar-210227-RELEASE
这是一个mokee的包,我们解压后:
解压后,就是刷机包里的具体内容。其中,包含刷机脚本
、System数据
等内容。而boot.img
就是我们的内核镜像文件。
如果你的刷机包,解压之后没有boot.img,但是有payload.bin这个文件,可以参考:如何解开payload.bin获取包括Android内核在内的系统镜像文件?payload.bin解包教程
Magisk Manager内选择这个文件,即可生成magisk_patch.img
的修补内核版本,在Twrp内刷入,或者在fastboot下,使用adb命令刷入即可:
# 单次测试,重启失效
fastboot boot PathToIMG.img
# 永久刷入
fastboot flash boot PathToIMG.img
当然,这个方法不一定全部适用。如果你的手机刷机包是这样:
而且,你碰巧手机已经root;可以试试后文的dd命令提取(见下文)。
虚拟终端内dd命令提取
前置条件:
- Android手机已经root
- 手机安装虚拟终端或电脑使用adb
如果你没有虚拟终端,这边推荐:
Termux_Version_0.104.apk: https://089u.com/f/26158157-486120096-1d4a53
(访问密码:6146)
申请root
打开,虚拟终端。我们需要申请root权限,否则可能会因为文件不可读写,而导致无法提取内核:
su
查找内核分区位置
我们首先要查找内核分区所在位置,首先查找快捷方式,我们进入/dev/block目录下by-name文件夹:
cd /dev/block/by-name
注意⚠️:不同手机系统可能不一样。目前Google标准Android分区是/dev/block/by-name下。其他手机by-name可能在其他目录下。
查找内核真实地址
因为我手机是A/B分区(即:有两个内核,共享数据和设置。A内核和B内核引导不同系统交替更新)。所以有boot_a
和boot_b
。我这边就提取boot_b
:
# 查找boot_b真实地址
ls -l boot_b
可以看到,我当前手机的boot_b
地址为/dev/block/sda11
提取内核分区为内核镜像
最后,因为我们boot_b
地址为/dev/block/sda11
,所以我们使用dd
命令提取保存即可:
dd if=/dev/block/sda11 of=/sdcard/boot_b.img
使用文件管理器,即可在sdcard目录
下找到这个文件:
这样提取的内核,能有效在Magisk掉了后,重新刷入。
更多推荐
所有评论(0)