RKSU for MT6853 #6
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: RKSU for MT6853 | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| BBR: | |
| type: boolean | |
| description: "是否启用 BBR 加速(不了解请不要启用)" | |
| required: false | |
| default: false | |
| DroidSpace: | |
| type: boolean | |
| description: "是否启用 DroidSpace(不了解请不要启用)" | |
| required: false | |
| default: false | |
| jobs: | |
| build: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: 构建编译内核环境 | |
| run: | | |
| sudo apt-get update | |
| sudo -E apt-get -y -qq install git make bc bison ccache openssl dos2unix zip kmod cpio flex libelf-dev curl libssl-dev libtfm-dev wget device-tree-compiler ca-certificates python3 python2 binutils binutils-aarch64-linux-gnu binutils-arm-linux-gnueabi | |
| mkdir -p $GITHUB_WORKSPACE/kernel_workspace | |
| - name: 下载 Gcc编译器 | |
| run: | | |
| cd $GITHUB_WORKSPACE/kernel_workspace | |
| mkdir gcc64 | |
| wget -O gcc-aarch64.tar.gz https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/+archive/refs/tags/android-12.1.0_r27.tar.gz | |
| tar -C gcc64/ -zxvf gcc-aarch64.tar.gz | |
| mkdir gcc32 | |
| wget -O gcc-arm.tar.gz https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/+archive/refs/tags/android-12.1.0_r27.tar.gz | |
| tar -C gcc32/ -zxvf gcc-arm.tar.gz | |
| - name: 下载Clang编译器 | |
| run: | | |
| cd $GITHUB_WORKSPACE/kernel_workspace | |
| mkdir clang-aosp | |
| git clone -q --depth=1 https://github.com/crdroidandroid/android_prebuilts_clang_host_linux-x86_clang-6443078 -b 10.0 clang-aosp | |
| - name: 下载内核源码 | |
| run: | | |
| cd $GITHUB_WORKSPACE/kernel_workspace | |
| git clone -b RKSU --single-branch https://github.com/sanba0519/android_kernel_4.14_MT6853.git android-kernel | |
| cd android-kernel | |
| - name: 打patch | |
| run: | | |
| echo "KSU_LOG: 开始下载并应用 RKSU 官方 4.14 patch" | |
| cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel | |
| # 下载官方 patch | |
| wget https://github.com/rksuorg/kernel_patches/raw/master/manual_hook/kernel-4.14.patch -O ksu-4.14.patch || { echo "下载 patch 失败"; exit 1; } | |
| # 应用 patch(-p1 是标准,忽略空格差异) | |
| patch -p1 < ksu-4.14.patch || { echo "patch 应用失败"; cat ksu-4.14.patch; exit 1; } | |
| - name: 更新 ksu | |
| run: | | |
| cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel | |
| rm -rf KernelSU | |
| curl -LSs "https://raw.githubusercontent.com/rsuntk/KernelSU/main/kernel/setup.sh" | bash -s main | |
| - name: 设置ccache缓存 | |
| uses: hendrikmuhs/ccache-action@v1.2 | |
| with: | |
| key: build-kernel-mido-kernel | |
| max-size: 3G | |
| - name: 配置环境并编译内核 | |
| run: | | |
| cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel | |
| export PATH=$GITHUB_WORKSPACE/kernel_workspace/clang-aosp/bin:$GITHUB_WORKSPACE/kernel_workspace/gcc64/bin:$GITHUB_WORKSPACE/kernel_workspace/gcc32/bin:$PATH | |
| export ARCH=arm64 | |
| export SUBARCH=arm64 | |
| if [ "${{ github.event.inputs.DroidSpace }}" = "true" ]; then | |
| echo "启用 DroidSpace..." | |
| make -s -j$(nproc --all) O=out ARCH=arm64 mt6853-ss_defconfig | |
| ./scripts/config --file out/.config \ | |
| --enable NAMESPACES \ | |
| --enable USER_NS \ | |
| --enable DEVTMPFS \ | |
| --enable DEVTMPFS_MOUNT | |
| make O=out olddefconfig | |
| else | |
| echo "不启用 DroidSpace..." | |
| fi | |
| # 添加BBR | |
| if [ "${{ github.event.inputs.BBR }}" = "true" ]; then | |
| echo "启用 BBR..." | |
| ./scripts/config --file out/.config \ | |
| --enable CONFIG_TCP_CONG_BBR \ | |
| --enable CONFIG_NET_SCH_FQ | |
| make O=out olddefconfig | |
| else | |
| echo "不启用 BBR..." | |
| fi | |
| make O=out olddefconfig | |
| cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel | |
| export PATH=$GITHUB_WORKSPACE/kernel_workspace/clang-aosp/bin:$GITHUB_WORKSPACE/kernel_workspace/gcc64/bin:$GITHUB_WORKSPACE/kernel_workspace/gcc32/bin:$PATH | |
| export KBUILD_BUILD_HOST=coolapk@sanba | |
| export KBUILD_BUILD_USER=GitHub@sanba0519 | |
| make -s -j$(nproc --all) O=out ARCH=arm64 mt6853-ss_defconfig | |
| make -s -j"$(nproc)" O=out ARCH=arm64 mt6853-ss_defconfig | |
| ./scripts/config --file out/.config \ | |
| --enable CONFIG_NAMESPACES \ | |
| --enable CONFIG_DEVTMPFS \ | |
| --disable CONFIG_USER_NS \ | |
| --enable CONFIG_DEVTMPFS_MOUNT | |
| make O=out ARCH=arm64 olddefconfig | |
| make -j"$(nproc)" \ | |
| O=out \ | |
| ARCH=arm64 \ | |
| CC="ccache clang" \ | |
| CLANG_TRIPLE=aarch64-linux-gnu- \ | |
| CROSS_COMPILE=aarch64-linux-android- \ | |
| CROSS_COMPILE_ARM32=arm-linux-androideabi- \ | |
| LD=ld.lld | |
| - name: 制作Anykernel3卡刷包 | |
| run: | | |
| cd $GITHUB_WORKSPACE/kernel_workspace | |
| git clone https://github.com/sanba0519/AnyKernel3 | |
| sed -i 's/do.devicecheck=1/do.devicecheck=0/g' AnyKernel3/anykernel.sh | |
| sed -i 's!block=/dev/block/by-name/boot;!block=auto;!g' AnyKernel3/anykernel.sh | |
| sed -i 's/is_slot_device=0;/is_slot_device=auto;/g' AnyKernel3/anykernel.sh | |
| cp android-kernel/out/arch/arm64/boot/Image.gz-dtb AnyKernel3/ | |
| rm -rf AnyKernel3/.git* AnyKernel3/README.md | |
| - name: 上传 AnyKernel3 卡刷包 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: MT6853-RKSU-AnyKernel3 | |
| path: kernel_workspace/AnyKernel3/* |