name: 'Revert SUSFS Fake Patches' description: 'Revert version-specific fake patches after kernel patch application' inputs: version: description: 'Kernel config version (e.g., android15-6.6)' required: true sublevel: description: 'Kernel sublevel' required: true os_patch_level: description: 'OS patch level (e.g., 2024-07)' required: true runs: using: "composite" steps: - name: Revert Android 12 5.10 Fake Patches shell: bash if: inputs.version == 'android12-5.10' working-directory: ${{ github.workspace }}/kernel/common run: | if [ "${{ inputs.sublevel }}" -le "43" ]; then echo "Reverting base.c Android 12 5.10 Fake Patch" sed -i 's/^size_t this_len = min_t(size_t, count, PAGE_SIZE);$/int this_len = min_t(int, count, PAGE_SIZE);/' fs/proc/base.c fi - name: Revert Android 13 5.10 Fake Patches shell: bash if: inputs.version == 'android13-5.10' working-directory: ${{ github.workspace }}/kernel/common run: | - name: Revert Android 13 5.15 Fake Patches shell: bash if: inputs.version == 'android13-5.15' working-directory: ${{ github.workspace }}/kernel/common run: | if [ "${{ inputs.sublevel }}" -le "41" ]; then echo "Reverting namespace.c Android 13 5.15 Fake Patch" sed -i '/#include $/d' fs/namespace.c echo "Reverting open.c Android 13 5.15 Fake Patch" sed -i '/#include $/d' fs/open.c sed -i 's|i_uid_into_mnt(i_user_ns(&fi->inode), &fi->inode).val|i_uid_into_mnt(\&init_user_ns, \&fi->inode).val|g' fs/susfs.c sed -i 's|i_uid_into_mnt(i_user_ns(inode), inode).val|i_uid_into_mnt(\&init_user_ns, inode).val|g' fs/susfs.c fi if [ "${{ inputs.sublevel }}" -ge "197" ]; then echo "Reverting namespace.c Android 13 5.15 Fake Patch" sed -i '/^#include "internal.h"$/a #include ' fs/namespace.c fi if [ "${{ inputs.sublevel }}" -ge "206" ]; then echo "Reverting task_mmu.c Android 13 5.15 Fake Patch" sed -i '/^#include $/a #include ' fs/proc/task_mmu.c fi - name: Revert Android 14 6.1 Fake Patches shell: bash if: inputs.version == 'android14-6.1' working-directory: ${{ github.workspace }}/kernel/common run: | if [ "${{ inputs.sublevel }}" -le "25" ]; then sed -i '/^#include $/d' fs/proc/base.c fi if [ "${{ inputs.sublevel }}" -le "141" ]; then echo "Reverting base.c Android 14 6.1 Fake Patch" sed -i '/^#include $/d' fs/proc/base.c fi if [ "${{ inputs.sublevel }}" -ge "157" ]; then echo "Reverting namespace.c Android 14 6.1 Fake Patch" sed -i '/^#include "internal.h"$/a #include ' fs/namespace.c fi - name: Revert Android 15 6.6 Fake Patches shell: bash if: inputs.version == 'android15-6.6' working-directory: ${{ github.workspace }}/kernel/common run: | echo "Reverting 6.6 Fake Patches" if [ "${{ inputs.sublevel }}" -le "92" ]; then echo "Reverting base.c Android 15 6.6 Fake Patch" sed -i '/^#include $/d' fs/proc/base.c fi if [ "${{ inputs.sublevel }}" -le "57" ]; then echo "Reverting memory.c Android 15 6.6 Fake Patch" sed -i '/^#include $/d' mm/memory.c fi - name: Revert Android 16 6.12 Fake Patches shell: bash if: inputs.version == 'android16-6.12' working-directory: ${{ github.workspace }}/kernel/common run: | echo "Reverting 6.12 Fake Patches" if [ "${{ inputs.sublevel }}" -ge "58" ]; then echo "Reverting exec.c Android 16 6.12 Fake Patch" sed -i '/^#include /a #include ' fs/exec.c fi if [ "${{ inputs.sublevel }}" -ge "69" ]; then echo "Reverting task_mmu.c Android 16 6.12 Fake Patch" sed -i 's/vma_pages/vma_data_pages/g' fs/proc/task_mmu.c fi - name: Apply show_pad Fix shell: bash if: true working-directory: ${{ github.workspace }}/kernel/common run: | SHOW_PAD_FIX=0 if [[ "${{ inputs.version }}" = "android12-5.10" && "${{ inputs.sublevel }}" -le 209 ]]; then SHOW_PAD_FIX=1 elif [[ "${{ inputs.version }}" = "android13-5.10" && "${{ inputs.sublevel }}" -le 209 && "${{ inputs.os_patch_level }}" != "2024-05" ]]; then SHOW_PAD_FIX=1 elif [[ "${{ inputs.version }}" = "android13-5.15" && "${{ inputs.sublevel }}" -le 148 && "${{ inputs.os_patch_level }}" != "2024-05" ]]; then SHOW_PAD_FIX=1 elif [[ "${{ inputs.version }}" = "android14-5.15" && "${{ inputs.sublevel }}" -le 148 && "${{ inputs.os_patch_level }}" != "2024-05" ]]; then SHOW_PAD_FIX=1 elif [[ "${{ inputs.version }}" = "android14-6.1" && "${{ inputs.sublevel }}" -le 75 && "${{ inputs.os_patch_level }}" != "2024-05" ]]; then SHOW_PAD_FIX=1 fi if [[ "$SHOW_PAD_FIX" = "1" ]]; then sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c fi