Skip to content

RobertAyin/LXC_KernelSU_Action

 
 

Repository files navigation

中文 | English

LXC-KernelSU Action





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

## 警告:warning: :warning: :warning:

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

## 支持内核

- `5.4`
- `4.19`
- `4.14`
- `4.9`

## 使用

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

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

Fork 本仓库到你的储存库然后按照以下内容编辑 config.env,之后点击`Star`或`Action`,在左侧可看见`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](https://github.com/kdrag0n/proton-clang)

#### Custom Clang Source

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

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

#### Custom cmds

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

#### Clang Branch

由于 [#23](https://github.com/xiaoleGun/KernelSU_Action/issues/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.5 | Android S | r416183b |
| 14.0.6 | Android T | r450784d |
| 14.0.7 | | r450784e |
| 15.0.1 | | r458507 |

一般 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 的分支或 tag:

- main 分支(开发版): `KERNELSU_TAG=main`
- 最新 TAG(稳定版): `KERNELSU_TAG=`
- 指定 TAG(如`v0.5.2`): `KERNELSU_TAG=v0.5.2`

#### KernelSU Manager signature size and hash

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

`KSU_EXPECTED_SIZE=0x033b`

`KSU_EXPECTED_HASH=0xb0b91415`

可键入`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 注入参数

### 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

## 感谢

- [AnyKernel3](https://github.com/osm0sis/AnyKernel3)
- [AOSP](https://android.googlesource.com)
- [KernelSU](https://github.com/tiann/KernelSU)
- [xiaoxindada](https://github.com/xiaoxindada)
- [xiaoleGun](https://github.com/xiaoleGun/KernelSU_Action) 
- [qiuqiu](https://blog.qiuqiu233.top/)
- [grilix](https://github.com/grilix/kernel-docker-support)
- [wu17481748](https://github.com/wu17481748/LXC-DOCKER-KernelSU_Action)
- [kdrag0n](https://github.com/kdrag0n/proton-clang)
- [JonasCardoso](https://github.com/JonasCardoso/Toolchain)
- [Neebe3289](https://gitlab.com/Neebe3289/android_prebuilts_clang_host_linux-x86)
- [ZyCromerZ](https://github.com/ZyCromerZ/Clang)
- [ARM](https://developer.arm.com/-/media/Files/downloads/gnu)
- [LLVM](https://github.com/llvm/llvm-project/)
- [mvaisakh](https://github.com/mvaisakh/gcc-build)
- [HDTC](https://gitlab.com/HDTC/sdclang)
- [Neutron-Toolchains](https://github.com/Neutron-Toolchains)
- 

About

A action for build LXC_KernelSU into your kernel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%