Skip to content

Commit effd1c8

Browse files
committed
Add Support for KSUN v3 and fix errors
- Add KSUN v3 Support - Fix missing hook conditions - Fix Zip name error when SuSFS is disabled
1 parent 3d415e2 commit effd1c8

File tree

1 file changed

+54
-4
lines changed

1 file changed

+54
-4
lines changed

.github/actions/action.yml

Lines changed: 54 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)