TheWildJames 3 сар өмнө
parent
commit
20f3c4c43f

+ 2 - 4
.github/actions/apply-kernel-branding/action.yml

@@ -33,12 +33,10 @@ runs:
         ANDROID_PART=$(echo "$VERSION" | cut -d- -f1)
         KERNEL_PART=$(echo "$VERSION" | cut -d- -f2)
 
-        tac scripts/setlocalversion | awk '!seen && /^echo / {seen=1; next} 1' | tac > scripts/setlocalversion.tmp
-        mv scripts/setlocalversion.tmp scripts/setlocalversion
         if [[ ${{ inputs.version }} == "android15-6.6" || ${{ inputs.version }} == "android16-6.12" ]]; then
           KERNEL_STRING="$KERNEL_PART.${{ inputs.sublevel }}-$ANDROID_PART"
-          echo "echo \"$KERNEL_STRING-Wild\"" >> scripts/setlocalversion
+          sed -i '$d' scripts/setlocalversion && echo "echo \"$KERNEL_STRING-Wild\"" >> scripts/setlocalversion
         else
-          echo "echo \"-$ANDROID_PART-Wild\"" >> scripts/setlocalversion
+          sed -i '$d' scripts/setlocalversion && echo "echo \"-$ANDROID_PART-Wild\"" >> scripts/setlocalversion
         fi
         chmod +x scripts/setlocalversion

+ 8 - 3
.github/actions/bbg/action.yml

@@ -14,9 +14,6 @@ runs:
       shell: bash
       working-directory: ${{ github.workspace }}/kernel
       run: |
-        # Add BBG to defconfig
-        echo "CONFIG_BBG=y" >> "${{ github.workspace }}/wild_gki.fragment"
-        
         # Modify security Kconfig to include baseband_guard in LSM
         sed -i '/^config LSM$/,/^help$/{ /^[[:space:]]*default/ { /baseband_guard/! s/selinux/selinux,baseband_guard/ } }' common/security/Kconfig
     
@@ -39,3 +36,11 @@ runs:
         # Extract and export BBG version info
         BBG_COMMIT=$(git rev-parse --short HEAD 2>/dev/null)
         echo "BBG_COMMIT=$BBG_COMMIT" >> $GITHUB_ENV
+
+    - name: Enable Kernel Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        defconfig: ${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig
+        fragment: ${{ github.workspace }}/wild_gki.fragment
+        configs: |
+          CONFIG_BBG

+ 18 - 3
.github/actions/droidspaces/action.yml

@@ -58,7 +58,7 @@ runs:
 
     - name: Export IPC symbols for module linkage
       shell: bash
-      if: 
+      if: inputs.version == 'android16-6.12'
       working-directory: ${{ github.workspace }}/kernel
       run: |
         echo >> "${{ github.workspace }}/kernel/common/ipc/namespace.c"
@@ -68,16 +68,31 @@ runs:
 
     - name: Enable Configs
       shell: bash
-      working-directory: ${{ github.workspace }}/kernel
+      working-directory: ${{ github.workspace }}/kernel/common
       run: |
+        sed -i 's/# CONFIG_PID_NS is not set/CONFIG_PID_NS=y/' arch/arm64/configs/gki_defconfig
         cat >> "${{ github.workspace }}/wild_gki.fragment" << 'EOF'
         CONFIG_SYSVIPC=y
         CONFIG_POSIX_MQUEUE=y
         CONFIG_IPC_NS=y
-        CONFIG_PID_NS=y
         CONFIG_DEVTMPFS=y
         CONFIG_BINFMT_MISC=y
         CONFIG_BINFMT_SCRIPT=y
         CONFIG_BINFMT_ELF=y
         EOF
 
+    - name: Enable Kernel Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        defconfig: ${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig
+        fragment: ${{ github.workspace }}/wild_gki.fragment
+        configs: |
+          CONFIG_PID_NS
+          CONFIG_SYSVIPC
+          CONFIG_POSIX_MQUEUE
+          CONFIG_IPC_NS
+          CONFIG_DEVTMPFS
+          CONFIG_BINFMT_MISC
+          CONFIG_BINFMT_SCRIPT
+          CONFIG_BINFMT_ELF
+

+ 9 - 11
.github/actions/kernelsu/action.yml

@@ -39,16 +39,6 @@ runs:
 
         KSU_GIT_TAG="$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.1")"
         sed -i "s/^KSU_VERSION_TAG_FALLBACK := v0.0.1$/KSU_VERSION_TAG_FALLBACK := ${KSU_GIT_TAG}/" Kbuild
-
-
-    - name: Enable KernelSU Config
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel
-      run: |
-        cat >> "${{ github.workspace }}/wild_gki.fragment" << 'EOF'
-        # KernelSU Configuration
-        CONFIG_KSU=y
-        EOF
     
     - name: Extract KSU Version Info
       id: ksu-version
@@ -71,4 +61,12 @@ runs:
       run: |
         set -euo pipefail
         cp ${{ github.action_path }}/patches/static.patch "${{ github.workspace }}/kernel/KernelSU-Next/static.patch"
-        patch -p1 < static.patch
+        patch -p1 < static.patch
+
+    - name: Enable Kernel Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        defconfig: ${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig
+        fragment: ${{ github.workspace }}/wild_gki.fragment
+        configs: |
+          CONFIG_KSU

+ 11 - 16
.github/actions/misc/action.yml

@@ -20,19 +20,14 @@ inputs:
 runs:
   using: "composite"
   steps:
-    - name: Apply Kernel Configuration
-      shell: bash
-      run: |
-        cat >> "${{ github.workspace }}/wild_gki.fragment" << 'EOF'
-        # Mountify Support
-        CONFIG_OVERLAY_FS=y
-        CONFIG_TMPFS_XATTR=y
-        CONFIG_TMPFS_POSIX_ACL=y
-
-        # KPatch-Next Support
-        CONFIG_KALLSYMS=y
-        CONFIG_KALLSYMS_ALL=y
-
-        EOF
-        # CONFIG_TRIM_UNUSED_KSYMS is not set
-        # add this here for later
+    - name: Enable Kernel Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        defconfig: ${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig
+        fragment: ${{ github.workspace }}/wild_gki.fragment
+        configs: |
+          CONFIG_OVERLAY_FS
+          CONFIG_TMPFS_XATTR
+          CONFIG_TMPFS_POSIX_ACL
+          CONFIG_KALLSYMS
+          CONFIG_KALLSYMS_ALL

+ 44 - 45
.github/actions/networking/action.yml

@@ -20,52 +20,52 @@ runs:
         curl -L https://raw.githubusercontent.com/ahmed-alnassif/GKI-Duchamp/dev/kernel-patches/bbrv3/bbrv3.patch | patch -p1
 
     - name: Add IP SET & IPv6_NAT Support
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel
-      run: |
-        cat >> "${{ github.workspace }}/wild_gki.fragment" << 'EOF'
-        CONFIG_IP_SET=y
-        CONFIG_IP_SET_MAX=65534
-        CONFIG_IP_SET_BITMAP_IP=y
-        CONFIG_IP_SET_BITMAP_IPMAC=y
-        CONFIG_IP_SET_BITMAP_PORT=y
-        CONFIG_IP_SET_HASH_IP=y
-        CONFIG_IP_SET_HASH_IPMARK=y
-        CONFIG_IP_SET_HASH_IPPORT=y
-        CONFIG_IP_SET_HASH_IPPORTIP=y
-        CONFIG_IP_SET_HASH_IPPORTNET=y
-        CONFIG_IP_SET_HASH_IPMAC=y
-        CONFIG_IP_SET_HASH_MAC=y
-        CONFIG_IP_SET_HASH_NETPORTNET=y
-        CONFIG_IP_SET_HASH_NET=y
-        CONFIG_IP_SET_HASH_NETNET=y
-        CONFIG_IP_SET_HASH_NETPORT=y
-        CONFIG_IP_SET_HASH_NETIFACE=y
-        CONFIG_IP_SET_LIST_SET=y
-        CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
-        CONFIG_NETFILTER_XT_SET=y
-        CONFIG_NETFILTER_XT_TARGET_LOG=y
-        CONFIG_NETFILTER_XT_MATCH_RECENT=y
-        CONFIG_IP6_NF_NAT=y
-        CONFIG_IP6_NF_TARGET_MASQUERADE=y
-        EOF
+      uses: ./.github/actions/set-kernel-config
+      with:
+        defconfig: ${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig
+        fragment: ${{ github.workspace }}/wild_gki.fragment
+        configs: |
+          CONFIG_IP_SET
+          CONFIG_IP_SET_MAX=65534
+          CONFIG_IP_SET_BITMAP_IP
+          CONFIG_IP_SET_BITMAP_IPMAC
+          CONFIG_IP_SET_BITMAP_PORT
+          CONFIG_IP_SET_HASH_IP
+          CONFIG_IP_SET_HASH_IPMARK
+          CONFIG_IP_SET_HASH_IPPORT
+          CONFIG_IP_SET_HASH_IPPORTIP
+          CONFIG_IP_SET_HASH_IPPORTNET
+          CONFIG_IP_SET_HASH_IPMAC
+          CONFIG_IP_SET_HASH_MAC
+          CONFIG_IP_SET_HASH_NETPORTNET
+          CONFIG_IP_SET_HASH_NET
+          CONFIG_IP_SET_HASH_NETNET
+          CONFIG_IP_SET_HASH_NETPORT
+          CONFIG_IP_SET_HASH_NETIFACE
+          CONFIG_IP_SET_LIST_SET
+          CONFIG_NETFILTER_XT_MATCH_ADDRTYPE
+          CONFIG_NETFILTER_XT_SET
+          CONFIG_NETFILTER_XT_TARGET_LOG
+          CONFIG_NETFILTER_XT_MATCH_RECENT
+          CONFIG_IP6_NF_NAT
+          CONFIG_IP6_NF_TARGET_MASQUERADE
 
     - name: Apply TCP Congestion Control
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel
-      run: |
-        cat >> "${{ github.workspace }}/wild_gki.fragment" << 'EOF'
-        CONFIG_TCP_CONG_ADVANCED=y
-        CONFIG_TCP_CONG_BBR=y
-        CONFIG_TCP_CONG_CUBIC=y
-        CONFIG_TCP_CONG_BIC=y
-        CONFIG_TCP_CONG_WESTWOOD=y
-        CONFIG_TCP_CONG_HTCP=y
-        CONFIG_DEFAULT_BBR=y
-        CONFIG_DEFAULT_TCP_CONG="bbr"
-        CONFIG_NET_SCH_FQ=y
-        CONFIG_NET_SCH_FQ_CODEL=y
-        EOF
+      uses: ./.github/actions/set-kernel-config
+      with:
+        defconfig: ${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig
+        fragment: ${{ github.workspace }}/wild_gki.fragment
+        configs: |
+          CONFIG_TCP_CONG_ADVANCED
+          CONFIG_TCP_CONG_BBR
+          CONFIG_TCP_CONG_CUBIC
+          CONFIG_TCP_CONG_BIC
+          CONFIG_TCP_CONG_WESTWOOD
+          CONFIG_TCP_CONG_HTCP
+          CONFIG_DEFAULT_BBR
+          CONFIG_DEFAULT_TCP_CONG="bbr"
+          CONFIG_NET_SCH_FQ
+          CONFIG_NET_SCH_FQ_CODEL
 
     - name: Apply Kernel Config for 5.10
       shell: bash
@@ -73,4 +73,3 @@ runs:
       if: inputs.kernel_version == '5.10'
       run: |
         sed -i 's/CONFIG_IP_SET_MAX/65534/g' net/netfilter/ipset/ip_set_core.c
-        

+ 72 - 0
.github/actions/set-kernel-config/action.yml

@@ -0,0 +1,72 @@
+# .github/actions/set-kernel-config/action.yml
+name: Set Kernel Config
+description: Enables kernel configs — handles =y, =n, "not set", missing, and arbitrary values
+
+inputs:
+  configs:
+    description: |
+      Newline-separated list of configs to set.
+      Plain name defaults to =y. Supply a value for anything else.
+      Examples:
+        CONFIG_PID_NS
+        CONFIG_IP_SET_MAX=65534
+        CONFIG_LOG_BUF_SHIFT=17
+    required: true
+  defconfig:
+    description: Path to the defconfig file
+    required: true
+  fragment:
+    description: Path to the .config fragment file (missing configs land here)
+    required: true
+
+runs:
+  using: composite
+  steps:
+    - name: Apply configs
+      shell: bash
+      run: |
+        DEFCONFIG="${{ inputs.defconfig }}"
+        FRAGMENT="${{ inputs.fragment }}"
+
+        touch "${FRAGMENT}"
+
+        set_config() {
+          local input="$1"
+
+          # Split name=value — default to =y if no value supplied
+          if [[ "$input" == *"="* ]]; then
+            local config="${input%%=*}"
+            local value="${input#*=}"
+          else
+            local config="$input"
+            local value="y"
+          fi
+
+          if grep -q "^${config}=${value}$" "${DEFCONFIG}"; then
+            echo "[SKIP]  ${config} already =${value} in defconfig"
+
+          elif grep -q "^${config}=" "${DEFCONFIG}"; then
+            # Present but wrong value — replace it
+            sed -i "s/^${config}=.*/${config}=${value}/" "${DEFCONFIG}"
+            echo "[FIX]   ${config} had wrong value → updated to =${value} in defconfig"
+
+          elif grep -q "# ${config} is not set" "${DEFCONFIG}"; then
+            sed -i "s/# ${config} is not set/${config}=${value}/" "${DEFCONFIG}"
+            echo "[FIX]   ${config} was 'not set' → set to =${value} in defconfig"
+
+          else
+            if ! grep -q "^${config}=${value}$" "${FRAGMENT}"; then
+              echo "${config}=${value}" >> "${FRAGMENT}"
+              echo "[FRAG]  ${config} not found → added =${value} to fragment"
+            else
+              echo "[SKIP]  ${config} already =${value} in fragment"
+            fi
+          fi
+        }
+
+        while IFS= read -r line; do
+          # Strip whitespace, skip blanks and comments
+          line="$(echo "$line" | tr -d '[:space:]')"
+          [[ -z "$line" || "$line" == \#* ]] && continue
+          set_config "$line"
+        done <<< "${{ inputs.configs }}"

+ 15 - 16
.github/actions/susfs/action.yml

@@ -44,22 +44,21 @@ runs:
         fi
 
     - name: Enable KernelSU SUSFS Config
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel
-      run: |
-        cat >> "${{ github.workspace }}/wild_gki.fragment" << 'EOF'
-        # KernelSU SUSFS Configuration
-        CONFIG_KSU_SUSFS=y
-        CONFIG_KSU_SUSFS_SUS_PATH=y
-        CONFIG_KSU_SUSFS_SUS_MOUNT=y
-        CONFIG_KSU_SUSFS_SUS_KSTAT=y
-        CONFIG_KSU_SUSFS_SPOOF_UNAME=y
-        CONFIG_KSU_SUSFS_ENABLE_LOG=y
-        CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y
-        CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y
-        CONFIG_KSU_SUSFS_OPEN_REDIRECT=y
-        CONFIG_KSU_SUSFS_SUS_MAP=y
-        EOF
+      uses: ./.github/actions/set-kernel-config
+      with:
+        defconfig: ${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig
+        fragment: ${{ github.workspace }}/wild_gki.fragment
+        configs: |
+          CONFIG_KSU_SUSFS
+          CONFIG_KSU_SUSFS_SUS_PATH
+          CONFIG_KSU_SUSFS_SUS_MOUNT
+          CONFIG_KSU_SUSFS_SUS_KSTAT
+          CONFIG_KSU_SUSFS_SPOOF_UNAME
+          CONFIG_KSU_SUSFS_ENABLE_LOG
+          CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS
+          CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG
+          CONFIG_KSU_SUSFS_OPEN_REDIRECT
+          CONFIG_KSU_SUSFS_SUS_MAP
 
     - name: Apply KSU SUSFS Patches
       if: false