Skip to content

Commit 2007edd

Browse files
committed
build: add kpm patch for SukiSU
Signed-off-by: TheSillyOk <priv.ld@proton.me>
1 parent d878ce9 commit 2007edd

1 file changed

Lines changed: 36 additions & 8 deletions

File tree

.github/workflows/build_kernels.yml

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,10 @@ jobs:
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

Comments
 (0)