Skip to content

Commit b583f32

Browse files
authored
Update gold.yml
1 parent d4836a1 commit b583f32

File tree

1 file changed

+32
-85
lines changed

1 file changed

+32
-85
lines changed

.github/workflows/gold.yml

Lines changed: 32 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,57 @@
1-
name: Build Lavender 4.4 Kernel (BPF+Custom Name)
1+
name: Build Lavender Kernel (AK3 Pack)
22
on:
33
push:
4-
branches: [main]
4+
branches: [ main ]
55
workflow_dispatch:
66

77
jobs:
88
build_kernel:
99
runs-on: ubuntu-22.04
10-
timeout-minutes: 120
1110
steps:
12-
- name: 1. 配置Git
13-
run: git config --global core.compression 0
14-
15-
- name: 2. 浅克隆lavender内核源码(13分支)
11+
- name: 拉取内核源码
1612
uses: actions/checkout@v4
1713
with:
18-
repository: projects-nexus/nexus_kernel_xiaomi_lavender
19-
ref: 13
14+
repository: jsdizkcks/android_kernel_xiaomi_sdm660.git
2015
path: kernel
21-
fetch-depth: 1
22-
23-
- name: 3. 浅克隆BPF补丁仓库
24-
uses: actions/checkout@v4
25-
with:
26-
repository: AL1S69/kernel
27-
ref: main
28-
path: patch_repo
29-
fetch-depth: 1
30-
31-
- name: 4. 安装编译依赖
32-
run: |
33-
sudo apt update && sudo apt upgrade -y
34-
sudo apt install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabi make git wget zip unzip patch bc bison flex libssl-dev libelf-dev libncurses5-dev libncursesw5-dev crossbuild-essential-arm64 crossbuild-essential-armhf
35-
sudo apt install -y gcc-10-aarch64-linux-gnu gcc-10-arm-linux-gnueabi --no-install-recommends
36-
echo "✅ 编译依赖安装完成"
16+
submodules: recursive
3717

38-
- name: 5. 合并BPF补丁
18+
- name: 安装编译依赖
3919
run: |
40-
cd kernel
41-
patch -p1 --ignore-whitespace < ../patch_repo/kernel_4.4.patch || echo "⚠️ 补丁部分冲突,继续编译"
42-
echo "✅ BPF补丁合并完成"
20+
sudo apt update
21+
sudo apt install -y gcc-aarch64-linux-gnu make bc bison flex libssl-dev libelf-dev git python3 zip unzip
4322
44-
- name: 6. 加载lavender配置并开启BPF项+关闭32位VDSO
23+
- name: 配置内核(自定义名称+开启BPF)
4524
run: |
4625
cd kernel
47-
make ARCH=arm64 lavender_defconfig
48-
# 开启BPF配置
49-
scripts/config --enable CONFIG_CGROUP_BPF
50-
scripts/config --enable CONFIG_BPF
51-
scripts/config --enable CONFIG_BPF_SYSCALL
52-
scripts/config --enable CONFIG_BPF_JIT_ALWAYS_ON
53-
scripts/config --enable CONFIG_NETFILTER_XT_MATCH_BPF
54-
scripts/config --enable CONFIG_NET_CLS_BPF
55-
scripts/config --enable CONFIG_BPF_JIT
56-
scripts/config --enable CONFIG_HAVE_EBPF_JIT
57-
# 关闭32位兼容VDSO,避免CROSS_COMPILE_COMPAT报错
58-
scripts/config --disable CONFIG_COMPAT_VDSO
59-
make ARCH=arm64 olddefconfig
60-
echo "✅ BPF配置开启+32位VDSO关闭完成"
61-
62-
- name: 7. 修改内核名(zako~kernel)
26+
# 生成lavender默认配置
27+
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- lavender_defconfig
28+
# 开启CONFIG_BPF_JIT_ALWAYS_ON
29+
echo "CONFIG_BPF_JIT_ALWAYS_ON=y" >> .config
30+
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- olddefconfig
31+
# 修改内核名为-zako~kernel
32+
sed -i 's/^LOCALVERSION=.*/LOCALVERSION=-zako~kernel/' Makefile
33+
34+
- name: 编译内核
6335
run: |
6436
cd kernel
65-
scripts/config --set-str LOCALVERSION "-zako~kernel"
66-
make ARCH=arm64 olddefconfig
67-
echo 'LOCALVERSION := -zako~kernel' >> Makefile
68-
[ -d "AnyKernel3" ] && sed -i 's/^kernel.string=.*/kernel.string=zako~kernel/' AnyKernel3/anykernel.sh
69-
echo "✅ 内核名修改完成"
37+
make -j$(nproc) ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image.gz-dtb
38+
# 检查编译产物是否存在
39+
ls -l arch/arm64/boot/Image.gz-dtb
7040
71-
- name: 8. 编译内核(定义CROSS_COMPILE_COMPAT变量)
41+
- name: 拉取AK3打包工具
7242
run: |
73-
cd kernel
74-
# 补充32位编译器变量,解决未定义错误
75-
export CROSS_COMPILE=aarch64-linux-gnu-
76-
export CROSS_COMPILE_COMPAT=arm-linux-gnueabi- # 关键:定义32位兼容编译器
77-
export CROSS_COMPILE_ARM32=arm-linux-gnueabi-
78-
export CC=aarch64-linux-gnu-gcc-10
79-
export HOSTCC=gcc-10
80-
export ARCH=arm64
81-
export KBUILD_BUILD_USER=AL1S69
82-
export KBUILD_BUILD_HOST=GitHubActions
83-
# 编译,屏蔽警告
84-
make -j$(nproc) KCFLAGS=-Wno-error KCFLAGS+=-Wno-dangling-pointer KCFLAGS+=-Wno-incompatible-pointer-types
85-
echo "✅ 内核编译完成"
43+
git clone https://github.com/ak3rdparty/AnyKernel3.git -b lavender anykernel3
44+
# 替换AK3中的内核镜像
45+
cp kernel/arch/arm64/boot/Image.gz-dtb anykernel3/Image.gz-dtb
8646
87-
- name: 9. 打包可刷内核包
47+
- name: 打包AK3刷机包
8848
run: |
89-
cd kernel
90-
if [ -f "arch/arm64/boot/Image.gz-dtb" ]; then
91-
if [ ! -d "AnyKernel3" ]; then
92-
git clone --depth=1 https://github.com/osm0sis/AnyKernel3.git
93-
sed -i 's/kernel.string=.*/kernel.string=zako~kernel/' AnyKernel3/anykernel.sh
94-
sed -i 's/device.name1=.*/device.name1=lavender/' AnyKernel3/anykernel.sh
95-
fi
96-
cp arch/arm64/boot/Image.gz-dtb AnyKernel3/
97-
cd AnyKernel3
98-
zip -r9 zako~kernel-BPF-lavender-4.4-$(date +%Y%m%d).zip * -x .git* *.md
99-
echo "✅ 内核包打包完成"
100-
else
101-
echo "❌ 未生成Image.gz-dtb,编译失败"
102-
exit 1
103-
fi
49+
cd anykernel3
50+
# 打包为ZIP(命名包含内核名)
51+
zip -r9 zako-kernel-lavender.zip * -x .git* README.md *.sh
10452
105-
- name: 10. 上传编译产物
53+
- name: 上传AK3刷机包
10654
uses: actions/upload-artifact@v4
10755
with:
108-
name: zako~kernel-lavender-4.4-BPF
109-
path: kernel/AnyKernel3/zako~kernel-BPF-lavender-4.4-*.zip
110-
if-no-files-found: error
56+
name: zako-kernel-lavender-AK3
57+
path: anykernel3/zako-kernel-lavender.zip

0 commit comments

Comments
 (0)