安卓内核编译教程

安卓内核编译教程

寻找合适的clang

在内核目录找到build.config.common

1
2
3
4
5
6
7
8
9
10
11
12
BRANCH=android-4.19-stable
KMI_GENERATION=0

LLVM=1
DEPMOD=depmod
CLANG_PREBUILT_BIN=prebuilts-master/clang/host/linux-x86/clang-r416183b/bin
BUILDTOOLS_PREBUILT_BIN=build/build-tools/path/linux-x86

EXTRA_CMDS=''
STOP_SHIP_TRACEPRINTK=1
IN_KERNEL_MODULES=1
DO_NOT_STRIP_MODULES=1

如此我们找到了,它需要的是clang-r416183b,我们需要去谷歌上找到对应的.

1
https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/android12-release/clang-r416183b.tar.gz

但clang本身并不自带交叉编译器,我们需要再下一个.

1
https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/+/refs/heads/android12-release

安装依赖

1
2
3
4
5
bc bison build-essential ccache curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick
lib32ncurses5-dev lib32readline-dev lib32z1-dev libelf-dev liblz4-tool libncurses5 libncurses5-dev
libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync
schedtool squashfs-tools xsltproc
zip zlib1g-dev

这是需要的依赖,debian系列的为例.你需要使用apt安装他们

基于https://github.com/feichaixiaobai/Android-kernel-make-teach/discussions/1

需要的变量参数

1
2
3
4
export PATH="/XXXXXX/bin:$PATH" 把clang跟交叉编译器填进去
export ARCH=arm64
export SUBARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu- 需要根据交叉编译工具链下的bin内相似的文件名修改

一般编译这种需要LLVM的则需要编译参数LLVM=1 LLVM_IAS=1

多重配置文件

如果内核的配置文件带有基础配置文件以及多项定制文件则需要一起make如:

1
vendor/sdm660-perf_defconfig vendor/oppo/sdm660-common.config vendor/oppo/R11s.config

安卓内核编译教程
https://blog.computerqwq.top/2026/08/29/an-zhuo-nei-he-bian-yi-jiao-cheng/
作者
计算机qwq
发布于
2026年8月29日
更新于
2026年8月29日
许可协议