准备工作

编译内核不仅费时,而且费力。 你需要准备至少4g的运行内存和16g的存储空间,一台性能强劲的PC或VPS,以及一个良好的debug能力。

操作系统的选择

  • Ubuntu20.04/Ubuntu18.04(编译aosp推荐的操作系统)

  • debian12/11/10(我正在用的系统)

  • Other Linux

  • macos(需要安装xcode和homebrew)

  • windows(不推荐)

环境的选择

  • 虚拟机

  • 实体机(驱动问题)

  • 容器(chroot,docker,lxc,wsl,podman)(可能会编译失败)

架构的选择

  • x86_64(优先)

  • aarch64(使用此编译链)

  • other(你需要手动编译工具链,直接用软件源里的貌似也行?)

安装必需工具

执行

sudo apt-get install libncurses5-dev libncurses-dev libssl-dev device-tree-compiler bc cpio lib32ncurses5-dev lib32z1 build-essential binutils bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev git

注:

  • 有些内核可能需要安装python2.7和python2.7-minimal软件包。

  • debian12及以上版本已移除python2.7,你需要自己想办法安装它。

配置编译链

执行

git clone --depth=1 https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9 aarch64-linux-android-4.9

git clone --depth=1 https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.9 arm-linux-androideabi-4.9

注:使用gcc的话请忽略这一步

查看内核版本

本操作将确定编译链和KernelSU集成方式

使用devcheck查看

  • 下载并打开devcheck

  • 点击系统选项卡

  • 找到系统部分并查看内核版本

内核版本为5.10以上的为gki2.0,编译内核参考KernelSU官方页面

使用系统设置查看

  • 点击设置

  • 找到关于本机

  • 查看内核版本号

查看安卓版本

同上

确保手机已经解锁并root

~~你不解锁root玩锤子内核~~

确保厂商开源内核完整

(~~雷军,金凡!~~)

准备原boot和救砖包

方便救砖

如果你是华为用户:

参考这篇