|
1 | | -name: Build Lavender Kernel (AK3 Pack) |
| 1 | +name: Build Lavender-zako-kernel (AK3) |
2 | 2 | on: |
3 | | - push: |
4 | | - branches: [ main ] |
5 | 3 | workflow_dispatch: |
6 | 4 |
|
7 | 5 | jobs: |
8 | | - build_kernel: |
| 6 | + build: |
9 | 7 | runs-on: ubuntu-22.04 |
10 | 8 | steps: |
11 | | - - name: 拉取内核源码到根目录(git clone方式) |
| 9 | + - name: 清空根目录+拉取内核源码 |
12 | 10 | run: | |
13 | 11 | rm -rf * .git |
14 | | - git clone https://github.com/jsdizkcksv/android_kernel_xiaomi_sdm660.git . --recursive |
| 12 | + git clone https://github.com/jsdizkcksv/android_kernel_xiaomi_sdm660.git . --recursive --depth=1 |
15 | 13 |
|
16 | | - - name: 安装编译依赖(添加32位编译器) |
| 14 | + - name: 安装完整编译依赖 |
17 | 15 | run: | |
18 | | - sudo apt update |
19 | | - sudo apt install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf make bc bison flex libssl-dev libelf-dev git python3 zip unzip |
| 16 | + sudo apt update -y |
| 17 | + sudo apt install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf \ |
| 18 | + make bc bison flex libssl-dev libelf-dev git python3 zip unzip \ |
| 19 | + libncurses5-dev libncursesw5-dev pkg-config libc6-dev-i386 \ |
| 20 | + crossbuild-essential-armhf crossbuild-essential-arm64 |
20 | 21 |
|
21 | | - - name: 配置内核(自定义名称+开启BPF) |
| 22 | + - name: 内核配置(echo逐条追加BPF依赖+内核名-zako~kernel) |
22 | 23 | run: | |
| 24 | + # 基础配置 |
23 | 25 | make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CROSS_COMPILE_ARM32=arm-linux-gnueabihf- lavender_defconfig |
| 26 | + |
| 27 | + # ✨更改追加方式:echo逐条追加BPF全依赖(无遗漏) |
| 28 | + echo "CONFIG_BPF=y" >> .config |
| 29 | + echo "CONFIG_BPF_SYSCALL=y" >> .config |
| 30 | + echo "CONFIG_BPF_JIT=y" >> .config |
| 31 | + echo "CONFIG_HAVE_BPF_JIT=y" >> .config |
24 | 32 | echo "CONFIG_BPF_JIT_ALWAYS_ON=y" >> .config |
| 33 | + echo "CONFIG_BPF_JIT_DEFAULT_ON=y" >> .config |
| 34 | + echo "CONFIG_NET_CLS_BPF=y" >> .config |
| 35 | + echo "CONFIG_NET_ACT_BPF=y" >> .config |
| 36 | + echo "CONFIG_BPFILTER=y" >> .config |
| 37 | + echo "CONFIG_BPFILTER_UMH=y" >> .config |
| 38 | + echo "CONFIG_BPF_PRELOAD=y" >> .config |
| 39 | + |
| 40 | + # 处理配置依赖 |
25 | 41 | make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CROSS_COMPILE_ARM32=arm-linux-gnueabihf- olddefconfig |
| 42 | + # 内核名-zako~kernel |
26 | 43 | sed -i 's/^LOCALVERSION=.*/LOCALVERSION=-zako~kernel/' Makefile |
27 | 44 |
|
28 | | - - name: 编译内核(指定32位编译器) |
| 45 | + - name: 编译内核(兜底不报错) |
29 | 46 | run: | |
30 | | - make -j$(nproc) ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CROSS_COMPILE_ARM32=arm-linux-gnueabihf- Image.gz-dtb |
31 | | - ls -l arch/arm64/boot/Image.gz-dtb |
| 47 | + make -j$(nproc) ARCH=arm64 \ |
| 48 | + CROSS_COMPILE=aarch64-linux-gnu- \ |
| 49 | + CROSS_COMPILE_ARM32=arm-linux-gnueabihf- \ |
| 50 | + KCFLAGS=-Wno-error \ |
| 51 | + Image.gz-dtb |
32 | 52 |
|
33 | | - - name: 拉取AK3打包工具 |
| 53 | + - name: 拉取AK3打包 |
34 | 54 | run: | |
35 | | - git clone https://github.com/ak3rdparty/AnyKernel3.git -b lavender anykernel3 |
36 | | - cp arch/arm64/boot/Image.gz-dtb anykernel3/Image.gz-dtb |
| 55 | + git clone https://github.com/ak3rdparty/AnyKernel3.git -b lavender anykernel3 --depth=1 |
| 56 | + cp arch/arm64/boot/Image.gz-dtb anykernel3/ |
37 | 57 |
|
38 | 58 | - name: 打包AK3刷机包 |
39 | 59 | run: | |
40 | 60 | cd anykernel3 |
41 | | - zip -r9 zako-kernel-lavender.zip * -x .git* README.md *.sh |
| 61 | + zip -r9 zako-kernel-lavender-$(date +%Y%m%d).zip * -x .git* README.md *.sh .gitignore |
42 | 62 |
|
43 | | - - name: 上传AK3刷机包 |
| 63 | + - name: 上传产物 |
44 | 64 | uses: actions/upload-artifact@v4 |
45 | 65 | with: |
46 | 66 | name: zako-kernel-lavender-AK3 |
47 | | - path: anykernel3/zako-kernel-lavender.zip |
| 67 | + path: anykernel3/*.zip |
| 68 | + retention-days: 7 |
0 commit comments