@@ -1036,8 +1036,10 @@ runs:
10361036 patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/overwrite_hook_mode.patch"
10371037 echo "Patching KSU_TOOLKIT Support for SusFS kernel!"
10381038 patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/ksu_toolkit.patch"
1039- echo "Patching Multi-manager Support for SusFS kernel!"
1040- patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/multi_manager.patch"
1039+ if [ "$KSUVER" -le 33095 ]; then
1040+ echo "Patching Multi-manager Support for SusFS kernel!"
1041+ patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/multi_manager.patch"
1042+ fi
10411043 if [ "$KSUVER" -ge 33068 ] && [ "$KSUVER" -lt 33070 ]; then
10421044 echo "Patching Multi-manager sepolicy Support for SusFS kernel!"
10431045 patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/multi_sepolicy_fix.patch"
@@ -1060,8 +1062,8 @@ runs:
10601062 echo "Patching KSU_TOOLKIT Support for SusFS kernel!"
10611063 patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/ksu_toolkit.patch"
10621064 if [ "$KSUVER" -le 33095 ]; then
1063- echo "Patching Multi-manager Support for SusFS kernel!"
1064- patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/multi_manager.patch"
1065+ echo "Patching Multi-manager Support for SusFS kernel!"
1066+ patch -p1 --forward < "$KERNEL_PATCHES_FOLDER/next/susfs_fix_patches/$susfs_version/multi_manager.patch"
10651067 fi
10661068 if [ "$KSUVER" -ge 33068 ] && [ "$KSUVER" -lt 33070 ]; then
10671069 echo "Patching Multi-manager sepolicy Support for SusFS kernel!"
@@ -1087,6 +1089,7 @@ runs:
10871089
10881090 # Fake kernel patch to fix failures
10891091 fake_patched=0
1092+ fake_patched_expand=0
10901093 if [ "${{ env.ANDROID_VER }}" = "android15" ] && [ "${{ env.KERNEL_VER }}" = "6.6" ]; then
10911094 if ! grep -qxF $'\tunsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;' ./fs/proc/task_mmu.c; then
10921095 echo "nr_subpages Line not found. Fake Patching!"
@@ -1098,6 +1101,17 @@ runs:
10981101 echo "#include <linux/dma-buf.h> Line not found. Adding missing header"
10991102 sed -i '/#include <linux\/cpufreq_times.h>/a #include <linux\/dma-buf.h>' ./fs/proc/base.c
11001103 fi
1104+
1105+ if ! grep -qxF '#include <linux/zswap.h>' ./mm/memory.c; then
1106+ echo "#include <linux/zswap.h> Line not found. Adding missing header"
1107+ sed -i '/#include <linux\/sched\/sysctl.h>/a #include <linux\/zswap.h>' ./mm/memory.c
1108+ fi
1109+
1110+ if grep -qF 'if (vma->vm_end > last_vma_end)' ./fs/proc/task_mmu.c && ! grep -qxF 'SUSFS_IS_INODE_SUS_MAP' ./fs/proc/task_mmu.c; then
1111+ echo "Temporarily expand the `last_vma_end` `if` block to fix a matching issue."
1112+ perl -i -0pe 's/\t\t\tif \(vma->vm_end > last_vma_end\)\n\t\t\t\tsmap_gather_stats\(vma, &mss, last_vma_end\);/\t\t\tif (vma->vm_end > last_vma_end) {\n\t\t\t\tsmap_gather_stats(vma, \&mss, last_vma_end);\n\t\t\t\tlast_vma_end = vma->vm_end;\n\t\t\t}/' ./fs/proc/task_mmu.c
1113+ fake_patched_expand=1
1114+ fi
11011115 fi
11021116 if [ "${{ env.ANDROID_VER }}" = "android12" ] && [ "${{ env.KERNEL_VER }}" = "5.10" ]; then
11031117 if ! grep -qxF $'\tif (!vma_pages(vma))' ./fs/proc/task_mmu.c; then
@@ -1110,6 +1124,12 @@ runs:
11101124 echo "vma_pages Line not found. Fake Patching!"
11111125 fake_patched=1
11121126 fi
1127+
1128+ if grep -qxF '#include <linux/swap_slots.h>' ./mm/memory.c; then
1129+ echo "#include swap_slots.h> Line found. Deleting header."
1130+ sed -i '/#include <linux\/swap_slots.h>/d' ./mm/memory.c
1131+ fake_patched=1
1132+ fi
11131133 fi
11141134
11151135 if [ "${{ env.ANDROID_VER }}" = "android14" ] && [ "${{ env.KERNEL_VER }}" = "6.1" ]; then
@@ -1127,6 +1147,14 @@ runs:
11271147 patch -p1 --forward < "$SUSFS_FOLDER/kernel_patches/50_add_susfs_in_${{ env.SUSFS_KERNEL_BRANCH }}.patch"
11281148
11291149 # Revert Fake kernel patch
1150+ if [ "$fake_patched_expand" = 1 ]; then
1151+ if [ "${{ env.ANDROID_VER }}" = "android15" ] && [ "${{ env.KERNEL_VER }}" = "6.6" ]; then
1152+ if grep -qF 'if (vma->vm_end > last_vma_end) {' ./fs/proc/task_mmu.c && ! grep -qxF 'SUSFS_IS_INODE_SUS_MAP' ./fs/proc/task_mmu.c; then
1153+ perl -i -0pe 's/\t\t\tif \(vma->vm_end > last_vma_end\) \{\n\t\t\t\tsmap_gather_stats\(vma, &mss, last_vma_end\);\n\t\t\t\tlast_vma_end = vma->vm_end;\n\t\t\t\}/\t\t\tif (vma->vm_end > last_vma_end)\n\t\t\t\tsmap_gather_stats(vma, \&mss, last_vma_end);/' ./fs/proc/task_mmu.c
1154+ fi
1155+ fi
1156+ fi
1157+
11301158 if [ "$fake_patched" = 1 ]; then
11311159 if [ "${{ env.ANDROID_VER }}" = "android15" ] && [ "${{ env.KERNEL_VER }}" = "6.6" ]; then
11321160 if grep -qxF $'\tunsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;' ./fs/proc/task_mmu.c; then
@@ -1145,6 +1173,11 @@ runs:
11451173 echo "vma_pages Line found. Revert Fake Patching!"
11461174 sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
11471175 fi
1176+
1177+ if ! grep -qxF '#include <linux/swap_slots.h>' ./mm/memory.c; then
1178+ echo "#include <linux/swap_slots.h> Line not found. Adding missing header"
1179+ sed -i '/#include <linux\/vmalloc.h>/a #include <linux\/swap_slots.h>' ./mm/memory.c
1180+ fi
11481181 fi
11491182 if [ "${{ env.ANDROID_VER }}" = "android14" ] && [ "${{ env.KERNEL_VER }}" = "6.1" ]; then
11501183 if grep -qxF $'\t\t\tgoto show_pad;' ./fs/proc/task_mmu.c; then
@@ -1300,7 +1333,7 @@ runs:
13001333 GKI_KEY="${ANDROID_VER}-${KERNEL_VER}"
13011334 BRANCH_SUFFIX=$(basename "$OP_BRANCH")
13021335
1303- if [[ "$OP_MODEL" == "OP10r" || "$OP_MODEL" == "OP-ACE-RACE" ]] && [[ "$OP_OS_VERSION" == "OOS15" ]]; then
1336+ if [[ "$OP_MODEL" == "OP10r" ]] && [[ "$OP_OS_VERSION" == "OOS15" ]]; then
13041337 NTSYNC_PATCH="$NTSYNC_FOLDER/ntsync_compat_android12-5.10_OOS14.patch"
13051338 if [ ! -f "$NTSYNC_PATCH" ]; then
13061339 echo "::error::NTSync compat patch not found for ${OP_MODEL}: $(basename $NTSYNC_PATCH)"
0 commit comments