从零开始快速构建Android GKI内核
从零开始快速构建Android GKI内核
inkOrCloud前置知识
repo
一个易于git的python脚本,可以同时管理多个git项目,批量执行git操作
开始构建
同步源代码
先创建一个空文件夹并进入再用repo初始化仓库
1 | repo init -u https://android.googlesource.com/kernel/manifest |
初始化后在通用内核镜像发布构建中找到需要构建的内核版本,在所需版本的内核工件中下载manifest_xxxxx.xml并移动到.repo/manifests/manifests.xml
注意:对于已废弃的构建版本需要将uptream和dest-branch改为正确的分支
例如:
1 |
|
中common/android12-5.10-2023-05已废弃,所以该分支不存在,需要将upstream和dest-branch改为deprecated/android12-5.10-2023-05
修改完成后指定清单文件再次初始化
1 | repo init -m manifest.xml |
初始化完成后开始同步源代码
1 | repo sync |
构建
对于Android12以及更低的版本,使用build.go构建
1 | BUILD_CONFIG=xxx build/build.sh |
BUILD_CONFIG为构建配置文件的文件名,在common下,如需要构建arm64的GKI内核则指定
1 | BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh |
对于运行内存小于24G的设备建议加上LTO=thin
1 | LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh |
对于Android13及以上版本可使用bazel构建
1 | tools/bazel run //common:kernel_aarch64_dist |

![[leetcode 2197][Go][栈][模拟]替换数组中的非质数](https://s3.inkorcloud.top/image/2025/10/807921ea51f64ad42220a3dd408dfcfe.png)
![[leetcode 3563][Go][动态规划]区间DP和线性DP的混合使用](https://s3.inkorcloud.top/image/2025/10/155967c8f2c77f87804270970c10af46.png)
![[leetcode 3347][Go][答案二分]万能的二分法](https://s3.inkorcloud.top/image/2025/10/b92574e48ab8dfff1b32cc049a61df5f.png)
![[leetcode 3605][Go][二分答案]能二分的不只有数组](https://s3.inkorcloud.top/image/2025/10/3314adab4c88e645ac3a6dae75ab73e0.png)
![[leetcode 3171][备忘录][Go]关于LogTrick解法的个人理解](https://s3.inkorcloud.top/image/2025/10/3396d17ba0c1696cb78fb6e93d7d1d0b.png)