Kaynağa Gözat

Refactor build workflow for Wild_KSU integration

Updated build workflow to replace KernelSU with Wild_KSU, modified versioning logic, and adjusted configuration settings.
jimsterino98 7 ay önce
ebeveyn
işleme
76a2846c2b
1 değiştirilmiş dosya ile 77 ekleme ve 65 silme
  1. 77 65
      .github/workflows/build.yml

+ 77 - 65
.github/workflows/build.yml

@@ -56,19 +56,6 @@ jobs:
           git clone https://github.com/WildKernels/AnyKernel3.git -b "$ANYKERNEL_BRANCH"
           git clone https://github.com/WildKernels/kernel_patches.git
           git clone https://gitlab.com/simonpunk/susfs4ksu.git -b "$SUSFS_BRANCH"
-
-          cd susfs4ksu
-          TARGET="${{ inputs.android_version }}-${{ inputs.kernel_version }}"
-          COMMIT=""
-          case "$TARGET" in
-            android12-5.10) COMMIT="8a76ba240d1f7315352b49d97d854a4b166e5b47" ;;
-            android13-5.10) COMMIT="e5c9eabfc6dcfc677d11f46ce1d5ff786de60a92" ;;
-            android13-5.15) COMMIT="babf6be195576f09aae79650d47abf6a76e8a21b" ;;
-            android14-5.15) COMMIT="19f339e804ba9aebd9c6d735b965e2b9396c73ae" ;;
-            android14-6.1) COMMIT="a162e2469d0b472545e5e46457eee171c0975fb0" ;;
-            android15-6.6) COMMIT="f450ec00bf592d080f59b01ff6f9242456c9a427" ;;
-          esac
-          git checkout "$COMMIT"
       
       - name: Clone Kernel Source
         run: |
@@ -78,7 +65,6 @@ jobs:
       - name: Set Path Environment Variables
         run: |
           ROOT="$GITHUB_WORKSPACE"
-          # KERNEL_ROOT="$CONFIG"
           SUSFS4KSU="$ROOT/susfs4ksu"
           KERNEL_PATCHES="$ROOT/kernel_patches"
           ANYKERNEL3="$ROOT/AnyKernel3"
@@ -91,13 +77,14 @@ jobs:
           else
             COMMON="$CONFIG/kernel_platform/common"
           fi
+          DEFCONFIG="$COMMON/arch/arm64/configs/gki_defconfig"
 
           echo "ROOT=$ROOT" >> $GITHUB_ENV
-          # echo "KERNEL_ROOT=$KERNEL_ROOT" >> $GITHUB_ENV
           echo "SUSFS4KSU=$SUSFS4KSU" >> $GITHUB_ENV
           echo "KERNEL_PATCHES=$KERNEL_PATCHES" >> $GITHUB_ENV
           echo "ANYKERNEL3=$ANYKERNEL3" >> $GITHUB_ENV
           echo "COMMON=$COMMON" >> $GITHUB_ENV
+          echo "DEFCONFIG=$DEFCONFIG" >> $GITHUB_ENV
           
       - name: Extract all tar.xz files and delete them
         run: |
@@ -121,38 +108,68 @@ jobs:
           cd "$CONFIG"
           du -BG -d 2 | sort -nr
 
-      - name: Add KernelSU
+      - name: Add Wild_KSU
         run: |
           cd "$COMMON"
-          curl -LSs "https://raw.githubusercontent.com/WildKernels/Wild_KSU/wild/kernel/setup.sh" | bash -s wild
+          curl -LSs "https://raw.githubusercontent.com/WildKernels/Wild_KSU/wild/kernel/setup.sh" | bash -s stable
 
-      - name: Getting KernelSU Version
+      - name: Getting Wild_KSU Version
         run: |
           cd "$COMMON/Wild_KSU/kernel"
           
-          BASE_VERSION=10200
-          COMMIT_COUNT=$(/usr/bin/git rev-list --count HEAD)
-          KSU_VERSION=$(expr $COMMIT_COUNT "+" $BASE_VERSION)
-          echo "KSUVER=$KSU_VERSION" >> $GITHUB_ENV
-          
-          # change KSU version in makefile, scamsung things
-          MAKEFILE="Makefile"
-          sed -i "s/ccflags-y += -DKSU_VERSION=[0-9]\+/ccflags-y += -DKSU_VERSION=${KSU_VERSION}/" "$MAKEFILE"
-          echo "✅ Updated KSU version to ${KSU_VERSION} in $MAKEFILE"
+          KSU_DIR=$(pwd)
+          KBUILD="Kbuild"
+          BASE_VERSION=30000
+
+          if [ -d "$KSU_DIR/.git" ]; then
+              echo "✔ Git repo detected"
+
+              # Unshallow if needed
+              if [ -f "$KSU_DIR/.git/shallow" ]; then
+                  git -C "$KSU_DIR" fetch --unshallow || true
+              fi
+
+              # Get commit count
+              KSU_GIT_VERSION=$(git -C "$KSU_DIR" rev-list --count HEAD)
+
+              # Calculate version
+              KSU_VERSION=$((BASE_VERSION + KSU_GIT_VERSION))
+
+              # Get latest tag (safe)
+              KSU_GIT_TAG=$(git -C "$KSU_DIR" describe --tags --abbrev=0 2>/dev/null || echo "v0.0.1")
+
+          else
+              echo "⚠ Not a git repo, using defaults"
+              KSU_VERSION=$BASE_VERSION
+              KSU_GIT_TAG="v0.0.1"
+          fi
+
+          echo "Computed version: $KSU_VERSION"
+          echo "Computed tag: $KSU_GIT_TAG"
+
+          # Export for CI (optional)
+          echo "KSU_VERSION=$KSU_VERSION" >> $GITHUB_ENV
+          echo "KSU_VERSION_TAG=$KSU_GIT_TAG" >> $GITHUB_ENV
+
+          # --- Update Kbuild fallback values ---
+
+          # Update numeric fallback
+          sed -i "s/KSU_VERSION_FALLBACK := [0-9]\+/KSU_VERSION_FALLBACK := ${KSU_VERSION}/" "$KBUILD"
+
+          # Update tag fallback
+          sed -i "s/KSU_VERSION_TAG_FALLBACK := .*/KSU_VERSION_TAG_FALLBACK := ${KSU_GIT_TAG}/" "$KBUILD"
 
-      - name: Apply SUSFS Patches for KernelSU Variants
+          echo "✅ Updated fallback values in $KBUILD"
+
+      - name: Apply SUSFS Patches
         run: |
           cd "$COMMON"
           # Apply compatibility fixes
-          SUSFS_VERSION="1.5.12"
+          SUSFS_VERSION="2.0.0"
           
           cp "$SUSFS4KSU/kernel_patches/fs/"* ./fs/
           cp "$SUSFS4KSU/kernel_patches/include/linux/"* ./include/linux/
-
-
-          # Apply core SUSFS patches
-          cp "$SUSFS4KSU/kernel_patches/50_add_susfs_in_gki-${{ inputs.android_version }}-${{ inputs.kernel_version }}.patch" ./
-          
+          cp "$SUSFS4KSU/kernel_patches/50_add_susfs_in_gki-${{ inputs.android_version }}-${{ inputs.kernel_version }}.patch" ./          
 
           # Apply SUSFS core patch
           patch -p1 < 50_add_susfs_in_gki-${{ inputs.android_version }}-${{ inputs.kernel_version }}.patch || true
@@ -195,46 +212,41 @@ jobs:
             patch -p1 < fix_base.patch
           fi
 
-          # Apply KSU integration patches
-          cd Wild_KSU
-          
-            cp "$SUSFS4KSU/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch" .
-            patch -p1 < 10_enable_susfs_for_ksu.patch || true
-          
-            cp "$KERNEL_PATCHES/wild/susfs_fix_patches/v${SUSFS_VERSION}/fix_core_hook.c.patch" ./
-            patch -p1 < fix_core_hook.c.patch
-
-            cp "$KERNEL_PATCHES/wild/susfs_fix_patches/v${SUSFS_VERSION}/fix_sucompat.c.patch" ./
-            patch -p1 < fix_sucompat.c.patch
-
-            cp "$KERNEL_PATCHES/wild/susfs_fix_patches/v${SUSFS_VERSION}/fix_kernel_compat.c.patch" ./
-            patch -p1 < fix_kernel_compat.c.patch
-
-      - name: Apply Hooks Patches
-        run: |
-          cd "$COMMON"
-          cp "$KERNEL_PATCHES/wild/hooks/scope_min_manual_hooks_v1.4.patch" ./         
-          
-          if [[ "${{ inputs.branch }}" == "SM-A366B" || "${{ inputs.branch }}" == "SM-A546B-Oneui7" || "${{ inputs.branch }}" == "SM-A566B" || "${{ inputs.branch }}" == "SM-S926B-Oneui8" ]]; then
-           patch -p1 < scope_min_manual_hooks_v1.4.patch || true
-          else
-           patch -p1 < scope_min_manual_hooks_v1.4.patch || true
-           patch -p1 < fix_exec.patch
-          fi
-
       - name: Add BBG
         run: |          
           cd "$COMMON"
           echo "Adding BBG..."
-          wget -O- https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh | bash
-          sed -i '/^config LSM$/,/^help$/{ /^[[:space:]]*default/ { /baseband_guard/! s/lockdown/lockdown,baseband_guard/ } }' security/Kconfig
-          cat security/Kconfig
+          curl -LSs https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh | bash
+          echo "CONFIG_BBG=y" >> common/arch/arm64/configs/gki_defconfig
+          sed -i '/^config LSM$/,/^help$/{ /^[[:space:]]*default/ { /baseband_guard/! s/selinux/selinux,baseband_guard/ } }' security/Kconfig
 
       - name: Set Kernel Configuration Variables
         run: |
           cd "$COMMON"
           echo "Initializing kernel configuration..."
-          patch -p1 < config.patch
+          cat >> "${{ env.DEFCONFIG }}" << 'EOF'
+          # KernelSU Configuration
+          CONFIG_KSU=y
+          CONFIG_KSU_SUSFS=y
+
+          # KPatch Next Support
+          CONFIG_KALLSYMS=y
+          CONFIG_KALLSYMS_ALL=y
+
+          # Mountify Support
+          CONFIG_TMPFS_XATTR=y
+          CONFIG_TMPFS_POSIX_ACL=y
+
+          # nuke root protection
+          CONFIG_UH=n
+          CONFIG_UH_RKP=n
+          CONFIG_UH_LKMAUTH=n
+          CONFIG_UH_LKM_BLOCK=n
+          CONFIG_RKP_CFP_JOPP=n
+          CONFIG_RKP_CFP=n
+          CONFIG_SECURITY_DEFEX=n
+          CONFIG_PROCA=n
+          CONFIG_FIVE=n
           
           # Remove check_defconfig
           sed -i 's/check_defconfig//' ./build.config.gki