Skip to content

RKSU for MT6853

RKSU for MT6853 #6

Workflow file for this run

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/*