diff --git a/.github/workflows/build-gki-kernel.yml b/.github/workflows/build-gki-kernel.yml index 91911f7..9f778c8 100644 --- a/.github/workflows/build-gki-kernel.yml +++ b/.github/workflows/build-gki-kernel.yml @@ -8,6 +8,11 @@ on: required: false default: "false" type: boolean + enable_kpm: + description: "Enable KPM support" + required: false + default: "false" + type: boolean enable_zram: description: "Enable ZRAM support" required: false @@ -206,6 +211,24 @@ jobs: echo "⏩ Skipping BBR support (disabled)" fi + - name: Enable KPM support + run: | + if [[ "${{ inputs.enable_kpm }}" == "true" && "${{ inputs.root_solution }}" == "sukisu" ]]; then + cd $GITHUB_WORKSPACE/kernel/android_kernel_oneplus_sm8650 + mkdir -p kernel/configs + printf '%s\n' \ + '# Fragment config for enabling KPM' \ + 'CONFIG_KPM=y' > kernel/configs/kpm.config + + export ARCH=arm64 + export KCONFIG_CONFIG=arch/arm64/configs/config_defconfig.new + scripts/kconfig/merge_config.sh -m arch/arm64/configs/config_defconfig kernel/configs/kpm.config + mv arch/arm64/configs/config_defconfig.new arch/arm64/configs/config_defconfig + echo "✅ KPM config finished" + else + echo "ℹ️ KPM patches skipped" + fi + - name: Enable ZRAM support run: | if [ "${{ inputs.enable_zram }}" = "true" ]; then @@ -411,6 +434,20 @@ jobs: echo "Build finished at: $endtime" echo "=== Build step finished (check out/error.log for full log) ===" + - name: Apply KPM patches + run: | + if [[ "${{ inputs.enable_kpm }}" == "true" && "${{ inputs.root_solution }}" == "sukisu" ]]; then + cd $GITHUB_WORKSPACE/kernel/android_kernel_oneplus_sm8650/out/arch/arm64/boot + curl -LSs "https://raw.githubusercontent.com/SukiSU-Ultra/SukiSU_patch/refs/heads/main/kpm/patch_linux" -o patch + chmod 777 patch + ./patch + rm -rf Image + mv oImage Image + echo "✅ KPM patch finished" + else + echo "ℹ️ SCHED skipped" + fi + - name: Check build results run: | set -euo pipefail diff --git a/README.md b/README.md index 1cefa1f..c6af569 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ - Enable ThinLTO/FullLTO to build - Enable Root support : kernelsu/SukiSU/kernelsu-next - Enable BBR support : Enable bbr congestion control algorithm +- Enable KPM support : Enable kpm support in kernel - Enable ZRAM support : Enable extra zram algorithm(LZ4KD/LZ4K_oplus) - Enable SUSFS support : You can build susfs into kernel - Enable SCHED support : Enable Fengchi scx scheduling