檢查您的設備是否被支持
從 GitHub Releases 或 酷安 下載 KernelSU 管理器應用,然后將應用程序安裝到設備并打開:
.如果應用程序顯示 “不支持”,則表示您的設備不支持 KernelSU,你需要自己編譯設備的內核才能使用,KernelSU 官方不會也永遠不會為你提供一個可以刷寫的 boot 鏡像。
.如果應用程序顯示 “未安裝”,那么 KernelSU 支持您的設備;可以進行下一步操作。
備份你的 boot.img
在進行刷機操作之前,你必須先備份好自己的原廠 boot.img。如果你后續刷機出現了任何問題,你都可以通過使用 fastboot 刷回原廠 boot 來恢復系統。
警告:任何刷機操作都是有風險的,請務必做好這一步再進行下一步操作!!必要時你還可以備份你手機的所有數據。
必備知識
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 的內核也能正常開機。
請注意,內核版本中的 SubLevel 不屬于 KMI 的范疇!也就是說 5.10.101-android12-9-g30979850fc20 與 5.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.使用內核刷寫 App,如 (Franco 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.Kernel Flasher
2.Franco Kernel Manager
3.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 的內核壓縮格式,您應該使用正確的格式,例如 lz4、gz;如果是用不正確的壓縮格式,刷入 boot 后可能無法開機。
信息
1.您可以通過 magiskboot 來獲取你原來 boot 的壓縮格式;當然您也可以詢問與您機型相同的其他更有經驗的童鞋。另外,內核的壓縮格式通常不會發生變化,如果您使用某個壓縮格式成功開機,后續可優先嘗試這個格式。
2.小米設備通常使用 gz 或者 不壓縮。
3.Pixel 設備有些特殊,請查看下面的教程。
將 boot.img 刷入設備
使用 adb 連接您的設備,然后執行 adb reboot bootloader 進入 fastboot 模式,然后使用此命令刷入 KernelSU:
fastboot flash boot boot.img
信息
如果你的設備支持 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 提供的內核。