Build Chopin Kernel with KernelSU v0.9.5 #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |