@@ -306,7 +306,41 @@ runs:
306306 sed -i '/#include <trace\/hooks\/blk.h>/a #include <trace\/hooks\/fs.h>' ./fs/namespace.c
307307 fi
308308 fi
309- patch -p1 < 50_add_susfs_in_${{ env.SUSFS_KERNEL_BRANCH }}.patch || true
309+
310+ # Fake kernel patch to fix failures
311+ fake_patched=0
312+ if [ "${{ env.ANDROID_VER }}" = "android15" ] && [ "${{ env.KERNEL_VER }}" = "6.6" ]; then
313+ if ! grep -qxF $'\tunsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;' ./fs/proc/task_mmu.c; then
314+ echo "nr_subpages Line not found. Fake Patching!"
315+ 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
316+ fake_patched=1
317+ fi
318+ fi
319+ if [ "${{ env.ANDROID_VER }}" = "android12" ] && [ "${{ env.KERNEL_VER }}" = "5.10" ]; then
320+ if ! grep -qxF $'\tif (!vma_pages(vma))' ./fs/proc/task_mmu.c; then
321+ echo "vma_pages Line not found. Fake Patching!"
322+ fake_patched=1
323+ fi
324+ fi
325+
326+ patch -p1 < 50_add_susfs_in_${{ env.SUSFS_KERNEL_BRANCH }}.patch
327+
328+ # Revert Fake kernel patch
329+ if [ "$fake_patched" = 1 ]; then
330+ if [ "${{ env.ANDROID_VER }}" = "android15" ] && [ "${{ env.KERNEL_VER }}" = "6.6" ]; then
331+ if grep -qxF $'\tunsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;' ./fs/proc/task_mmu.c; then
332+ echo "nr_subpages Line found. Revert Fake Patching!"
333+ sed -i -e '/unsigned int nr_subpages \= __PAGE_SIZE \/ PAGE_SIZE;/d' -e '/pagemap_entry_t \*res = NULL;/d' ./fs/proc/task_mmu.c
334+ fi
335+ fi
336+ if [ "${{ env.ANDROID_VER }}" = "android12" ] && [ "${{ env.KERNEL_VER }}" = "5.10" ]; then
337+ if grep -qxF $'\t\tgoto show_pad;' ./fs/proc/task_mmu.c; then
338+ echo "vma_pages Line found. Revert Fake Patching!"
339+ sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
340+ fi
341+ fi
342+ fi
343+
310344 KERNEL_VERSION="${{ env.KERNEL_VER }}"
311345 MIN_VERSION="5.16"
312346 if [ "$(printf '%s\n' "$KERNEL_VERSION" "$MIN_VERSION" | sort -V | head -n1)" = "$KERNEL_VERSION" ]; then
0 commit comments