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,46 @@ 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+ if [[ "$img_file" == "./Image.gz"* ]]; then
271+ dd if="$img_file" bs=1 | gunzip > Image
272+ echo "-> Convert to: Image"
273+ fi
274+ ./patch && mv oImage Image
275+ if [[ "$img_file" == "./Image.gz"* ]]; then
276+ gzip -c Image > Image.gz
277+ rm Image
278+ echo "-> Compress: Image.gz"
279+ fi
280+ if [[ "$img_file" == "./Image.gz-dtb" ]]; then
281+ compressed_length=$(dd if=Image.gz-dtb bs=1 $skip | gzip -c | wc -c)
282+ dd if=Image.gz-dtb bs=1 skip=$compressed_length > dtb
283+ cat Image.gz dtb > Image.gz-dtb
284+ rm Image.gz && rm dtb
285+ echo "-- Image.gz -> Image.gz-dtb"
286+ fi
287+ rm patch
288+ cd -
289+ fi
290+
264291 BUILD_SUFFIX="${{ matrix.build.ak3_suffix }}"
265292 if [ "${{ matrix.susfs }}" == "true" ]; then
266293 BUILD_SUFFIX="$BUILD_SUFFIX.SUSFS"
267294 fi
268-
295+
269296 ZIP_NAME="$(date +"%Y.%m.%d")-${{ env.device }}${BUILD_SUFFIX}-${{ matrix.kernel_config.tag }}-${{ github.run_number }}"
270297 echo "anykernel_zipname=$ZIP_NAME" >> $GITHUB_ENV
271298
0 commit comments