@@ -622,10 +622,24 @@ runs:
622622 fi
623623 git submodule update --init --recursive
624624 cd KernelSU-Next/kernel
625- BASE_VERSION=10200
626- KSU_VERSION=$(expr $(/usr/bin/git rev-list --count HEAD) "+" $BASE_VERSION)
625+
626+ COMMITS_COUNT=$(/usr/bin/git rev-list --count HEAD)
627+
628+ if [ $COMMITS_COUNT -lt 2684 ]; then
629+ BASE_VERSION=10200
630+ else
631+ BASE_VERSION=30000
632+ fi
633+
634+ KSU_VERSION=$(expr $COMMITS_COUNT "+" $BASE_VERSION)
627635 sed -i "s/DKSU_VERSION=11998/DKSU_VERSION=${KSU_VERSION}/" Makefile
628636
637+ if [ "$KSU_VERSION" -lt 12884 ]; then
638+ echo "NEED_HOOKS=true" >> $GITHUB_ENV
639+ else
640+ echo "NEED_HOOKS=false" >> $GITHUB_ENV
641+ fi
642+
629643 cd ..
630644 KSU_COMMIT_SHA=$(git rev-parse HEAD)
631645 echo "KSU_COMMIT_SHA=$KSU_COMMIT_SHA" >> $GITHUB_ENV
@@ -654,6 +668,8 @@ runs:
654668 KSU_VERSION=$(expr $(/usr/bin/git rev-list --count HEAD) "+" $BASE_VERSION)
655669 sed -i "s/DKSU_VERSION=16/DKSU_VERSION=${KSU_VERSION}/" Makefile
656670
671+ echo "NEED_HOOKS=false" >> $GITHUB_ENV
672+
657673 cd ..
658674 KSU_COMMIT_SHA=$(git rev-parse HEAD)
659675 echo "KSU_COMMIT_SHA=$KSU_COMMIT_SHA" >> $GITHUB_ENV
@@ -712,7 +728,7 @@ runs:
712728 patch -p1 --forward --fuzz=3 < 10_enable_susfs_for_ksu.patch
713729 fi
714730 ;;
715- "v1.5.9"|"v1.5.10"|"v1.5.11"|"v1.5.12"|"v2.0.0" )
731+ "v1.5.9"|"v1.5.10"|"v1.5.11"|"v1.5.12")
716732 if [ "${{ inputs.ksu_type }}" = "KSUN" ]; then
717733 cd ./KernelSU-Next
718734 else
@@ -730,6 +746,36 @@ runs:
730746 patch -p1 --forward < 10_enable_susfs_for_ksu.patch
731747 fi
732748 ;;
749+ "v2.0.0")
750+ if [ "${{ inputs.ksu_type }}" = "KSUN" ]; then
751+ cd ./KernelSU-Next
752+ else
753+ cd ./KernelSU
754+ fi
755+ cp ../../../susfs4ksu/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch ./
756+ if [ "${{ inputs.ksu_type }}" = "KSUN" ]; then
757+ patch -p1 --forward < 10_enable_susfs_for_ksu.patch || true
758+
759+ if ! grep -qF 'static void ksu_install_manager_fd_tw_func(struct callback_head *cb)' ./kernel/setuid_hook.c; then
760+ sed -i '/static inline bool is_allow_su()/istatic void ksu_install_manager_fd_tw_func(struct callback_head *cb){ ksu_install_fd(); kfree(cb);}' ./kernel/setuid_hook.c
761+ fi
762+
763+ if ! grep -qxF 'if (ksu_get_manager_appid() == new_uid % PER_USER_RANGE)' ./kernel/setuid_hook.c; then
764+ sed -i 's/if (ksu_get_manager_appid() == new_uid % PER_USER_RANGE)/if (ksu_get_manager_uid() == new_uid % PER_USER_RANGE)/' ./kernel/setuid_hook.c
765+ fi
766+
767+ if ! grep -qF 'define KERNEL_SU_DOMAIN "su"' ./kernel/selinux/selinux.h; then
768+ sed -i '/void setup_selinux/i#define KERNEL_SU_DOMAIN "su"\n#define KERNEL_SU_FILE "ksu_file"\n\n#define KERNEL_SU_CONTEXT "u:r:" KERNEL_SU_DOMAIN ":s0"\n#define KSU_FILE_CONTEXT "u:object_r:" KERNEL_SU_FILE ":s0"\n' ./kernel/selinux/selinux.h
769+ fi
770+
771+ for file in $(find ./kernel -maxdepth 2 -name "*.rej" -exec basename {} .rej \;); do
772+ echo "Patching file: $file with fix_$file.patch"
773+ patch -p1 --forward < "../../../kernel_patches/next/susfs_fix_patches/$susfs_version/fix_$file.patch"
774+ done
775+ else
776+ patch -p1 --forward < 10_enable_susfs_for_ksu.patch
777+ fi
778+ ;;
733779 *)
734780 echo "::error::Unsupported SUSFS version: $susfs_version"
735781 exit 1
@@ -1285,7 +1331,11 @@ runs:
12851331 cp "$IMAGE_PATH" "$GITHUB_WORKSPACE/AnyKernel3/Image"
12861332 cd "$GITHUB_WORKSPACE/AnyKernel3"
12871333
1288- ZIP_NAME="AK3_${OP_MODEL}_${OP_OS_VERSION}_${KERNEL_FULL_VER}_${{ inputs.ksu_type }}_${KSUVER}_${SUSVER}.zip"
1334+ if [ "${{ env.OP_SUSFS }}" = true ]; then
1335+ ZIP_NAME="AK3_${OP_MODEL}_${OP_OS_VERSION}_${KERNEL_FULL_VER}_${{ inputs.ksu_type }}_${KSUVER:-unknown}_${SUSVER:-unknown}.zip"
1336+ else
1337+ ZIP_NAME="AK3_${OP_MODEL}_${OP_OS_VERSION}_${KERNEL_FULL_VER}_${{ inputs.ksu_type }}_${KSUVER:-unknown}.zip"
1338+ fi
12891339 ARTIFACTS_DIR="$CONFIG_DIR/artifacts"
12901340 mkdir -p "$ARTIFACTS_DIR"
12911341
0 commit comments