website/docs/zh_TW/guide/installation.md
從 GitHub Releases 下載 KernelSU 管理器,然後安裝至裝置並開啟:
::: info 提示 對於顯示「不支援」的裝置,這裡有一個非官方支援裝置清單,您可以使用這個清單裡的核心自行編譯。 :::
在寫入核心映像前,您必須預先備份您的原廠 boot.img。如果您在後續寫入中出現了任何問題,您都可以透過使用 Fastboot 寫回原廠 Boot 以還原系統。
::: warning 警告 寫入核心映像可能會造成資料遺失,請確保做好這一步再繼續進行下一步作業!!必要時您還可以備份您手機的所有資料。 :::
預設狀況下,您將會使用 ADB 和 Fastboot 工具,如果您不知道它們,建議使用搜尋引擎先瞭解相關內容。
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-g30979850fc20 與 5.10.137-android12-9-g30979850fc20 的 KMI 相同!
:::
較新的 Android 裝置可能具有防回滾機制,不允許寫入具有較舊安全性修補程式等級的啟動映像。例如,如果您的裝置核心為 5.10.101-android12-9-g30979850fc20,則其安全修補程式等級為 2023-11;即使寫入了 KMI 對應的核心,如果安全修補程式等級早於 2023-11(例如 2023-06),也可能會導致無法開機。
因此,最好使用具有最新安全性修補程式等級的核心來維護與 KMI 的對應關係。
請注意:核心版本與 Android 版本並不一定相同!
如果您發現您的核心版本是 android12-5.10.101,然而您 Android 系統的版本為 Android 13 或更高,請不要覺得奇怪,因為 Android 系統的版本與 Linux 核心的版本號碼並非一致。Linux 核心的版本號碼一般與裝置出廠時隨附的 Android 系統的版本一致,如果後續 Android 系統更新,核心版本一般不會發生變化。如果您需要寫入,請以核心版本為準!!
自 0.9.0 版本以後,在 GKI 裝置上,KernelSU 支援兩種運作模式:
GKI:使用通用核心鏡像(GKI)取代掉裝置原有的核心。LKM:使用可載入核心模組(LKM)的方式載入到裝置核心中,不會替換掉裝置原有的核心。這兩種方式適用於不同的場景,你可以根據自己的需求選擇。
GKI 模式會替換掉裝置原有的核心,使用 KernelSU 提供的通用核心鏡像。 GKI 模式的優點是:
LKM 模式不會替換掉裝置原有的核心,而是使用可載入核心模組的方式載入到裝置核心中。 LKM 模式的優點是:
:::tip 兩種模式共存 打開管理器後,你可以在首頁看到裝置目前運行的模式。注意 GKI 模式的優先級高於 LKM ,如你既使用 GKI 核心替換掉了原有的核心,又使用 LKM 的方式修補了 GKI 核心,那麼 LKM 會被忽略,裝置將永遠以 GKI 的模式運作。 :::
如果你的裝置是手機,我們建議您優先考慮 LKM 模式。 如果你的裝置是模擬器、WSA 或 Waydroid 等,我們建議您優先考慮 GKI 模式。
使用 LKM 的模式,需要取得官方韌體,然後在官方韌體的基礎上修補;如果你使用的是第三方核心,可以把第三方核心的 boot.img 作為官方韌體。
取得官方韌體的方法有很多,如果你的裝置支援 fastboot boot,那麼我們最推薦以及最簡單的方法是使用 fastboot boot 臨時啟動 KernelSU 提供的 GKI 核心,並參考使用管理器安裝。
如果你的裝置不支援 fastboot boot,那麼你可能需要手動去下載官方韌體包,然後從中提取 boot。
與 GKI 模式不同,LKM 模式會修改 ramdisk,因此在出廠 Android 13 的裝置上,通常它需要修補的是 init_boot 分區而非 boot 分區;而 GKI 模式則永遠是修改 boot 分區。
開啟管理器,點選右上角的安裝圖標,會出現若干個選項:
fastboot boot KernelSU 的 GKI 核心來取得臨時 root 安裝管理器,然後再使用這個選項。這種方式也是 KernelSU 升級最主要的方式。如果你不想使用管理器,你也可以使用命令列來安裝 LKM。KernelSU 提供的 ksud 可以幫助你快速修補官方韌體,然後寫入。
這個工具支援 macOS、Linux 和 Windows,你可以在 GitHub Release 下載對應的版本。
使用方法:ksud boot-patch。 你可以查看命令列的提示了解具體的使用方法。
husky:/ # ksud boot-patch -h
Patch boot or init_boot images to apply KernelSU
Usage: ksud boot-patch [OPTIONS]
Options:
-b, --boot <BOOT> boot image path, if not specified, will try to find the boot image automatically
-k, --kernel <KERNEL> kernel image path to replace
-m, --module <MODULE> LKM module path to replace, if not specified, will use the builtin one
-i, --init <INIT> init to be replaced
-u, --ota will use another slot when boot image is not specified
-f, --flash Flash it to boot partition after patch
-o, --out <OUT> output path, if not specified, will use current directory
--magiskboot <MAGISKBOOT> magiskboot path, if not specified, will use builtin one
--kmi <KMI> KMI version, if specified, will use the specified KMI
-h, --help Print help
需要說明的幾個選項:
--magiskboot 選項可以指定 magiskboot 的路徑,如果不指定,ksud 會在環境變數中尋找。如果你不知道如何取得 magiskboot,可以參考這裡。--kmi 選項可以指定 KMI 版本,如果你的裝置核心名字沒有遵循 KMI 規範,你可以透過這個選項來指定。最常見的使用方法為:
ksud boot-patch -b <boot.img> --kmi android13-5.10
GKI 的安裝方式有以下幾種,各自適用於不同的場景,請依需求選擇:
如果你的裝置的 boot.img 使用常見的壓縮格式,你可以直接寫入 KernelSU 提供的 GKI 核心映像,這種方法無需 TWRP,也無需您的手機有 Root 權限;適用於您初次安裝 KernelSU。
KernelSU 為 GKI 裝置提供了標準 boot.img,您需要將 boot.img 寫入至裝置的 Boot 分區。
您可以從 GitHub Release 下載 boot.img,請注意,您應該使用正確版本的 boot.img。如果你不知道你該下載哪個檔案,請詳細閱讀文檔中的 KMI 與安全性修補程式等級。
通常,在相同的 KMI 和安全性修補程式等級下,會存在三種不同格式的啟動檔案。除了核心壓縮格式之外,它們都是相同的。請檢查您原來的 boot.img 的核心壓縮格式。您應該使用正確的格式,例如 lz4 、 gz,如果你使用了不正確的壓縮格式,你可能會在寫入後無法開機。
::: info 關於 boot.img 的壓縮格式
gz 或者 不壓縮。使用 adb 連接您的裝置,然後執行 adb reboot bootloader 進入 fastboot 模式,然後使用此命令寫入 KernelSU:
fastboot flash boot boot.img
::: info 提示
如果您的裝置支援 fastboot boot,可以先使用 fastboot boot boot.img 來嘗試使用 boot.img 開機進入系統,如果出現意外,重新啟動即可開機。
:::
寫入完成後,您應該重新啟動您的裝置:
fastboot reboot
先決條件:您的裝置必須已經 Root。例如您已經安裝了 Magisk 並取得 Root 存取權,或者您已經安裝了舊版本的 KernelSU 需升級到其他版本的 KernelSU;如果您的裝置並未 Root,請嘗試其他方法。
步驟:
如果您先前並未使用過核心寫入應用程式,可以嘗試下面幾個:
P.S. 這種方法在更新 KernelSU 時比較方便,無需電腦即可完成 (注意備份!)。
對於某些裝置來說,其 boot.img 格式並不是很常見,不屬於 lz4,gz 和未壓縮;最典型的就是 Pixel,它的 boot.img 格式是 lz4_legacy 壓縮,ramdisk 可能是 gz 也可能是 lz4_legacy 壓縮;此時如果您直接寫入 KernelSU 提供的 boot.img,手機可能無法開機。這時,您可以透過手動修補 boot.img 來完成。
永遠建議使用 magiskboot 來修補映像,一般有兩種修補方法:
其中,官方的 magiskboot 僅能在 Android 上使用,若您想在電腦上完成,可以嘗試第二個選項。
Image 檔,此檔案為具有 KernelSU 的核心。Magisk-*(version).apk 重新命名為 Magisk-*.zip 並解壓縮。adb push Magisk-*/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot。chmod +x magiskboot。./magiskboot unpack boot.img 此時會將 boot.img 解除封裝,得到一個名為 kernel 的檔案,這個檔案是您的原廠核心。Image 取代 kernel: mv -f Image kernel./magiskboot repack boot.img 重新封裝映像,此時您會得到一個 new-boot.img 檔案,透過 Fastboot 將這個檔案寫入至裝置即可。chmod +x magiskboot。./magiskboot unpack boot.img 此時會將 boot.img 解除封裝,得到一個名為 kernel 的檔案,這個檔案是您的原廠核心。Image 取代 kernel: mv -f Image kernel./magiskboot repack boot.img 重新封裝映像,此時您會得到一個 new-boot.img 檔案,透過 Fastboot 將這個檔案寫入至裝置即可。先決條件:您的裝置必須有自訂的 Recovery,例如 TWRP。如果沒有或者只有官方 Recovery,請使用其他方法。
步驟:
android12-5.10.66,那麼您應該下載 AnyKernel3-android12-5.10.66_yyyy-MM.zip 這個檔案 (其中 yyyy 為年份,MM 為月份)。/sdcard 然後在 TWRP 圖形使用者介面選擇並安裝;或者您也可以直接 adb sideload AnyKernel-*.zip 安裝。PS. 這種方法適用於任何狀況下的安裝 (不限於初次安裝或後續更新),只要您用 TWRP 就可以進行作業。
其實所有這些安裝方法的主旨只有一個,那就是將原廠核心取代為 KernelSU 提供的核心。只要能實現這個目的,就可以安裝,比如以下是其他可行的方法:
但是,如果不起作用,請嘗試 Magiskboot 方法。
::: warning 用於系統檔案修改的 METAMODULE
如果您想使用修改 /system 檔案的模組,您需要在安裝 KernelSU 後安裝 metamodule。僅使用腳本、sepolicy 或 system.prop 的模組無需 metamodule 即可運作。
:::
若需 /system 修改支援,請參閱 Metamodule 指南以:
meta-overlayfs metamodule