首席教师
首席教师
发布于 2024-04-10 / 36 阅读
0
0

关于对安装hyperOS的xiaomi13使用KernelSU进行Root的教程

安卓Root可以让用户获取Android操作系统的超级用户权限,对系统进行自定义魔改、删除开发商预装应用等,是极客玩机的必要步骤。

一、前置条件

  • 需要 一部安卓手机且解BL锁 或 安卓模拟器并勾选“系统写操作”;
  • 一台安装了adb和fastboot等工具的设备(一般为Windows/MacOS/Linux电脑);
  • 掌握必备的相关知识。

本次以小米13手机为例:

null

二、获取官方系统安装包

(一)下载

首先,进入 设置 - 我的设备 - OS版本 进入系统更新页面,点击左上角更多按钮,选择“下载最新完整包”(示例为更新系统,因为更新系统需要重新对内核补丁,与第一次Root步骤完全相同,均可参考下列步骤):

null

(二)保存至电脑

待到下载进度到达100%并开始解压时,打开文件管理App,前往内部存储设备 - Download - downloaded_rom文件夹,将下载的系统安装包复制或移动到其他目录(downloaded_rom目录会在系统更新完后删除此压缩包。若不需要更新系统,直接移动即可)

null

现在,将压缩包传到电脑即可(直接数据线连接手机,打开文件传输模式即可)。

三、Root步骤

本次使用的Root工具为:KernelSU,官方安装指南链接为:
https://kernelsu.org/zh_CN/guide/installation.html

根据官方的建议:

……
0.9.0 版本以后,在 GKI 设备中,KernelSU 支持两种运行模式:

  1. GKI:使用​通用内核镜像​(GKI)替换掉设备原有的内核。
  2. LKM:使用​可加载内核模块​(LKM)的方式加载到设备内核中,不会替换掉设备原有的内核。

这两种方式适用于不同的场景,你可以根据自己的需求选择。
……

本次我使用LKM模式,这样会与小米官方的Boot代码共存,模拟器则建议使用GKI模式。

(一)下载KernelSU

前往Github下载作者发布的Release的APK:https://github.com/tiann/KernelSU/releases/tag/v0.9.2
往下拉找到:KernelSU_v0.9.2_11682-release.apk,下载并安装到手机即可。
安装完毕如图(我之前已经安装):

null

(一)对init_boot分区镜像打补丁

现在KernelSU应用中点击点击安装,提示需要选择init_boot.img文件,那么现在我们需要从之前下载的miui_FUXI_OS1.0.8.0.UMCCNXM_af6dc55799_14.0.zip中提取。

1. 官方安装包提取init_boot

(1) 解压

首先用压缩软件打开此安装包,仅需解压payload.bin文件即可:

image.png

(2) 提取

我们在Github上找到Android的payload解压代码:
https://github.com/ssut/payload-dumper-go,使用Git Clone下代码,使用VSCode打开(需要Golang开发环境,请自行安装):

image-owzd.png

由于我们仅需要init_boot.img文件,且原作者代码调用了xz的lib(lzma),我们修改如下代码:

image-omtv.png

(添加仅提取init_boot.img文件代码,更换xz库为纯Go写的库)

完整代码文件下载:payload.go

最后,编译后执行:payload-dumper-go.exe payload.bin即可:

C:\data\kernelSU\hyperOS>payload-dumper-go.exe payload.bin
payload.bin: payload.bin
Payload Version: 2
Payload Manifest Length: 240627
Payload Manifest Signature Length: 267
Found partitions:
abl (234 kB), aop (283 kB), aop_config (16 kB), bluetooth (1.3 MB), boot (101 MB), cpucp (192 kB), devcfg (57 kB), dsp (67 MB), dtbo (17 MB), featenabler (98 kB), hyp (1.5 MB), imagefv (6.3 MB), init_boot (8.4 MB), keymaster (410 kB), modem (368 MB), multiimgqti (12 kB), odm (1.5 GB), product (4.4 GB), qupfw (57 kB), recovery (105 MB), shrm (66 kB), system (708 MB), system_dlkm (348 kB), system_ext (539 MB), tz (3.9 MB), uefi (2.9 MB), uefisecapp (180 kB), vbmeta (8.2 kB), vbmeta_system (4.1 kB), vendor (839 MB), vendor_boot (101 MB), vendor_dlkm (40 MB), xbl (1.2 MB), xbl_config (188 kB), xbl_ramdump (860 kB), mi_ext (164 kB)
Number of workers: 4
init_boot (8.4 MB)  [===========================================================================================] 100 %

将文件复制到手机,使用KernelSU应用中点击点击安装,现在init_boot.img文件(若看不到文件修改后缀名为.bin)打补丁即可:

null

(三)将init_boot分区镜像刷入手机

kernelsu_boot_20240410_084417.img复制到电脑,手机重启至fastboot,由于我数据线连着电脑且开着调试,直接控制台输入:

adb reboot fastboot

进入FASTBOOTD后,控制台执行:

C:\data\kernelSU\hyperOS>fastboot flash init_boot ./kernelsu_boot_20240410_084417.img
Sending 'init_boot_a' (8192 KB)                    OKAY [  0.220s]
Writing 'init_boot_a'                              OKAY [  0.041s]
Finished. Total time: 0.276s

C:\data\kernelSU\hyperOS>fastboot reboot
Rebooting                                          OKAY [  0.001s]
Finished. Total time: 0.002s

三、最终效果

至此,手机已成功Root:

null

评论