Skip to content

Build Chopin Kernel with KernelSU v0.9.5 #4

Build Chopin Kernel with KernelSU v0.9.5

Build Chopin Kernel with KernelSU v0.9.5 #4

Workflow file for this run

name: ARM64 Kernel Build & Pack (chopin AB, Stable)
on:
push:
branches: [ android-S ]
pull_request:
branches: [ android-S ]
workflow_dispatch:
jobs:
build_and_pack:
runs-on: ubuntu-latest
steps:
- name: Maximize Build Space (Stable)
run: |
# 仅清理 Runner 工作目录下的冗余文件,避免系统目录操作
rm -rf ${{ github.workspace }}/* 2>/dev/null
sudo apt clean -y 2>/dev/null
sudo docker rmi $(sudo docker images -q) 2>/dev/null || true
df -h
- name: Checkout Kernel Source (Default Workdir)
uses: actions/checkout@v4
with:
fetch-depth: 1
path: kernel_src # 检出到工作目录下的 kernel_src 子目录
- name: Checkout AnyKernel3 (Default Workdir)
uses: actions/checkout@v4
with:
repository: osm0sis/AnyKernel3
path: anykernel3 # 检出到工作目录下的 anykernel3 子目录
ref: master
- name: Install System Dependencies (Ubuntu 22.04)
run: |
sudo apt update -y 2>/dev/null
sudo apt install -y bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev python2 python3-pip 2>/dev/null
sudo ln -s /usr/bin/python2 /usr/bin/python 2>/dev/null
- name: Download & Extract LLVM-19.1.0 (Workdir)
run: |
mkdir -p ${{ github.workspace }}/toolchains/llvm
curl -L https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.0/LLVM-19.1.0-Linux-X64.tar.xz | tar -xJ -C ${{ github.workspace }}/toolchains/llvm --strip-components=1 2>/dev/null
- name: Download & Extract Google GCC 4.9 (Workdir)
run: |
mkdir -p ${{ github.workspace }}/toolchains/gcc
curl -L https://github.com/JackA1ltman/Google-GCC-Android-4.9/archive/refs/heads/master.tar.gz | tar -xz -C ${{ github.workspace }}/toolchains/gcc --strip-components=1 2>/dev/null
- name: Configure Build Env (Stable, Disable Warnings)
run: |
export ARCH=arm64
export SUBARCH=arm64
export PATH=${{ github.workspace }}/toolchains/llvm/bin:${{ github.workspace }}/toolchains/gcc/bin:$PATH
export CROSS_COMPILE=aarch64-linux-android-
export CROSS_COMPILE_ARM32=arm-linux-androideabi-
export CC=clang
export CXX=clang++
export LD=ld.lld
# 禁用警告转错误
export KCFLAGS=-Wno-error
export KBUILD_CFLAGS=-Wno-error
export CLANG_FLAGS=-Wno-error
# 进入内核源码目录执行配置
cd ${{ github.workspace }}/kernel_src
make O=out chopin_defconfig 2>/dev/null
- name: Build Kernel with All Cores (Stable)
run: |
export ARCH=arm64
export SUBARCH=arm64
export PATH=${{ github.workspace }}/toolchains/llvm/bin:${{ github.workspace }}/toolchains/gcc/bin:$PATH
export CROSS_COMPILE=aarch64-linux-android-
export CROSS_COMPILE_ARM32=arm-linux-androideabi-
export CC=clang
export CXX=clang++
export LD=ld.lld
cd ${{ github.workspace }}/kernel_src
# 全核心编译 + 禁用警告转错误
make -j$(nproc) O=out Image.gz-dtb KCFLAGS=-Wno-error KBUILD_CFLAGS=-Wno-error CLANG_FLAGS=-Wno-error 2>&1 | tee ${{ github.workspace }}/kernel_build.log
- name: Pack Kernel with AnyKernel3 (AB Partition)
run: |
# 复制内核镜像到 AnyKernel3 目录
cp ${{ github.workspace }}/kernel_src/out/arch/arm64/boot/Image.gz-dtb ${{ github.workspace }}/anykernel3/ 2>/dev/null
# 适配 AB 分区
sed -i 's/^device.name1=.*/device.name1=chopin/' ${{ github.workspace }}/anykernel3/anykernel.sh 2>/dev/null
sed -i 's/^is_slot_device=.*/is_slot_device=1/' ${{ github.workspace }}/anykernel3/anykernel.sh 2>/dev/null
# 打包
cd ${{ github.workspace }}/anykernel3
zip -r9 Chopin-Kernel-$(date +%Y%m%d).zip * -x .git README.md LICENSE 2>/dev/null
# 复制打包文件到工作根目录
cp Chopin-Kernel-$(date +%Y%m%d).zip ${{ github.workspace }}/ 2>/dev/null
- name: Upload Kernel Image
uses: actions/upload-artifact@v4
with:
name: Chopin-Kernel-Image
path: ${{ github.workspace }}/kernel_src/out/arch/arm64/boot/Image.gz-dtb
- name: Upload Packed Flashable Zip
uses: actions/upload-artifact@v4
with:
name: Chopin-Kernel-Flashable-Zip
path: ${{ github.workspace }}/Chopin-Kernel-*.zip
- name: Upload Build Log
uses: actions/upload-artifact@v4
with:
name: Chopin-Kernel-Build-Log
path: ${{ github.workspace }}/kernel_build.log