Skip to content

uwu_kernel ​

uwu_kernel 是 uwuAOSP 用于将 kernel build 接入 Soong 的模块类型,旨在替代 legacy kernel build task。

uwu_kernel 不替代 kernel 自身的 build system。Kbuild、Bazel 等仍负责实际的 kernel build,uwu_kernel 负责将其构建过程和产物接入 Android build system。

为什么需要 uwu_kernel ​

Legacy kernel build task 是普通设备切换 Soong only 最大的阻碍,切换到 Soong Only 可以极大减小 build graph 生成时间。

Legacy kernel module 配置将 module 的安装位置和加载列表分散在多个 Make 变量和文件中,两者之间还存在交叉引用,因此以下问题很难直接从配置中确认:

  • 一个 module 最终安装到了哪个分区;
  • 一个 module 为什么被安装;
  • 哪些 module 会在启动过程中实际加载。

uwu_kernel 不保留这些隐式行为。设备应直接声明需要的 kernel 配置、输出和 module 布局,使最终状态能够从设备配置中直接确认。

迁移 ​

我们推荐使用 uwuCLI 完成初始迁移。它会读取现有设备配置,并生成对应的 uwu_kernel 配置。

对于 kernel modules,uwuCLI 会解析 legacy module 配置及其引用的静态 module list,并据此生成对应的 install 和 load list 配置。如果现有配置无法被可靠转换,uwuCLI 会报告 blocker,而不是猜测设备需要的 module 布局。

建议您对自动转换的结果进行检查。

详细步骤请参阅 从 legacy kernel build 迁移。

文档 ​

已验证设备 ​

uwu_kernel 已在以下具有代表性的 kernel 配置上完成构建和启动验证:

设备Kernel类型Kernel build system
OnePlus 6T (fajita)4.19non-GKIKbuild
OnePlus Ace 3 / 12R (aston(c))5.15GKIKbuild
POCO F7 / Redmi Turbo 4 Pro (onyx)6.6GKIBazel