Skip to content

Commit 4e6e321

Browse files
committed
Add fake kernel patch to fix sus_maps build errors
1 parent b955b75 commit 4e6e321

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

.github/actions/action.yml

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)