Home

Awesome

中文 | English

KernelSU Action

用于 Non-GKI Kernel 的 Action,具有一定的普遍性,需要了解内核及 Android 的相关知识得以运用。

警告 :warning: :warning: :warning:

如果你不是内核作者,使用他人的劳动成果构建 KernelSU,请仅供自己使用,不要分享给别人,这是对原作者的劳动成果的尊重。

支持内核

使用

所有 config.env 内的变量均只判断true

编译成功后,会在Action上传 AnyKernel3,已经关闭设备检查,请在 Twrp 刷入。

Fork 本仓库到你的储存库然后按照以下内容编辑 config.env,之后点击StarAction,在左侧可看见Build Kernel选项,点击选项会看见右边的大对话框的上面会有Run workflows点击它会启动构建。

Kernel Source

修改为你的内核仓库地址

例如: https://github.com/Diva-Room/Miku_kernel_xiaomi_wayne

Kernel Source Branch

修改为你的内核分支

例如: TDA

Kernel Config

修改为你的内核配置文件名

例如: vendor/wayne_defconfig

Arch

例如: arm64

Kernel Image Name

修改为需要刷写的 kernel binary,一般与你的 aosp-device tree 里的 BOARD_KERNEL_IMAGE_NAME 是一致的

例如: Image.gz-dtb

常见还有 Image、Image.gz

Clang

Use custom clang

可以使用除 google 官方的 clang,如proton-clang

Custom Clang Source

如果是 git 仓库,请填写包含.git的链接

支持 git 仓库或者 zip 压缩包的直链

Custom cmds

都用自定义 clang 了,自己改改这些配置应该都会吧 :)

Clang Branch

由于 #23 的需要,我们提供可自定义 Google 上游分支的选项,主要的有分支有

Clang 分支
master
master-kernel-build-2021
master-kernel-build-2022

或者其它分支,请根据自己的需求在 https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86 中寻找

Clang version

填写需要使用的 Clang 版本

Clang 版本对应 Android 版本AOSP-Clang 版本
12.0.5Android Sr416183b
14.0.6Android Tr450784d
14.0.7r450784e
15.0.1r458507
17.0.1r487747b
17.0.2Android Ur487747c

一般 Clang12 就能通过大部分 4.14 及以上的内核的编译 我自己的 MI 6X 4.19 使用的是 r450784d

GCC

Enable GCC 64

启用 GCC 64 交叉编译

Enable GCC 32

启用 GCC 32 交叉编译

Extra cmds

有的内核需要加入一些其它编译命令,才能正常编译,一般不需要其它的命令,请自行搜索自己内核的资料 请在命令与命令之间用空格隔开

例如: LLVM=1 LLVM_IAS=1

Enable KernelSU

启用 KernelSU,用于排查内核故障或单独编译内核

KernelSU Branch or Tag

KernelSU 1.0 已经不再支持非 GKI 内核,最后的支持版本为 v0.9.5,请注意使用正确的分支

选择 KernelSU 的分支或 tag:

KernelSU Manager signature size and hash

自定义KernelSU管理器签名的size值和hash值,如果不需要自定义管理器则请留空或填入官方默认值:

KSU_EXPECTED_SIZE=0x033b

KSU_EXPECTED_HASH=c371061b19d8c7d7d6133c6a9bafe198fa944e50c1b31c9d8daa8d7f1fc2d2d6

可键入ksud debug get-sign <apk_path>获取apk签名的size值和hash值

Disable LTO

LTO 用于优化内核,但有些时候会导致错误

Disable CC_WERROR

用于修复某些不支持或关闭了Kprobes的内核,修复KernelSU未检测到开启Kprobes的变量抛出警告导致错误

Add Kprobes Config

自动在 defconfig 注入参数

Add overlayfs Config

此参数为 KernelSU 模块和 system 分区读写提供支持 自动在 defconfig 注入参数

Apply KernelSU Patch

如果 kprobe 工作不正常(通常是上游的 bug 或者内核版本过低),那你可以尝试启用此参数

自动修改内核源码以支持 KernelSU
参见:如何为非GKI设备集成 KernelSU

Remove unused packages

清理无用的包,以获得更大的磁盘空间

如果你需要这些包,请关闭此项

AnyKernel3

Use custom AnyKernel3

可以使用自定义的 AnyKernel3

Custom AnyKernel3 Source

如果是 git 仓库,请填写包含.git的链接

支持 git 仓库或者 zip 压缩包的直链

AnyKernel3 Branch

自定义 AnyKernel3 的仓库分支

Enable ccache

启用缓存,让第二次编译内核更快,最少可以减少 2/5 的时间

Need DTBO

上传 DTBO 部分设备需要

Build Boot IMG

从之前的 Workflows 合并进来的,可以查看历史提交

编译 boot.img,需要你提供Source boot image

Source Boot Image

故名思义,提供一个源系统可以正常开机的 boot 镜像,需要直链,最好是同一套内核源码以及与你当前系统同一套设备树从 aosp 构建出来的。ramdisk 里面包含分区表以及 init,没有的话构建出来的镜像会无法正常引导。

例如: https://raw.githubusercontent.com/xiaoleGun/KernelSU_action/main/boot/boot-wayne-from-Miku-UI-latest.img

感谢