Przeglądaj źródła

fix(action): remove GitHub summary steps for Makefile changes and enhance mmap.c fix reporting

TheWildJames 4 miesięcy temu
rodzic
commit
a1875eea42

+ 0 - 131
.github/actions/fetch-commits/action.yml

@@ -1,131 +0,0 @@
-name: Fetch Latest Commits
-description: "Fetches the latest commit hashes for KernelSU-Next, AnyKernel3, Kernel Patches, SUSFS, and BBG"
-outputs:
-  ksu_commit:
-    description: "KernelSU-Next Commit"
-    value: ${{ steps.commits.outputs.ksu_commit }}
-  ksu_tag:
-    description: "KernelSU-Next Tag (best effort)"
-    value: ${{ steps.commits.outputs.ksu_tag }}
-  anykernel_commit:
-    description: "AnyKernel3 Commit"
-    value: ${{ steps.commits.outputs.anykernel_commit }}
-  patches_commit:
-    description: "Kernel Patches Commit"
-    value: ${{ steps.commits.outputs.patches_commit }}
-  susfs_commit:
-    description: "SUSFS Commit (Map)"
-    value: ${{ steps.commits.outputs.susfs_commit }}
-  bbg_commit:
-    description: "BBG Commit"
-    value: ${{ steps.commits.outputs.bbg_commit }}
-
-runs:
-  using: "composite"
-  steps:
-    - name: Get Latest Commits
-      id: commits
-      shell: bash
-      run: |
-        # ============================================================================
-        # HARDCODE SECTION: KernelSU-Next (KSUN) Commit
-        # ============================================================================
-        # To use a specific KSU commit, uncomment and set the value below:
-        # HARDCODED_KSU_COMMIT="abc123def456"  # e.g., a full commit SHA or ref like "dev"
-        HARDCODED_KSU_COMMIT=""
-        
-        # ============================================================================
-        # HARDCODE SECTION: SUSFS Commits (branch:commit format)
-        # ============================================================================
-        # To use specific SUSFS commits, uncomment and set the values below:
-        # Format: branch1:commit1,branch2:commit2,...
-        # Example: HARDCODED_SUSFS_MAP="gki-android14-5.15:abc123,gki-android14-6.1:def456"
-        HARDCODED_SUSFS_MAP=""
-        
-        # ============================================================================
-        # Helper functions
-        # ============================================================================
-        
-        # Helper to get latest commit from remote without cloning full repo
-        get_commit() {
-          git ls-remote "$1" "$2" | awk '{print $1}'
-        }
-        
-        get_tag_for_commit() {
-          repo="$1"
-          commit="$2"
-          git ls-remote --tags "$repo" | awk -v c="$commit" '$1==c && $2 ~ /^refs\/tags\// {print $2}' \
-            | sed -E 's#^refs/tags/##; s#\^\{\}$##' \
-            | sort -V \
-            | tail -n 1
-        }
-
-        echo "Fetching latest commits..."
-        
-        # KernelSU-Next
-        if [ -n "$HARDCODED_KSU_COMMIT" ]; then
-          ksu_commit="$HARDCODED_KSU_COMMIT"
-          echo "Using hardcoded KernelSU-Next commit: $ksu_commit"
-        else
-          ksu_commit=$(get_commit "https://github.com/KernelSU-Next/KernelSU-Next.git" "refs/heads/dev")
-          echo "KernelSU-Next: $ksu_commit"
-        fi
-        echo "ksu_commit=$ksu_commit" >> $GITHUB_OUTPUT
-        
-        KSUN_TAG="$(get_tag_for_commit "https://github.com/KernelSU-Next/KernelSU-Next.git" "$ksu_commit")"
-        echo "KernelSU-Next Tag: ${KSUN_TAG:-None}"
-        echo "ksu_tag=$KSUN_TAG" >> $GITHUB_OUTPUT
-        
-        # AnyKernel3
-        AK3_COMMIT=$(get_commit "https://github.com/WildKernels/AnyKernel3.git" "refs/heads/gki-2.0")
-        echo "AnyKernel3: $AK3_COMMIT"
-        echo "anykernel_commit=$AK3_COMMIT" >> $GITHUB_OUTPUT
-        
-        # Kernel Patches
-        PATCHES_COMMIT=$(get_commit "https://github.com/WildKernels/kernel_patches.git" "HEAD")
-        echo "Kernel Patches: $PATCHES_COMMIT"
-        echo "patches_commit=$PATCHES_COMMIT" >> $GITHUB_OUTPUT
-        
-        # SUSFS (using gitlab) - Fetch all relevant branches
-        SUSFS_REPO="https://gitlab.com/simonpunk/susfs4ksu.git"
-        echo "Fetching SUSFS commits for all branches..."
-        
-        # We need to construct a JSON object or a simple string map
-        # Format: branch1:commit1,branch2:commit2,...
-        
-        if [ -n "$HARDCODED_SUSFS_MAP" ]; then
-          echo "Using hardcoded SUSFS commit map: $HARDCODED_SUSFS_MAP"
-          SUSFS_MAP="$HARDCODED_SUSFS_MAP"
-        else
-          BRANCHES=(
-            "gki-android12-5.10"
-            "gki-android13-5.10"
-            "gki-android13-5.15"
-            "gki-android14-5.15"
-            "gki-android14-6.1"
-            "gki-android15-6.6"
-            "gki-android16-6.12"
-          )
-          
-          SUSFS_MAP=""
-          for branch in "${BRANCHES[@]}"; do
-            COMMIT=$(get_commit "$SUSFS_REPO" "refs/heads/$branch")
-            if [ -n "$COMMIT" ]; then
-               echo "  $branch: $COMMIT"
-               if [ -z "$SUSFS_MAP" ]; then
-                 SUSFS_MAP="$branch:$COMMIT"
-               else
-                 SUSFS_MAP="$SUSFS_MAP,$branch:$COMMIT"
-               fi
-            else
-               echo "  $branch: Not found"
-            fi
-          done
-        fi
-        
-        echo "susfs_commit=$SUSFS_MAP" >> $GITHUB_OUTPUT
-        
-        # BBG
-        BBG_COMMIT=$(get_commit "https://github.com/vc-teahouse/Baseband-guard.git" "refs/heads/main")
-        echo "BBG: $BBG_COMMIT"
-        echo "bbg_commit=$BBG_COMMIT" >> $GITHUB_OUTPUT

+ 46 - 75
.github/actions/kernel-fixes/action.yml

@@ -55,81 +55,6 @@ runs:
           echo "[SKIP] GLIBC version < 2.38, skipping Makefile fix."
         fi
 
-    - name: 'Create GitHub Summary for Makefile changes'
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        echo "## Makefile and parse-options.c Fixes Applied" >> $GITHUB_STEP_SUMMARY
-        echo "" >> $GITHUB_STEP_SUMMARY
-        echo "### GLIBC Check" >> $GITHUB_STEP_SUMMARY
-        GLIBC_VERSION="$(ldd --version 2>/dev/null | head -n 1 | awk '{print $NF}')"
-        echo "- Detected GLIBC Version: **$GLIBC_VERSION**" >> $GITHUB_STEP_SUMMARY
-        echo "" >> $GITHUB_STEP_SUMMARY
-        
-        if [ "$(printf '%s\n' "2.38" "$GLIBC_VERSION" | sort -V | head -n 1)" = "2.38" ]; then
-          echo "### Makefile Changes" >> $GITHUB_STEP_SUMMARY
-          if [ "$MAKEFILE_FIXED" = "true" ]; then
-            echo "✅ **Makefile Fixed**: Found and replaced pattern with EXTRA_CFLAGS" >> $GITHUB_STEP_SUMMARY
-          elif [ "$MAKEFILE_FIXED" = "already_fixed" ]; then
-            echo "ℹ️ **Makefile Already Fixed**: EXTRA_CFLAGS already present" >> $GITHUB_STEP_SUMMARY
-          else
-            echo "❌ **Makefile Not Fixed**: Pattern not found (may not need fixing)" >> $GITHUB_STEP_SUMMARY
-          fi
-          echo "" >> $GITHUB_STEP_SUMMARY
-          
-          # Check parse-options.c changes - only report if version conditions match
-          if [[ "${{ inputs.android_version }}" == "android13" && "${{ inputs.kernel_version }}" == "5.10" && "${{ inputs.sublevel }}" -le 186 ]] || \
-             [[ "${{ inputs.android_version }}" == "android13" && "${{ inputs.kernel_version }}" == "5.15" && "${{ inputs.sublevel }}" -le 119 ]] || \
-             [[ "${{ inputs.android_version }}" == "android14" && "${{ inputs.kernel_version }}" == "5.15" && "${{ inputs.sublevel }}" -le 110 ]]; then
-            echo "### parse-options.c Changes" >> $GITHUB_STEP_SUMMARY
-            echo "✅ Version ${{ inputs.android_version }} + kernel ${{ inputs.kernel_version }} (sublevel ${{ inputs.sublevel }}) matched conditions" >> $GITHUB_STEP_SUMMARY
-            echo "- Applied variable declarations and loop syntax fixes to parse-options.c" >> $GITHUB_STEP_SUMMARY
-          else
-            echo "### parse-options.c Changes" >> $GITHUB_STEP_SUMMARY
-            echo "❌ Version ${{ inputs.android_version }} + kernel ${{ inputs.kernel_version }} (sublevel ${{ inputs.sublevel }}) did not match fix conditions" >> $GITHUB_STEP_SUMMARY
-          fi
-        else
-          echo "### No Changes Applied" >> $GITHUB_STEP_SUMMARY
-          echo "- GLIBC < 2.38 detected, skipping all fixes" >> $GITHUB_STEP_SUMMARY
-        fi
-
-    - name: 'Final Kernel Fixes Summary'
-      shell: bash
-      run: |
-        echo "## Final Kernel Fixes Summary" >> $GITHUB_STEP_SUMMARY
-        echo "" >> $GITHUB_STEP_SUMMARY
-        echo "**Kernel Version:** ${{ inputs.android_version }} + ${{ inputs.kernel_version }} (sublevel ${{ inputs.sublevel }})" >> $GITHUB_STEP_SUMMARY
-        echo "" >> $GITHUB_STEP_SUMMARY
-        
-        echo "### ✅ Fixes Applied/Matched" >> $GITHUB_STEP_SUMMARY
-        MATCHED_COUNT=0
-        if [ "$MAKEFILE_FIXED" = "true" ] || [ "$MAKEFILE_FIXED" = "already_fixed" ]; then
-          echo "- Makefile EXTRA_CFLAGS fix" >> $GITHUB_STEP_SUMMARY
-          MATCHED_COUNT=$((MATCHED_COUNT + 1))
-        fi
-        if [ "$PARSE_OPTIONS_FIXED" = "true" ]; then
-          echo "- parse-options.c variable declaration fixes" >> $GITHUB_STEP_SUMMARY
-          MATCHED_COUNT=$((MATCHED_COUNT + 1))
-        fi
-        if [ $MATCHED_COUNT -eq 0 ]; then
-          echo "- *None*" >> $GITHUB_STEP_SUMMARY
-        fi
-        echo "" >> $GITHUB_STEP_SUMMARY
-        
-        echo "### ❌ Fixes Not Applicable" >> $GITHUB_STEP_SUMMARY
-        NOT_MATCHED_COUNT=0
-        if [ "$MAKEFILE_FIXED" = "false" ]; then
-          echo "- Makefile EXTRA_CFLAGS fix (pattern not found)" >> $GITHUB_STEP_SUMMARY
-          NOT_MATCHED_COUNT=$((NOT_MATCHED_COUNT + 1))
-        fi
-        if [ "$PARSE_OPTIONS_FIXED" = "false" ]; then
-          echo "- parse-options.c fixes (version doesn't match conditions)" >> $GITHUB_STEP_SUMMARY
-          NOT_MATCHED_COUNT=$((NOT_MATCHED_COUNT + 1))
-        fi
-        if [ $NOT_MATCHED_COUNT -eq 0 ]; then
-          echo "- *None*" >> $GITHUB_STEP_SUMMARY
-        fi
-        
     - name: 'Apply mmap.c fix for specific versions'
       shell: bash
       if: ${{ inputs.kernel_version == '6.6' && inputs.android_version == 'android15' && inputs.sublevel <= '58' }}
@@ -142,8 +67,10 @@ runs:
           if ! grep -qxF '#include <trace/hooks/fs.h>' ./fs/namespace.c; then
             echo "[INFO] Adding missing #include <trace/hooks/fs.h> to fs/namespace.c."
             sed -i '/#include <trace\/hooks\/blk.h>/a #include <trace\/hooks\/fs.h>' ./fs/namespace.c
+            echo "MMAP_NAMESPACE_FIX=true" >> "$GITHUB_ENV"
           else
             echo "[INFO] #include <trace/hooks/fs.h> already present."
+            echo "MMAP_NAMESPACE_FIX=already_present" >> "$GITHUB_ENV"
           fi
         fi
 
@@ -154,3 +81,47 @@ runs:
       run: |
         echo "[INFO] Applying mmap.c fix for specific version combo."
         sed -i 's/\s*vm_flags_clear(new_vma, VM_PAD_MASK);/                new_vma->vm_flags \&= ~VM_PAD_MASK;/' mm/mmap.c
+        echo "MMAP_VM_FLAGS_FIX=true" >> "$GITHUB_ENV"
+
+    - name: 'Final Kernel Fixes Summary'
+      shell: bash
+      run: |
+        echo "## Final Kernel Fixes Summary" >> "$GITHUB_STEP_SUMMARY"
+        echo "" >> "$GITHUB_STEP_SUMMARY"
+        echo "**Kernel Version:** ${{ inputs.android_version }} + ${{ inputs.kernel_version }} (sublevel ${{ inputs.sublevel }})" >> "$GITHUB_STEP_SUMMARY"
+        echo "" >> "$GITHUB_STEP_SUMMARY"
+        echo "### Fix Status" >> "$GITHUB_STEP_SUMMARY"
+
+        GLIBC_VERSION="$(ldd --version 2>/dev/null | head -n 1 | awk '{print $NF}')"
+        if [ "$(printf '%s\n' "2.38" "$GLIBC_VERSION" | sort -V | head -n 1)" = "2.38" ]; then
+          if [ "${MAKEFILE_FIXED:-false}" = "true" ]; then
+            echo "- Makefile EXTRA_CFLAGS fix: applied" >> "$GITHUB_STEP_SUMMARY"
+          elif [ "${MAKEFILE_FIXED:-false}" = "already_fixed" ]; then
+            echo "- Makefile EXTRA_CFLAGS fix: already present" >> "$GITHUB_STEP_SUMMARY"
+          else
+            echo "- Makefile EXTRA_CFLAGS fix: pattern not found" >> "$GITHUB_STEP_SUMMARY"
+          fi
+
+          if [ "${PARSE_OPTIONS_FIXED:-false}" = "true" ]; then
+            echo "- parse-options.c fix: applied" >> "$GITHUB_STEP_SUMMARY"
+          else
+            echo "- parse-options.c fix: not applicable" >> "$GITHUB_STEP_SUMMARY"
+          fi
+        else
+          echo "- Makefile EXTRA_CFLAGS fix: skipped because GLIBC < 2.38" >> "$GITHUB_STEP_SUMMARY"
+          echo "- parse-options.c fix: skipped because GLIBC < 2.38" >> "$GITHUB_STEP_SUMMARY"
+        fi
+
+        if [ "${MMAP_NAMESPACE_FIX:-not_applicable}" = "true" ]; then
+          echo "- fs/namespace.c include fix: applied" >> "$GITHUB_STEP_SUMMARY"
+        elif [ "${MMAP_NAMESPACE_FIX:-not_applicable}" = "already_present" ]; then
+          echo "- fs/namespace.c include fix: already present" >> "$GITHUB_STEP_SUMMARY"
+        else
+          echo "- fs/namespace.c include fix: not applicable" >> "$GITHUB_STEP_SUMMARY"
+        fi
+
+        if [ "${MMAP_VM_FLAGS_FIX:-not_applicable}" = "true" ]; then
+          echo "- mm/mmap.c VM_PAD_MASK fix: applied" >> "$GITHUB_STEP_SUMMARY"
+        else
+          echo "- mm/mmap.c VM_PAD_MASK fix: not applicable" >> "$GITHUB_STEP_SUMMARY"
+        fi

+ 3 - 2
.github/actions/susfs/action.yml

@@ -165,10 +165,11 @@ runs:
           sed -i '/int ret.*= 0, copied.*= 0;/{
           /int ret.*= 0, copied.*= 0;/!d
           a\
-              unsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;\
-              pagemap_entry_t *res = NULL;
+            unsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;\
+            pagemap_entry_t *res = NULL;
           }' fs/proc/task_mmu.c
         fi
+        cat fs/proc/task_mmu.c
         if [ "${{ inputs.sublevel }}" -le "92" ]; then
           echo "Applying base.c Android 15 6.6 Fake Patch"
           sed -i '/^#include <linux\/cpufreq_times.h>$/a #include <linux/dma-buf.h>' fs/proc/base.c