Skip to content
This repository has been archived by the owner on Jun 7, 2023. It is now read-only.

DogDayAndroid/KSU_Thyme_BuildBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NOTICE !!!

小米 10S(代号 thyme)的 KernelSU 内核编译

对于内核的更多了解,可以阅读让 Android 手机更省电流畅,你可以试试「刷内核」一文。

源码

这里选择了 Pixel Experience 项目下的 thyme 内核,可以进仓库源地址进行查看,为了方便进行 KernelSU 的编译,可以进入本人的分支进行查看。

此外和,还有一些其他的内核仓库可以查看,本人测试了一部分,但是可能由于编译链原因无法正常刷入:

上游分支

在 Pixel Experience 内核的基础上,合并了部分上游分支,合并分支如下:

驱动

工具链

工具链的选择请参考文章[内核向] 交叉编译器的选择以及[白话文版] ClangBuiltLinux Clang 的使用,同时可以配合neutron-clang 的说明文档来进行编译参数配置。

推荐工具

  • neutron-clang:这是为内核开发构建的 LLVM 和 Clang 编译器工具链。构建始终是从最新的 LLVM 源代码而不是稳定版本构建的,因此无法保证完全的稳定性
  • 阿菌•未霜 Clang/LLVM Toolchain with Binutils:这是一个预构建的工具链,构建始终来自最新的 LLVM 和 Binutils 源而不是稳定版本,因此无法保证完全的稳定性。它是用 Full LTO、PGO 和 BOLT 构建的,以尽可能减少编译时间。
  • ClangBuiltLinux/tc-build:类似前两个工具,但是这个工具需要自己在本地从 LLVM 的源码进行构建,但编译时间较长。

其他工具

  • 最好的选择是从预编译内核机器的 /proc/config.gz 提取`,需要 COMPILE_CROSS 以及 CLANG,自行选择合适版本下载即可,通过这种方式编译出来的配合度是最好的。

打包

内核编译完成后的打包请参考文章[内核向] 论如何优雅的刷入内核,目前最流行的方法是使用 osm0sis/AnyKernel3 来完成整个内核的打包刷入工作。

如果您更喜欢自己动手,那么请参考文章内的其他方法。

值得注意的是,不同版本的内核编译出来的内容并不相同,因此需要区分他们之间的打包,详情请参考文章:关于 Image.xx-dtb 和 Image.xx + dtb 的区别。 来自文章的评论区:对应芯片组的。比如 865 只需要 kona-v2.1.dtb。如果弄不清楚,可以使用 cat 命令将多个 dtb 连接在一起,bootloader 会自动识别。

常见编译错误

1. -Werror=implicit-int

/arch/arm64/kernel/smp.c:834:8: error: type defaults to ‘int’ in declaration of ‘in_long_press’ [-Werror=implicit-int]

您可以修改 extern in_long_pressextern int in_long_press;或者去除MakeFile 中对应错误限制

其他

如果您想用手机或者 Docker 容器运行编译程序的花,请参考文章手机端编译安卓内核以及使用 docker 简单编译 k20pro 内核

参考

编译指南[基础]

编译指南[进阶]

致谢

About

Buildbot for thyme kernel with KSU fixed.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages