使用KernelSU_Action編譯自己的KernelSU內(nèi)核

#本編譯工具所在倉庫:
https://github.com/xiaoleGun/KernelSU_Action
教程.txt下載地址:
https://www.jianguoyun.com/p/Da3dfeIQ2sPjCBiL5ooFIAA (訪問密碼:r1Eb9E)
#支持內(nèi)核
5.4
4.19
4.14
4.9
#首先,F(xiàn)ork和Action之前請登錄github賬號,否則無法完成以下操作。
#Fork 本倉庫到你的儲存庫然后按照以下內(nèi)容編輯 config.env,之后點擊Star或Action,在左側(cè)可看見Build Kernel選項,點擊選項會看見右邊的大對話框的上面會有Run workflows點擊它會啟動構(gòu)建。
內(nèi)核源碼倉庫名的一般格式為 [android_]kernel_設(shè)備廠商_cpu/代號,例如,小米 10S(thyme)的代號為 thyme, CPU 型號為 sm8250,生產(chǎn)廠商為 xiaomi,則搜索格式應(yīng)為下面幾種:
kernel_xiaomi_thyme
kernel_xiaomi_sm8250
android_kernel_xiaomi_thyme
android_kernel_xiaomi_sm8250
android_kernel_oneplus_mt6833
android_kernel_oneplus_sdm845
參考教程
https://easternday.top/Topic/Android/Kernel/Compile
#Kernel Source=內(nèi)核倉庫地址,填錯會下載不到內(nèi)核源碼,直接失敗。
示例:
KERNEL_SOURCE=https://github.com/Diva-Room/Miku_kernel_xiaomi_wayne
KERNEL_SOURCE=https://github.com/LineageOS/android_kernel_oneplus_sdm845
#Kernel Source Branch=內(nèi)核倉庫的分支,填錯會下載不到內(nèi)核源碼,直接失敗。
示例:
KERNEL_SOURCE_BRANCH=TDA
KERNEL_SOURCE_BRANCH=lineage-20
KERNEL_SOURCE_BRANCH=oneplus_sm8550_t_13.0_oneplus_11
KERNEL_SOURCE_BRANCH=oneplus/SDM845_Q_10.0
#Kernel Config=你的內(nèi)核配置文件名,它位于內(nèi)核源碼倉庫名/arch/arm64/configs/目錄下,里面可能有很多defconfig文件,如果用錯了大概率會編譯到一半報錯。
示例:
KERNEL_CONFIG=vendor/wayne_defconfig
KERNEL_CONFIG=cuttlefish_defconfig
#如果有很多defconfig文件不知道哪個是靠譜的,選最近有修改的那個一般就是了。例如:4 months ago 4個月前修改
Extra cmds
有的內(nèi)核需要加入一些其它編譯命令,才能正常編譯,一般不需要其它的命令,請自行搜索自己內(nèi)核的資料 請在命令與命令之間用空格隔開
例如: LLVM=1 LLVM_IAS=1
一般保持默認(rèn)就好
EXTRA_CMDS:LD=ld.lld
ARCH=arm64
選擇架構(gòu),一般為arm64
#Kernel Image Name=內(nèi)核文件名,用錯了會開不了機,建議備份好boot.img文件,然后每一種都試一下。
示例: KERNEL_IMAGE_NAME=Image.gz-dtb
KERNEL_IMAGE_NAME=Image.gz
KERNEL_IMAGE_NAME=Image
#Clang編譯工具鏈,版本不對可能會有兼容性問題導(dǎo)致編譯報錯。
## Custom
USE_CUSTOM_CLANG=false
CUSTOM_CLANG_SOURCE=
CUSTOM_CLANG_BRANCH=
#上面這些是自己定義編譯工具鏈的選項,不用管。
### if your set USE CUSTOM CLANG to false than DO NOT CHANGE CUSTOM CMDS
CUSTOM_CMDS:CLANG_TRIPLE=aarch64-linux-gnu-
一般不用管。
## AOSP
#Clang Branch=分支名 & Clang version=版本代號
示例:
CLANG_BRANCH=android10-release CLANG_VERSION=r353983c
CLANG_BRANCH=android11-release CLANG_VERSION=r383902b
CLANG_BRANCH=android12-release CLANG_VERSION=r416183b
CLANG_BRANCH=android13-release CLANG_VERSION=r450784d
#建議先擇安卓版本匹配的分支,安卓版本以官方版本為準(zhǔn),例如一加6T的lineage-20是安卓13,但官方版本最高才安卓11。
#其它分支,請根據(jù)自己的需求在 https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86 中尋找。
# GCC
啟用 GCC 64 交叉編譯
ENABLE_GCC_ARM64=true
啟用 GCC 32 交叉編譯
ENABLE_GCC_ARM32=true
#這里默認(rèn)就好,不用改。
# KernelSU flags
ENABLE_KERNELSU=true #是否合入ksu,flags/true
KERNELSU_TAG=main #ksu分支,例如:KERNELSU_TAG=v0.6.0
# Configuration
DISABLE-LTO=false
DISABLE_CC_WERROR=false
ADD_KPROBES_CONFIG=false
ADD_OVERLAYFS_CONFIG=false
#這些選項作用我也不太明白,全false可能會出現(xiàn)出現(xiàn)假root現(xiàn)象,如果出現(xiàn)假root現(xiàn)象,建議除了第一個全true
# Ccache
ENABLE_CCACHE=true
啟用緩存,讓第二次編譯內(nèi)核更快,最少可以減少 2/5 的時間
# DTBO image
NEED_DTBO=false
#一般不用開啟,開啟后很可能會報錯。
# Build boot images
BUILD_BOOT_IMG=true
SOURCE_BOOT_IMAGE=https://raw.githubusercontent.com/xiaoleGun/KernelSU_action/main/boot/boot.img
#找一個編譯好的內(nèi)核boot.img下載地址,例如lineage-20就有提供boot.img下載地址。
#故名思義,提供一個源系統(tǒng)可以正常開機的 boot 鏡像,需要直鏈,最好是同一套內(nèi)核源碼以及與你當(dāng)前系統(tǒng)同一套設(shè)備樹從 aosp 構(gòu)建出來的。ramdisk 里面包含分區(qū)表以及 init,沒有的話構(gòu)建出來的鏡像會無法正常引導(dǎo)。