@@ -739,135 +739,8 @@ runs:
739739 echo "SUSVER=$susfs_version" >> $GITHUB_ENV
740740 echo "$susfs_version" >> "${ARTIFACTS_FOLDER}/${OP_MODEL}_${OP_OS_VERSION}.txt"
741741 echo "SusFS Version: $susfs_version"
742-
743- # Function to compare semantic versions
744- version_lte() {
745- [ "$(printf '%s\n' "$2" "$1" | sort -V | head -n1)" = "$1" ]
746- }
747-
748- if version_lte "${susfs_version:1}" "1.5.12"; then
749- echo "NEED_HOOKS=true" >> $GITHUB_ENV
750- else
751- echo "NEED_HOOKS=false" >> $GITHUB_ENV
752- fi
753-
754- case "$susfs_version" in
755- "v1.5.8")
756- if [ "${{ inputs.ksu_type }}" = "KSUN" ]; then
757- patch -p1 --forward --fuzz=3 < "$SUSFS_FOLDER/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch" || true
758- patch -p1 --forward --fuzz=3 < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/fix_apk_sign.c.patch"
759- patch -p1 --forward --fuzz=3 < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/fix_core_hook.c.patch"
760- patch -p1 --forward --fuzz=3 < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/fix_selinux.c.patch"
761- patch -p1 --forward --fuzz=3 < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/fix_ksud.c.patch"
762- else
763- cd "$KSU_FOLDER"
764- patch -p1 --forward --fuzz=3 < "$SUSFS_FOLDER/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch"
765- fi
766- ;;
767- "v1.5.9"|"v1.5.10"|"v1.5.11"|"v1.5.12")
768- if [ "${{ inputs.ksu_type }}" = "KSUN" ]; then
769- cd "$KSUN_FOLDER"
770- patch -p1 --forward < "$SUSFS_FOLDER/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch" || true
771- for file in $(find ./kernel -maxdepth 2 -name "*.rej" -printf "%f\n" | cut -d'.' -f1); do
772- echo "Patching file: $file.c with fix_$file.c.patch"
773- patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/fix_$file.c.patch"
774- done
775- patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/fix_kernel_compat.c.patch"
776- else
777- cd "$KSU_FOLDER"
778- patch -p1 --forward < "$SUSFS_FOLDER/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch"
779- fi
780- ;;
781- "v2.0.0")
782- if [ "${{ inputs.ksu_type }}" = "KSUN" ]; then
783- cd "$KSUN_FOLDER"
784- patch -p1 --forward < "$SUSFS_FOLDER/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch" || true
785- for file in $(find ./kernel -maxdepth 2 -name "*.rej" -exec basename {} .rej \;); do
786- echo "Patching file: $file with fix_$file.patch"
787- patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/fix_$file.patch"
788- done
789- echo "Patching Hook Mode!"
790- patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/overwrite_hook_mode.patch"
791- echo "Patching KSU_TOOLKIT Support for SusFS kernel!"
792- patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/ksu_toolkit.patch"
793- echo "Patching Multi-manager Support for SusFS kernel!"
794- patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/multi_manager.patch"
795- else
796- cd "$KSU_FOLDER"
797- patch -p1 --forward < "$SUSFS_FOLDER/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch" || true
798- fi
799- ;;
800- *)
801- echo "::error::Unsupported SUSFS version: $susfs_version"
802- exit 1
803- ;;
804- esac
805-
806- cd "$COMMON_KERNEL_FOLDER"
807- if [ "${{ env.ANDROID_VER }}" = "android15" ] && [ "${{ env.KERNEL_VER }}" = "6.6" ]; then
808- if ! grep -qxF '#include <trace/hooks/fs.h>' ./fs/namespace.c; then
809- sed -i '/#include <trace\/hooks\/blk.h>/a #include <trace\/hooks\/fs.h>' ./fs/namespace.c
810- fi
811- fi
812-
813- # Fake kernel patch to fix failures
814- fake_patched=0
815- if [ "${{ env.ANDROID_VER }}" = "android15" ] && [ "${{ env.KERNEL_VER }}" = "6.6" ]; then
816- if ! grep -qxF $'\tunsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;' ./fs/proc/task_mmu.c; then
817- echo "nr_subpages Line not found. Fake Patching!"
818- sed -i -e '/int ret = 0, copied = 0;/a \\tunsigned int nr_subpages \= __PAGE_SIZE \/ PAGE_SIZE;' -e '/int ret = 0, copied = 0;/a \\tpagemap_entry_t \*res = NULL;' ./fs/proc/task_mmu.c
819- fake_patched=1
820- fi
821- fi
822- if [ "${{ env.ANDROID_VER }}" = "android12" ] && [ "${{ env.KERNEL_VER }}" = "5.10" ]; then
823- if ! grep -qxF $'\tif (!vma_pages(vma))' ./fs/proc/task_mmu.c; then
824- echo "vma_pages Line not found. Fake Patching!"
825- fake_patched=1
826- fi
827- fi
828- if [ "${{ env.ANDROID_VER }}" = "android13" ] && [ "${{ env.KERNEL_VER }}" = "5.15" ]; then
829- if ! grep -qxF $'\tif (!vma_pages(vma))' ./fs/proc/task_mmu.c; then
830- echo "vma_pages Line not found. Fake Patching!"
831- fake_patched=1
832- fi
833- fi
834-
835- if [ "${{ env.ANDROID_VER }}" = "android14" ] && [ "${{ env.KERNEL_VER }}" = "6.1" ]; then
836- if ! grep -qxF $'\tif (!vma_pages(vma))' ./fs/proc/task_mmu.c; then
837- echo "vma_pages Line not found. Fake Patching!"
838- fake_patched=1
839- fi
840- fi
841-
842- patch -p1 --forward < "$SUSFS_FOLDER/kernel_patches/50_add_susfs_in_${{ env.SUSFS_KERNEL_BRANCH }}.patch"
843-
844- # Revert Fake kernel patch
845- if [ "$fake_patched" = 1 ]; then
846- if [ "${{ env.ANDROID_VER }}" = "android15" ] && [ "${{ env.KERNEL_VER }}" = "6.6" ]; then
847- if grep -qxF $'\tunsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;' ./fs/proc/task_mmu.c; then
848- echo "nr_subpages Line found. Revert Fake Patching!"
849- sed -i -e '/unsigned int nr_subpages \= __PAGE_SIZE \/ PAGE_SIZE;/d' -e '/pagemap_entry_t \*res = NULL;/d' ./fs/proc/task_mmu.c
850- fi
851- fi
852- if [ "${{ env.ANDROID_VER }}" = "android12" ] && [ "${{ env.KERNEL_VER }}" = "5.10" ]; then
853- if grep -qxF $'\t\tgoto show_pad;' ./fs/proc/task_mmu.c; then
854- echo "vma_pages Line found. Revert Fake Patching!"
855- sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
856- fi
857- fi
858- if [ "${{ env.ANDROID_VER }}" = "android13" ] && [ "${{ env.KERNEL_VER }}" = "5.15" ]; then
859- if grep -qxF $'\t\tgoto show_pad;' ./fs/proc/task_mmu.c; then
860- echo "vma_pages Line found. Revert Fake Patching!"
861- sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
862- fi
863- fi
864- if [ "${{ env.ANDROID_VER }}" = "android14" ] && [ "${{ env.KERNEL_VER }}" = "6.1" ]; then
865- if grep -qxF $'\t\tgoto show_pad;' ./fs/proc/task_mmu.c; then
866- echo "vma_pages Line found. Revert Fake Patching!"
867- sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
868- fi
869- fi
870- fi
742+
743+ patch -p1 < "$SUSFS_FOLDER/kernel_patches/50_add_susfs_in_${{ env.SUSFS_KERNEL_BRANCH }}.patch"
871744 echo "✅ SUSFS patches applied"
872745 echo "::endgroup::"
873746
0 commit comments