Просмотр исходного кода

feat(action): implement Droidspaces-OSS setup and apply kernel patches for version-specific fixes
fix(action): add Baseband Guard step to build workflow based on feature set
refactor(action): update networking action to conditionally apply BBRv3 patch based on kernel version
refactor(action): remove obsolete SUSFS patches action

Co-authored-by: Copilot <copilot@github.com>

TheWildJames 4 месяцев назад
Родитель
Сommit
109dccdabb

+ 82 - 0
.github/actions/droidspaces/action.yml

@@ -0,0 +1,82 @@
+name: Setup Droidspaces-OSS
+description: Clone and apply Droidspaces-OSS patches with version-specific fixes
+inputs:
+  android_version:
+    description: 'Android version (e.g., android15)'
+    required: true
+  kernel_version:
+    description: 'Kernel version (e.g., 6.6)'
+    required: true
+  os_patch_level:
+    description: 'OS patch level (e.g., 2024-07)'
+    required: true
+  sublevel:
+    description: 'Kernel sublevel'
+    required: true
+
+runs:
+  using: composite
+  steps:
+    - name: Apply the SYSVIPC kABI fix
+      shell: bash
+      working-directory: ${{ github.workspace }}/kernel/common
+      run: |
+        if [ "${{ inputs.kernel_version }}" == "6.12" ]; then
+          curl -L https://raw.githubusercontent.com/ravindu644/Droidspaces-OSS/main/Documentation/resources/kernel-patches/GKI/kernel-6.12/001.GKI-6.12-or-above-fix_sysvipc_kabi.patch | patch -p1
+        else
+          curl -L https://raw.githubusercontent.com/ravindu644/Droidspaces-OSS/main/Documentation/resources/kernel-patches/GKI/below-kernel-6.12/001.GKI-below-6.12-fix_sysvipc_kabi_6_7_8.patch | patch -p1
+        fi
+
+    - name: Enable KernelSU SUSFS Config
+      shell: bash
+      working-directory: ${{ github.workspace }}/kernel
+      run: |
+        cat >> "${{ github.workspace }}/wild_gki.fragment" << 'EOF'
+        # Kernel configurations for full DroidSpaces support for GKI
+        # Copyright (C) 2026 ravindu644 <droidcasts@protonmail.com>
+
+        # IPC
+        CONFIG_SYSVIPC=y
+        CONFIG_POSIX_MQUEUE=y
+
+        # Namespaces
+        CONFIG_IPC_NS=y
+        CONFIG_PID_NS=y
+
+        # HW Access Support
+        CONFIG_DEVTMPFS=y
+
+        # --- Below configs are optional but recommended ---
+
+        # Networking (Docker/NAT support)
+        CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
+
+        # UFW support
+        CONFIG_NETFILTER_XT_TARGET_REJECT=y
+        CONFIG_NETFILTER_XT_TARGET_LOG=y
+        CONFIG_NETFILTER_XT_MATCH_RECENT=y
+
+        # Fail2ban support
+        CONFIG_IP_SET=y
+        CONFIG_IP_SET_HASH_IP=y
+        CONFIG_IP_SET_HASH_NET=y
+        CONFIG_NETFILTER_XT_SET=y
+        EOF
+
+    - name: Apply Android 15 6.6 Fixes
+      if: false
+      shell: bash
+      working-directory: ${{ github.workspace }}/kernel/common
+      run: |
+        SUBLEVEL=${{ env.SUBLEVEL }}
+        SUSFS_VERSION=${{ env.SUSFS_VERSION }}
+
+        if [[ "$SUBLEVEL" -le 92 ]]; then
+          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a15-6.6/base.c.patch ./
+          patch -p1 < base.c.patch
+        fi
+
+        if [[ "$SUBLEVEL" -le 58 ]]; then
+          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a15-6.6/task_mmu.c.patch ./
+          patch -p1 < task_mmu.c.patch
+        fi

+ 2 - 16
.github/actions/networking/action.yml

@@ -12,26 +12,12 @@ runs:
   using: "composite"
   steps:
     - name: Patch with BBRv3
-      if: false
+      if: ${{ inputs.kernel_version == '6.1' }}
       shell: bash
       working-directory: ${{ github.workspace }}/kernel/common
       run: |
         set -euo pipefail
-        cp -f "${{ github.workspace }}/kernel_patches/bbr/bbrv3-${{ inputs.android_version }}-${{ inputs.kernel_version }}.patch" .
-        patch -p1 < bbrv3-${{ inputs.android_version }}-${{ inputs.kernel_version }}.patch
-
-    - name: Fix modules.bzl
-      shell: bash
-      if: false
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        if [ "${{ inputs.kernel_version }}" = "6.1" ]; then
-          mods_file=modules.bzl
-          for m in "net/ipv4/tcp_bic.ko" "net/ipv4/tcp_htcp.ko" "net/ipv4/tcp_westwood.ko"; do
-            grep -q "'$m'" "$mods_file" && continue
-            sed -i "/_ARM64_GKI_MODULES_LIST = \[/,/^]/ s/^]/    \"$m\",\n]/" "$mods_file"
-          done
-        fi
+        curl -L https://raw.githubusercontent.com/ahmed-alnassif/GKI-Duchamp/dev/kernel-patches/bbrv3/bbrv3.patch | patch -p1
 
     - name: Apply Netfilter Base Config
       shell: bash

+ 0 - 129
.github/actions/susfs-patches/action.yml

@@ -1,129 +0,0 @@
-name: Setup SUSFS Patches
-description: Clone and apply SUSFS patches with version-specific fixes
-inputs:
-  android_version:
-    description: 'Android version (e.g., android15)'
-    required: true
-  kernel_version:
-    description: 'Kernel version (e.g., 6.6)'
-    required: true
-  os_patch_level:
-    description: 'OS patch level (e.g., 2024-07)'
-    required: true
-  sublevel:
-    description: 'Kernel sublevel'
-    required: true
-
-runs:
-  using: composite
-  steps:
-    - name: Apply Android 12 5.10 Fixes
-      if: inputs.android_version == 'android12' && inputs.kernel_version == '5.10'
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        SUBLEVEL=${{ env.SUBLEVEL }}
-        SUSFS_VERSION=${{ env.SUSFS_VERSION }}
-
-        if [[ "$SUBLEVEL" -le 209 ]]; then
-          sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
-        fi
-
-        if [[ "$SUBLEVEL" -le 117 ]]; then
-          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a12-5.10/fdinfo.c.patch ./
-          patch -p1 < fdinfo.c.patch
-        fi
-
-        if [[ "$SUBLEVEL" -le 43 ]]; then
-          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a12-5.10/base.c.patch ./
-          patch -p1 < base.c.patch
-        fi
-
-    - name: Apply Android 13 5.10 Fixes
-      if: inputs.android_version == 'android13' && inputs.kernel_version == '5.10'
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        SUBLEVEL=${{ env.SUBLEVEL }}
-        SUSFS_VERSION=${{ env.SUSFS_VERSION }}
-
-        if [[ "$SUBLEVEL" -le 107 ]]; then
-          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a13-5.10/fdinfo.c.patch ./
-          patch -p1 < fdinfo.c.patch
-        fi
-
-        if [[ "$SUBLEVEL" -le 209 && "${{ inputs.os_patch_level }}" != "2024-05" ]]; then
-          sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
-        fi
-
-    - name: Apply Android 13 5.15 Fixes
-      if: inputs.android_version == 'android13' && inputs.kernel_version == '5.15'
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        SUBLEVEL=${{ env.SUBLEVEL }}
-        SUSFS_VERSION=${{ env.SUSFS_VERSION }}
-        
-        if [[ "$SUBLEVEL" -le 41 ]]; then
-          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a13-5.15/namespace.c.patch ./
-          patch -p1 < namespace.c.patch
-
-          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a13-5.15/fdinfo.c.patch ./
-          patch -p1 < fdinfo.c.patch
-
-          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a13-5.15/open.c.patch ./
-          patch -p1 < open.c.patch
-
-          sed -i 's|i_uid_into_mnt(i_user_ns(&fi->inode), &fi->inode).val|fi->inode.i_uid.val|g' fs/susfs.c
-          sed -i 's|i_uid_into_mnt(i_user_ns(inode), inode).val|inode->i_uid.val|g' fs/susfs.c
-        fi
-
-        if [[ "$SUBLEVEL" -le 148 && "${{ inputs.os_patch_level }}" != "2024-05" ]]; then
-          sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
-        fi
-
-    - name: Apply Android 14 5.15 Fixes
-      if: inputs.android_version == 'android14' && inputs.kernel_version == '5.15'
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        SUBLEVEL=${{ env.SUBLEVEL }}
-
-        if [[ "$SUBLEVEL" -le 148 && "${{ inputs.os_patch_level }}" != "2024-05" ]]; then
-          sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
-        fi
-
-    - name: Apply Android 14 6.1 Fixes
-      if: inputs.android_version == 'android14' && inputs.kernel_version == '6.1'
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        SUBLEVEL=${{ env.SUBLEVEL }}
-        SUSFS_VERSION=${{ env.SUSFS_VERSION }}
-
-        if [[ "$SUBLEVEL" -le 0 ]]; then
-          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a14-6.1/base.c.patch ./
-          patch -p1 < base.c.patch
-        fi
-
-        if grep -q 'goto show_pad;' ./fs/proc/task_mmu.c; then
-          sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
-        fi
-
-    - name: Apply Android 15 6.6 Fixes
-      if: inputs.android_version == 'android15' && inputs.kernel_version == '6.6'
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        SUBLEVEL=${{ env.SUBLEVEL }}
-        SUSFS_VERSION=${{ env.SUSFS_VERSION }}
-
-        if [[ "$SUBLEVEL" -le 92 ]]; then
-          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a15-6.6/base.c.patch ./
-          patch -p1 < base.c.patch
-        fi
-
-        if [[ "$SUBLEVEL" -le 58 ]]; then
-          cp ${{ github.workspace }}/kernel_patches/wild/susfs_fix_patches/${SUSFS_VERSION}/a15-6.6/task_mmu.c.patch ./
-          patch -p1 < task_mmu.c.patch
-        fi

+ 6 - 0
.github/workflows/build.yml

@@ -129,6 +129,12 @@ jobs:
         kernel_version: ${{ steps.parse.outputs.kernel_version }}
         android_version: ${{ steps.parse.outputs.android_version }}
 
+    - name: Baseband Guard
+      if: contains(inputs.feature_set, 'DS') || inputs.feature_set == 'FULL'
+      uses: ./.github/actions/droidspaces
+      with:
+        kernel_version: ${{ steps.parse.outputs.kernel_version }}
+
     - name: Setup Misc Configs
       uses: ./.github/actions/misc
       with:

+ 4 - 1
.github/workflows/main.yml

@@ -32,15 +32,18 @@ on:
         description: "Feature Set"
         type: choice
         options:
-          - KSUN+SUSFS+BBG+NET
+          - KSUN+SUSFS+BBG+NET+DS
           - KSUN+SUSFS+BBG
           - KSUN+SUSFS+NET
+          - KSUN+SUSFS+DS
           - KSUN+SUSFS
           - KSUN+BBG
           - KSUN+NET
+          - KSUN+DS
           - KSUN
           - BBG
           - NET
+          - DS
           - NONE
           - FULL
         default: FULL