7979 repo : " SukiSU-Ultra/SukiSU-Ultra"
8080 branch : " nongki"
8181 kernel_patches : " manual_hooks.patch seccomp.patch"
82- extra_configs : " CONFIG_KPROBES_HOOK=n CONFIG_MANUAL_HOOK=y"
82+ extra_configs : " CONFIG_KPROBES_HOOK=n CONFIG_MANUAL_HOOK=y CONFIG_KPM=y "
8383 susfs_patch : " SukiSU/SukiSU-SUSFS-1.5.9.patch"
8484 ak3_suffix : " -SukiSU"
85+ kpm : " https://raw.githubusercontent.com/ShirkNeko/SukiSU_patch/refs/heads/main/kpm/patch_linux"
8586
8687 susfs : [false, true]
8788 exclude :
@@ -114,7 +115,7 @@ jobs:
114115 echo "workspace_folder=${GITHUB_WORKSPACE}/workspace" >> $GITHUB_ENV
115116 mkdir -p "${GITHUB_WORKSPACE}/workspace"
116117 sudo apt-get update -qq
117- sudo apt-get install -y --no-install-recommends python3-pip git zip unzip gcc g++ make ninja-build file bc bison flex libfl-dev libssl-dev libelf-dev wget build-essential python3-dev python3-setuptools rsync ccache llvm-dev libncurses6 libfdt-dev
118+ sudo apt-get install -y --no-install-recommends python3-pip git zip unzip gcc g++ make ninja-build file bc bison flex libfl-dev libssl-dev libelf-dev wget build-essential python3-dev python3-setuptools rsync ccache llvm-dev libncurses6 libfdt-dev binwalk
118119
119120 - name : Cache Clang
120121 uses : actions/cache@v4
@@ -238,9 +239,9 @@ jobs:
238239 export KBUILD_BUILD_USER="Ok"
239240 export KBUILD_BUILD_HOST="Github"
240241 export PATH="${{ env.workspace_folder }}/clang/bin:$PATH"
241-
242+
242243 mkdir -p "out/arch/arm64/boot/dts/xiaomi/.ginkgo-trinket-overlay.dtbo.qcom-base"
243-
244+
244245 make O=out ARCH=arm64 ${{ env.defconfig }} ${{ env.config }}
245246 make O=out DTC_PREBUILT=true DTC=$EXTRA_FOLDER/dtc DTC_OVERLAY_TEST_EXT=$EXTRA_FOLDER/ufdt_apply_overlay MKDTIMG=$EXTRA_FOLDER/mkdtimg CC="ccache clang" LD=ld.lld LLVM=1 LLVM_IAS=1 -j"$(nproc --all)" CROSS_COMPILE=aarch64-linux-gnu-
246247
@@ -252,20 +253,47 @@ jobs:
252253 AK3_FOLDER="$BOOT_FOLDER/ak_folder"
253254 echo "ak_folder=$AK3_FOLDER" >> $GITHUB_ENV
254255 git clone --recursive --depth=1 "${{ env.anykernel_url }}" ${{ env.anykernel_branch_arg }} "$AK3_FOLDER"
255-
256+
256257 cp -f "$BOOT_FOLDER/Image.gz-dtb" "$AK3_FOLDER" 2>/dev/null || cp -f "$BOOT_FOLDER/Image.gz" "$AK3_FOLDER"
257-
258+
258259 if [ -e "$BOOT_FOLDER/dtbo.img" ]; then
259260 cp -f "$BOOT_FOLDER/dtbo.img" "$AK3_FOLDER"
260261 elif [ "${{ env.in_dtbo }}" != "none" ]; then
261262 python3 "${{ env.kernel_folder }}/extra/mkdtboimg.py" create "$AK3_FOLDER/dtbo.img" --custom0=0x00000000 --custom1=0x00000000 --page_size=4096 "${{ env.kernel_folder }}/${{ env.in_dtbo }}"
262263 fi
263-
264+
265+ if [[ -n "${{ matrix.build.kpm }}" ]]; then
266+ cd "$AK3_FOLDER"
267+ curl -LSs "${{ matrix.build.kpm }}" -o patch && chmod 777 patch
268+ img_file=$(find . -type f -name "Image"* -maxdepth 1)
269+ echo "$img_file"
270+ skip=""
271+ if [[ "$img_file" == "Image.gz-dtb" ]]; then
272+ skip_offset=$(binwalk -t -c Image.gz-dtb | grep "gzip compressed data" | cut -d',' -f1)
273+ skip="skip=$skip_offset"
274+ fi
275+ if [[ "$img_file" == "Image.gz"* ]]; then
276+ dd if=Image.gz-dtb bs=1 $skip | gunzip > Image
277+ fi
278+ ./patch && mv oImage* $img_file
279+ if [[ "$img_file" == "Image.gz"* ]]; then
280+ gzip -c Image > Image.gz
281+ rm Image
282+ fi
283+ if [[ "$img_file" == "Image.gz-dtb" ]]; then
284+ compressed_length=$(dd if=Image.gz-dtb bs=1 $skip | gzip -c | wc -c)
285+ dd if=Image.gz-dtb bs=1 skip=$(($skip_offset + $compressed_length)) > dtb
286+ cat Image.gz dtb > Image.gz-dtb
287+ rm Image.gz
288+ fi
289+ cd -
290+ fi
291+
264292 BUILD_SUFFIX="${{ matrix.build.ak3_suffix }}"
265293 if [ "${{ matrix.susfs }}" == "true" ]; then
266294 BUILD_SUFFIX="$BUILD_SUFFIX.SUSFS"
267295 fi
268-
296+
269297 ZIP_NAME="$(date +"%Y.%m.%d")-${{ env.device }}${BUILD_SUFFIX}-${{ matrix.kernel_config.tag }}-${{ github.run_number }}"
270298 echo "anykernel_zipname=$ZIP_NAME" >> $GITHUB_ENV
271299
0 commit comments