Files
SukiSU-Ultra/website/docs/zh_CN/guide/installation.md
Fankesyooni b2c39af069 website: Fix wrong directory name in document (#282)
I think there is a misspell in document
2023-02-27 22:57:40 +08:00

9.6 KiB
Raw Blame History

安装

检查您的设备是否被支持

GitHub Releases酷安 下载 KernelSU 管理器应用,然后将应用程序安装到设备并打开:

  • 如果应用程序显示 “不支持”,则表示您的设备不支持 KernelSU你需要自己编译设备的内核才能使用KernelSU 官方不会也永远不会为你提供一个可以刷写的 boot 镜像。
  • 如果应用程序显示 “未安装”,那么 KernelSU 支持您的设备;可以进行下一步操作。

:::info 对于显示“不支持”的设备,这里有一个非官方支持设备列表,你可以用这个列表里面的内核自行编译。 :::

备份你的 boot.img

在进行刷机操作之前,你必须先备份好自己的原厂 boot.img。如果你后续刷机出现了任何问题你都可以通过使用 fastboot 刷回原厂 boot 来恢复系统。

::: warning 任何刷机操作都是有风险的,请务必做好这一步再进行下一步操作!!必要时你还可以备份你手机的所有数据。 :::

必备知识

ADB 和 fastboot

此教程默认你会使用 ADB 和 fastboot 工具,如果你没有了解过,建议使用搜索引擎先学习相关知识。

KMI

KMI 全称 Kernel Module Interface相同 KMI 的内核版本是兼容的 这也是 GKI 中“通用”的含义所在;反之,如果 KMI 不同,那么这些内核之间无法互相兼容,刷入与你设备 KMI 不同的内核镜像可能会导致死机。

具体来说,对 GKI 的设备,其内核版本格式应该如下:

KernelRelease :=
Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
w      .x         .y       -zzz           -k            -something

其中,w.x-zzz-k 为 KMI 版本。例如,一个设备内核版本为5.10.101-android12-9-g30979850fc20,那么它的 KMI 为 5.10-android12-9;理论上刷入其他这个 KMI 的内核也能正常开机。

::: tip 请注意,内核版本中的 SubLevel 不属于 KMI 的范畴!也就是说 5.10.101-android12-9-g30979850fc205.10.137-android12-9-g30979850fc20 的 KMI 相同! :::

内核版本与 Android 版本

请注意:内核版本与 Android 版本并不一定相同!

如果您发现您的内核版本是 android12-5.10.101,然而你 Android 系统的版本为 Android 13 或者其他;请不要觉得奇怪,因为 Android 系统的版本与 Linux 内核的版本号不一定是一致的Linux 内核的版本号一般与设备出厂的时候自带的 Android 系统的版本一致,如果后续 Android 系统升级,内核版本一般不会发生变化。如果你需要刷机,请以内核版本为准!!

安装介绍

KernelSU 的安装方法有如下几种,各自适用于不同的场景,请按需选择:

  1. 使用自定义 Recovery如 TWRP安装
  2. 使用内核刷写 AppFranco Kernel Manager安装
  3. 使用 KernelSU 提供的 boot.img 使用 fastboot 安装
  4. 手动修补 boot.img 然后安装

使用自定义 Recovery 安装

前提:你的设备必须有自定义的 Recovery如 TWRP如果没有或者只有官方 Recovery请使用其他方法。

步骤:

  1. 在 KernelSU 的 Release 页面 下载与你手机版本匹配的以 AnyKernel3 开头的 zip 刷机包;例如,手机内核版本为 android12-5.10.66,那么你应该下载 AnyKernel3-android12-5.10.66_yyyy-MM.zip 这个文件(其中 yyyy 为年份,MM 为月份)。
  2. 重启手机进入 TWRP。
  3. 使用 adb 将 AnyKernel3-*.zip 放到手机 /sdcard 然后在 TWRP 图形界面选择安装;或者你也可以直接 adb sideload AnyKernel-*.zip 安装。

PS. 这种方法适用于任何情况下的安装(不限于初次安装或者后续升级),只要你用 TWRP 就可以操作。

使用内核刷写 App 安装

前提:你的设备必须已经 root。例如你已经安装了 Magisk 获取了 root或者你已经安装了旧版本的 KernelSU 需要升级到其他版本的 KernelSU如果你的设备无 root请尝试其他方法。

步骤:

  1. 下载 AnyKernel3 的刷机包;下载方法参考 使用自定义 Recovery 安装那一节的内容。
  2. 打开内核刷写 App 使用提供的 AnyKernel3 刷机包刷入。

如果你之前没有用过内核刷写 App那么下面几个是比较流行的

  1. Franco Kernel Manager
  2. Ex Kernel Manager

PS. 这种方法在升级 KernelSU 的时候较为方便,无需电脑即可完成(注意备份!)。

使用 KernelSU 提供的 boot.img 安装

这张方法无需你有 TWRP也不需要你的手机有 root 权限;适用于你初次安装 KernelSU。

找到合适的 boot.img

KernelSU 为 GKI 设备提供了通用的 boot.img您应该将 boot.img 刷写到设备的 boot 分区。

您可以从 GitHub Release 下载 boot.img, 请注意您应该使用正确版本的 boot.img. 例如,如果您的设备显示内核是 android12-5.10.101, 需要下载 android-5.10.101_yyyy-MM.boot-<format>.img.

其中 <format> 指的是你的官方 boot.img 的内核压缩格式,请检查您原有 boot.img 的内核压缩格式,您应该使用正确的格式,例如 lz4gz;如果是用不正确的压缩格式,刷入 boot 后可能无法开机。

::: info

  1. 您可以通过 magiskboot 来获取你原来 boot 的压缩格式;当然您也可以询问与您机型相同的其他更有经验的童鞋。另外,内核的压缩格式通常不会发生变化,如果您使用某个压缩格式成功开机,后续可优先尝试这个格式。
  2. 小米设备通常使用 gz 或者 不压缩
  3. Pixel 设备有些特殊,请查看下面的教程。 :::

将 boot.img 刷入设备

使用 adb 连接您的设备,然后执行 adb reboot bootloader 进入 fastboot 模式,然后使用此命令刷入 KernelSU

fastboot flash boot boot.img

::: info 如果你的设备支持 fastboot boot,可以先使用 fastboot boot boot.img 来先尝试使用 boot.img 引导系统,如果出现意外,再重启一次即可开机。 :::

重启

刷入完成后,您应该重新启动您的设备:

fastboot reboot

手动修补 boot.img

对于某些设备来说,其 boot.img 格式不那么常见,比如不是 lz4, gz 和未压缩;最典型的就是 Pixel它 boot.img 的格式是 lz4_legacy 压缩ramdisk 可能是 gz 也可能是 lz4_legacy 压缩;此时如果你直接刷入 KernelSU 提供的 boot.img手机可能无法开机这时候你可以通过手动修补 boot.img 来实现。

修补方法总体有两种:

  1. Android-Image-Kitchen
  2. magiskboot

其中Android-Image-Kitchen 适用于 PC 上操作magiskboot 需要手机配合。

准备

  1. 获取你手机的原厂 boot.img你可以通过你手机的线刷包解压后之间获取如果你是卡刷包那你也许需要payload-dumper-go
  2. 下载 KernelSU 提供的与你设备 KMI 版本一致的 AnyKernel3 刷机包(可以参考 自定义 TWRP 刷入一节)。
  3. 解压缩 AnyKernel3 刷机包,获取其中的 Image 文件,此文件为 KernelSU 的内核文件。

使用 Android-Image-Kitchen

  1. 下载 Android-Image-Kitchen 至你电脑
  2. 将手机原厂 boot.img 放入 Android-Image-Kitchen 根目录
  3. 在 Android-Image-Kitchen 根目录执行 ./unpackimg.sh boot.img;此命名会将 boot.img 拆开,你会得到若干文件。
  4. split_img 目录中的 boot.img-kernel 替换为你从 AnyKernel3 解压出来的 Image(注意名字改为 boot.img-kernel)。
  5. 在 Android-Image-Kitchecn 根目录执行 ./repackimg.sh;此时你会得到一个 image-new.img 的文件;使用此 boot.img 通过 fastboot 刷入即可(刷入方法参考上一节)。

使用 magiskboot

  1. 在 Magisk 的 Release 页面 下载最新的 Magisk 安装包。
  2. 将 Magisk-*.apk 重命名为 Magisk-vesion.zip 然后解压缩。
  3. 将解压后的 Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so 文件,使用 adb push 到手机:adb push Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot
  4. 使用 adb 将原厂 boot.img 和 AnyKernel3 中的 Image 推送到手机
  5. adb shell 进入 /data/local/tmp/ 目录,然后赋予刚 push 文件的可执行权限 chmod +x magiskboot
  6. adb shell 进入 /data/local/tmp/ 目录,执行 ./magiskboot unpack boot.img 此时会解包 boot.img 得到一个叫做 kernel 的文件,这个文件为你原厂的 kernel
  7. 使用 Image 替换 kernel: mv -f Image kernel
  8. 执行 ./magiskboot repack boot.img 打包 img此时你会得到一个 new-boot.img 的文件,使用这个文件 fastboot 刷入设备即可。

其他变通方法

其实所有这些安装方法的主旨只有一个,那就是替换原厂的内核为 KernelSU 提供的内核;只要能实现这个目的,就可以安装;比如以下是其他可行的方法:

  1. 首先安装 Magisk通过 Magisk 获取 root 权限后使用内核刷写器刷入 KernelSU 的 AnyKernel 包。
  2. 使用某些 PC 上的刷机工具箱刷入 KernelSU 提供的内核。