Full Code of ShirkNeko/GKI_KernelSU_SUSFS for AI

main ee42af6a6a06 cached
20 files
113.7 KB
33.5k tokens
1 symbols
1 requests
Download .txt
Repository: ShirkNeko/GKI_KernelSU_SUSFS
Branch: main
Commit: ee42af6a6a06
Files: 20
Total size: 113.7 KB

Directory structure:
gitextract_gsh06kp2/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   └── feature_request.yml
│   └── workflows/
│       ├── build-kernel-a12-5-10.yml
│       ├── build-kernel-a13-5-10.yml
│       ├── build-kernel-a13-5-15.yml
│       ├── build-kernel-a14-5-15.yml
│       ├── build-kernel-a14-6-1.yml
│       ├── build-kernel-a15-6-6.yml
│       ├── get-manager.yml
│       ├── gki-kernel.yml
│       ├── kernel-a12-5.10.yml
│       ├── kernel-a13-5.10.yml
│       ├── kernel-a13-5.15.yml
│       ├── kernel-a14-5.15.yml
│       ├── kernel-a14-6.1.yml
│       ├── kernel-a15-6.6.yml
│       └── test_release.yml
├── Original.md
├── README.md
└── hmbird_patch.c

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug Report
description: Create a bug report
labels: [Bug]

body:
  - type: textarea
    attributes:
        label: Describe the bug
        description: A clear and concise description of what the bug is
    validations:
        required: true
      

  - type: textarea
    attributes:
        label: To Reproduce
        description: Steps to reproduce the behaviour
        placeholder: |
          - 1. Go to '...'
          - 2. Click on '....'
          - 3. Scroll down to '....'
          - 4. See error
          

  - type: textarea
    attributes:
        label: Expected behavior
        description: A clear and concise description of what you expected to happen.
    
    
  - type: textarea
    attributes:
        label: Screenshots
        description: If applicable, add screenshots to help explain your problem.
        
        
  - type: textarea
    attributes:
        label: Logs
        description: If applicable, add crash or any other logs to help us figure out the problem.
        
        
  - type: textarea
    attributes:
        label: Device info
        value: |
          - Device:
          - OS Version:
          - KernelSU Version:
          - Kernel Version:
          - SUSFS Version:
    validations:
        required: true


  - type: textarea
    attributes:
        label: Additional context
        description: Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Feature Request
description: Create a feature request
labels: [Feature Request]

body:
  - type: textarea
    attributes:
        label: Describe the feature
        description: A clear and concise description of what the feature is.
    validations:
        required: true
      

  - type: textarea
    attributes:
        label: Link to documentation 
        description:  A clear and concise documentation.
    
  - type: textarea
    attributes:
        label: Screenshots
        description: If applicable, add screenshots to help explain your problem.

  - type: textarea
    attributes:
        label: Additional context
        description: Add any other context here.


================================================
FILE: .github/workflows/build-kernel-a12-5-10.yml
================================================
name: 编译内核a12-5-10

permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions
  
on:
  workflow_dispatch:
    inputs:
      kernelsu_variant:
        # description: "选择 KernelSU | 注意:选中MKSU时为标准版"
        description: "选择 KernelSU"
        required: true
        type: choice
        options:
          - Official
          - Next
          - MKSU
          - SukiSU
        default: SukiSU
      kernelsu_branch:
        description: "选择 ksu 分支"
        required: true
        type: choice
        options:
          - Stable(标准)
          - Dev(开发)
          - Other(其他/指定)
        default: Dev(开发)
      # kernelsu_branch_other:
      #   description: "如果选择了 “其他”,请指定您的自定义分支"
      #   required: false
      #   type: string  # This input is required if 'Other' is chosen
      version:
        description: '自定义版本名(如5.10.198后面的字符/留空则使用默认版本号)'
        required: false
        type: string
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      get_manager:
        description: '是否同时获取最新KSU管理器?(实验性功能,报错请关闭)'
        required: true
        type: boolean
        default: true
jobs:
  build-kernel-a12-5-10:
    uses: ./.github/workflows/kernel-a12-5.10.yml
    secrets: inherit
    with:
      make_release: false
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      # kernelsu_branch_other: ${{ inputs.kernelsu_branch_other }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
  get-ksu-manager:
    if: ${{ inputs.get_manager }}
    uses: ./.github/workflows/get-manager.yml
    secrets: inherit
    with:
      kernelsu_variant: ${{ inputs.kernelsu_variant }}

  # build-kernel-a13-5-10:
  #   uses: ./.github/workflows/kernel-a13-5.10.yml
  #   secrets: inherit
  #   with:
  #     make_release: ${{ inputs.make_release }}
  #     kernelsu_variant: ${{ inputs.kernelsu_variant }}
  #     kernelsu_branch: ${{ inputs.kernelsu_branch }}
  #     kernelsu_branch_other: ${{ inputs.kernelsu_branch_other }}
  #     version: ${{ inputs.version }}

  # build-kernel-a13-5-15:
  #   uses: ./.github/workflows/kernel-a13-5.15.yml
  #   secrets: inherit
  #   with:
  #     make_release: ${{ inputs.make_release }}
  #     kernelsu_variant: ${{ inputs.kernelsu_variant }}
  #     kernelsu_branch: ${{ inputs.kernelsu_branch }}
  #     kernelsu_branch_other: ${{ inputs.kernelsu_branch_other }}
  #     version: ${{ inputs.version }}

  # build-kernel-a14-5-15:
  #   uses: ./.github/workflows/kernel-a14-5.15.yml
  #   secrets: inherit
  #   with:
  #     make_release: ${{ inputs.make_release }}
  #     kernelsu_variant: ${{ inputs.kernelsu_variant }}
  #     kernelsu_branch: ${{ inputs.kernelsu_branch }}
  #     kernelsu_branch_other: ${{ inputs.kernelsu_branch_other }}
  #     version: ${{ inputs.version }}

  # build-kernel-a14-6-1:
  #   uses: ./.github/workflows/kernel-a14-6.1.yml
  #   secrets: inherit
  #   with:
  #     make_release: ${{ inputs.make_release }}
  #     kernelsu_variant: ${{ inputs.kernelsu_variant }}
  #     kernelsu_branch: ${{ inputs.kernelsu_branch }}
  #     kernelsu_branch_other: ${{ inputs.kernelsu_branch_other }}
  #     version: ${{ inputs.version }}

  # build-kernel-a15-6-6:
  #   uses: ./.github/workflows/kernel-a15-6.6.yml
  #   secrets: inherit
  #   with:
  #     make_release: ${{ inputs.make_release }}
  #     kernelsu_variant: ${{ inputs.kernelsu_variant }}
  #     kernelsu_branch: ${{ inputs.kernelsu_branch }}
  #     kernelsu_branch_other: ${{ inputs.kernelsu_branch_other }}
  #     version: ${{ inputs.version }}

  # trigger-release:
  #   runs-on: ubuntu-latest
  #   needs:
  #       - build-kernel-a12-5-10
  #       - build-kernel-a13-5-10
  #       - build-kernel-a13-5-15
  #       - build-kernel-a14-5-15
  #       - build-kernel-a14-6-1
  #       - build-kernel-a15-6-6
  #   if: ${{ inputs.make_release }}
  #   env:
  #     REPO_OWNER: WildPlusKernel
  #     REPO_NAME: GKI_KernelSU_SUSFS
  #     GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  #     RELEASE_NAME: "*TEST BUILD* GKI Kernels With KernelSU-${{ inputs.kernelsu_variant }} ${{ inputs.kernelsu_branch }} & SUSFS v1.5.5 *TEST BUILD*"
  #     RELEASE_NOTES: |
  #       This release contains KernelSU-${{ inputs.kernelsu_variant }} ${{ inputs.kernelsu_branch }} and SUSFS v1.5.5
        
  #       Features:
  #       -> KernelSU-${{ inputs.kernelsu_variant }}-${{ inputs.kernelsu_branch }}
  #       -> SUSFS ඞ v1.5.5 
  #       -> Manual Syscall Hooks for Better Hiding
  #       -> Magic Mount Support
  #       -> Simple Maphide for LineageOS Detections
  #       -> Futile Maphide for jit-zygote-cache Detections
  #       -> Wireguard Support
  #       -> BBR Support

  #       Notes:
  #       -> SUS SU Mode 2 will show as disabled or not compatble due to non-kprobe hooks and is not needed anymore!
  #       -> Kernel Flasher is broken with latest susfs, try https://github.com/libxzr/HorizonKernelFlasher!

  #       Module: 
  #       -> https://github.com/sidex15/ksu_module_susfs
        
  #   steps:
  #     # Checkout the code
  #     - name: Checkout code
  #       uses: actions/checkout@v3

  #     - name: Determine the branch for KernelSU-${{ inputs.kernelsu_variant }}
  #       if: ${{ inputs.kernelsu_branch == 'Dev(开发)' || inputs.kernelsu_variant == 'MKSU' }}
  #       run: |
  #         # Determine the branch based on user input
  #         if [[ "${{ inputs.kernelsu_variant }}" == "Official" || "${{ inputs.kernelsu_variant }}" == "MKSU" ]]; then
  #           BRANCH="main"
  #         elif [[ "${{ inputs.kernelsu_variant }}" == "Next" ]]; then
  #           BRANCH="next"
  #         elif [[ "${{ inputs.kernelsu_branch }}" == "Other(其他/指定)" && -n "${{ inputs.kernelsu_branch_other }}" ]]; then
  #           BRANCH="${{ inputs.kernelsu_branch_other }}"
  #         else
  #           echo "Error: Custom branch not provided for 'Other(其他/指定)'" >&2
  #           exit 1
  #         fi

  #         # Store the selected branch in GITHUB_ENV
  #         echo "KSU_BRANCH=$BRANCH" >> $GITHUB_ENV

  #     - name: Get commit hash or tag and generate URL for KernelSU-${{ inputs.kernelsu_variant }}
  #       run: |
  #         if [ "${{ inputs.kernelsu_variant }}" == "Official" ]; then
  #           echo "This is the Official variant"
  #           REPO_URL="https://github.com/tiann/KernelSU.git"
  #           REPO_URL2="tiann/KernelSU"
  #         elif [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
  #           echo "This is the Next variant"
  #           REPO_URL="https://github.com/KernelSU-Next/KernelSU-Next.git"
  #           REPO_URL2="KernelSU-Next/KernelSU-Next"
  #         elif [ "${{ inputs.kernelsu_variant }}" == "MKSU" ]; then
  #           echo "This is the MKSU variant"
  #           REPO_URL="https://github.com/5ec1cff/KernelSU.git"
  #           REPO_URL2="5ec1cff/KernelSU"
  #         else
  #           echo "Unknown variant"
  #         fi
          
  #         if [[ "${{ inputs.kernelsu_branch }}" == "Stable(标准)" && "${{ inputs.kernelsu_variant }}" != "MKSU" ]]; then
  #           # Fetch the latest tag
  #           TAG=$(git ls-remote --tags --sort=-v:refname $REPO_URL | grep -o 'refs/tags/.*' | cut -d'/' -f3 | head -n1)
  #           if [[ -z "$TAG" ]]; then
  #             echo "Error: Could not fetch latest tag for Stable(标准)" >&2
  #             exit 1
  #           fi
  #           KSU_REF=$TAG
  #           KSU_URL="https://github.com/$REPO_URL2/releases/tag/$TAG"

  #         elif [[ "${{ inputs.kernelsu_branch }}" == "Dev(开发)" || "${{ inputs.kernelsu_variant }}" == "MKSU" ]]; then
  #           # Fetch the latest commit from "next" branch
  #           COMMIT_HASH=$(git ls-remote $REPO_URL refs/heads/$KSU_BRANCH | awk '{ print $1 }')
  #           if [[ -z "$COMMIT_HASH" ]]; then
  #             echo "Error: Could not fetch latest commit for Dev(开发)" >&2
  #             exit 1
  #           fi
  #           KSU_REF=$COMMIT_HASH
  #           KSU_URL="https://github.com/$REPO_URL2/commit/$COMMIT_HASH"

  #         else
  #           # Fetch the specific tag
  #           TAG=${{ inputs.kernelsu_branch_other }}
  #           if git ls-remote --tags $REPO_URL | grep -q "refs/tags/$TAG"; then
  #             KSU_REF=$TAG
  #             KSU_URL="https://github.com/$REPO_URL2/releases/tag/$TAG"
  #           else
  #             echo "Error: Specified tag '$TAG' not found in KernelSU-Next" >&2
  #             exit 1
  #           fi
  #         fi

  #         # Echo the values to GitHub environment for later use
  #         echo "KSU_REF=$KSU_REF" >> $GITHUB_ENV
  #         echo "KSU_URL=$KSU_URL" >> $GITHUB_ENV
  #         echo "KernelSU Reference: $KSU_REF"
  #         echo "KernelSU URL: $KSU_URL"

  #     - name: Get commit hashes and generate commit URLs
  #       run: |
  #         GITLAB_OWNER="simonpunk"
  #         GITLAB_REPO="susfs4ksu"

  #         declare -A BRANCH_MAP=(
  #           ["gki_android12_5_10"]="gki-android12-5.10"
  #           ["gki_android13_5_10"]="gki-android13-5.10"
  #           ["gki_android13_5_15"]="gki-android13-5.15"
  #           ["gki_android14_5_15"]="gki-android14-5.15"
  #           ["gki_android14_6_1"]="gki-android14-6.1"
  #         )

  #         for var_name in "${!BRANCH_MAP[@]}"; do
  #           branch_name="${BRANCH_MAP[$var_name]}"
  #           COMMIT_HASH=$(git ls-remote https://gitlab.com/$GITLAB_OWNER/$GITLAB_REPO.git refs/heads/$branch_name | awk '{ print $1 }')

  #           if [[ -n "$COMMIT_HASH" ]]; then
  #             COMMIT_URL="https://gitlab.com/$GITLAB_OWNER/$GITLAB_REPO/-/commit/$COMMIT_HASH"
  #             echo "$branch_name Commit: $COMMIT_HASH"
  #             echo "$branch_name Commit URL: $COMMIT_URL"

  #             # Store commit hash and commit URL in GitHub environment
  #             echo "COMMIT_HASH_${var_name}=$COMMIT_HASH" >> "$GITHUB_ENV"
  #             echo "COMMIT_URL_${var_name}=$COMMIT_URL" >> "$GITHUB_ENV"
  #           fi
  #         done

  #     - name: Append Commit Hashes & Links to `RELEASE_NOTES` & Append KernelSU-Next Reference to `RELEASE_NOTES`
  #       run: |
  #         if [ "${{ inputs.kernelsu_variant }}" == "Official" ]; then
  #           echo "This is the Official variant"
  #           echo "RELEASE_NOTES<<EOF" >> $GITHUB_ENV
  #           echo "$RELEASE_NOTES" >> $GITHUB_ENV
  #           echo "Official Manager:" >> $GITHUB_ENV
  #           echo "-> https://github.com/tiann/KernelSU" >> $GITHUB_ENV
  #           echo "EOF" >> $GITHUB_ENV
  #         elif [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
  #           echo "This is the Next variant"
  #           echo "RELEASE_NOTES<<EOF" >> $GITHUB_ENV
  #           echo "$RELEASE_NOTES" >> $GITHUB_ENV
  #           echo "Next Manager:" >> $GITHUB_ENV
  #           echo "-> https://github.com/KernelSU-Next/KernelSU-Next" >> $GITHUB_ENV
  #           echo "EOF" >> $GITHUB_ENV
  #         elif [ "${{ inputs.kernelsu_variant }}" == "MKSU" ]; then
  #           echo "This is the MKSU variant"
  #           echo "RELEASE_NOTES<<EOF" >> $GITHUB_ENV
  #           echo "$RELEASE_NOTES" >> $GITHUB_ENV
  #           echo "MKSU Manager:" >> $GITHUB_ENV
  #           echo "-> https://github.com/5ec1cff/KernelSU" >> $GITHUB_ENV
  #           echo "EOF" >> $GITHUB_ENV
  #         else
  #           echo "Unknown variant"
  #         fi
          
  #     - name: Append Commit Hashes & Links to `RELEASE_NOTES` & Append KernelSU-Next Reference to `RELEASE_NOTES`
  #       run: |
  #         echo "RELEASE_NOTES<<EOF" >> $GITHUB_ENV
  #         echo "$RELEASE_NOTES" >> $GITHUB_ENV
  #         echo "" >> $GITHUB_ENV
  #         echo "LTO: thin" >> $GITHUB_ENV
  #         echo "" >> $GITHUB_ENV
  #         echo "Commit Hashes and Links:" >> $GITHUB_ENV
  #         echo "KernelSU:" >> $GITHUB_ENV
  #         echo "${{ inputs.kernelsu_variant }}-${{ inputs.kernelsu_branch }}: [$KSU_REF]($KSU_URL)" >> $GITHUB_ENV
  #         echo "SUSFS4KSU:" >> $GITHUB_ENV
  #         echo "gki-android12-5.10: [$COMMIT_HASH_gki_android12_5_10]($COMMIT_URL_gki_android12_5_10)" >> $GITHUB_ENV
  #         echo "gki-android13-5.10: [$COMMIT_HASH_gki_android13_5_10]($COMMIT_URL_gki_android13_5_10)" >> $GITHUB_ENV
  #         echo "gki-android13-5.15: [$COMMIT_HASH_gki_android13_5_15]($COMMIT_URL_gki_android13_5_15)" >> $GITHUB_ENV
  #         echo "gki-android14-5.15: [$COMMIT_HASH_gki_android14_5_15]($COMMIT_URL_gki_android14_5_15)" >> $GITHUB_ENV
  #         echo "gki-android14-6.1: [$COMMIT_HASH_gki_android14_6_1]($COMMIT_URL_gki_android14_6_1)" >> $GITHUB_ENV
  #         echo "" >> $GITHUB_ENV
  #         echo "EOF" >> $GITHUB_ENV
          
  #     # Get the Latest Tag from GitHub
  #     - name: Generate and Create New Tag
  #       env:
  #         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  #       run: |
  #           # Fetch the latest tag from GitHub (this is the latest tag based on the GitHub API)
  #           LATEST_TAG=$(gh api repos/$REPO_OWNER/$REPO_NAME/tags --jq '.[0].name')
  #           if [ -z "$LATEST_TAG" ]; then
  #             LATEST_TAG="v1.5.5-r0"
  #           fi
            
  #           NEW_TAG=$(echo "$LATEST_TAG" | awk -F'-r' '{suffix=$2; if (!suffix) suffix=0; suffix++; printf "%s-r%d", $1, suffix}')
            
  #           # Output the new tag to be used
  #           echo "New tag: $NEW_TAG"
            
  #           # Set the new tag as an environment variable to be used in later steps
  #           echo "NEW_TAG=${NEW_TAG}" >> $GITHUB_ENV
            
  #           # Create the tag in the repository
  #           git tag $NEW_TAG
  #           git push --tags

  #     # Download Artifacts for A12 (Only if A12 Build is successful or input is true or empty)
  #     - name: Download Artifacts
  #       uses: actions/download-artifact@v4
  #       with:
  #         path: ./downloaded-artifacts
          
  #     # Create GitHub Release and upload files if make_release is true
  #     - name: Create GitHub Release
  #       uses: actions/create-release@v1
  #       with:
  #         tag_name: ${{ env.NEW_TAG }}  # Use the generated tag for the release
  #         prerelease: true  # Mark the release as a pre-release
  #         release_name: ${{ env.RELEASE_NAME }}  # Pass the RELEASE_NAME to the action
  #         body: ${{ env.RELEASE_NOTES }}  # Pass the RELEASE_NOTES to the action

  #     - name: Upload Release Assets Dynamically
  #       run: |
  #         # Loop through all files in the downloaded-artifacts directory
  #         for file in ./downloaded-artifacts/kernel-*/*; do
  #             # Skip directories
  #             if [ -d "$file" ]; then
  #                 continue
  #             fi

  #             # Upload the file to the GitHub release
  #             echo "Uploading $file..."
  #             gh release upload ${{ env.NEW_TAG }} "$file"
  #         done

  #     # Display Files Uploaded
  #     - name: Display Files Uploaded
  #       run: |
  #         echo "GitHub release created with the following files:"
  #         ls ./downloaded-artifacts/**/*

  #     - name: send telegram message on push
  #       env:
  #         TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
  #         TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
  #         TELEGRAM_MESSAGE_THREAD_ID: ${{ secrets.TELEGRAM_MESSAGE_THREAD_ID }}
  #       run: |
  #         curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
  #           -d "chat_id=$TELEGRAM_CHAT_ID" \
  #           -d "message_thread_id=$TELEGRAM_MESSAGE_THREAD_ID" \
  #           -d "text=Latest release: 
  #           https://github.com/WildPlusKernel/GKI_KernelSU_SUSFS/releases/tag/${{ env.NEW_TAG }}
            
  #           ${{ env.RELEASE_NOTES }}"


================================================
FILE: .github/workflows/build-kernel-a13-5-10.yml
================================================
name: 编译内核a13-5-10

permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions
  
on:
  workflow_dispatch:
    inputs:
      kernelsu_variant:
        description: "选择 KernelSU"
        required: true
        type: choice
        options:
          - Official
          - Next
          - MKSU
          - SukiSU
        default: SukiSU
      kernelsu_branch:
        description: "选择 ksu 分支"
        required: true
        type: choice
        options:
          - Stable(标准)
          - Dev(开发)
          - Other(其他/指定)
        default: Dev(开发)
      version:
        description: '自定义版本名(如5.10.198后面的字符/留空则使用默认版本号)'
        required: false
        type: string
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      get_manager:
        description: '是否同时获取最新KSU管理器?(实验性功能,报错请关闭)'
        required: true
        type: boolean
        default: true
jobs:

  build-kernel-a13-5-10:
    uses: ./.github/workflows/kernel-a13-5.10.yml
    secrets: inherit
    with:
      make_release: false
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
  get-ksu-manager:
    if: ${{ inputs.get_manager }}
    uses: ./.github/workflows/get-manager.yml
    secrets: inherit
    with:
      kernelsu_variant: ${{ inputs.kernelsu_variant }}



================================================
FILE: .github/workflows/build-kernel-a13-5-15.yml
================================================
name: 编译内核a13-5-15

permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions
  
on:
  workflow_dispatch:
    inputs:
      kernelsu_variant:
        description: "选择 KernelSU"
        required: true
        type: choice
        options:
          - Official
          - Next
          - MKSU
          - SukiSU
        default: SukiSU
      kernelsu_branch:
        description: "选择 ksu 分支"
        required: true
        type: choice
        options:
          - Stable(标准)
          - Dev(开发)
          - Other(其他/指定)
        default: Dev(开发)
      version:
        description: '自定义版本名(如5.15.167后面的字符/留空则使用默认版本号)'
        required: false
        type: string
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      set_defbbr:
        description: '是否将BBR设为默认拥塞算法?(实验性)'
        required: true
        type: boolean
        default: false
      get_manager:
        description: '是否同时获取最新KSU管理器?(实验性功能,报错请关闭)'
        required: true
        type: boolean
        default: true
jobs:

  build-kernel-a13-5-15:
    uses: ./.github/workflows/kernel-a13-5.15.yml
    secrets: inherit
    with:
      make_release: false
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
  get-ksu-manager:
    if: ${{ inputs.get_manager }}
    uses: ./.github/workflows/get-manager.yml
    secrets: inherit
    with:
      kernelsu_variant: ${{ inputs.kernelsu_variant }}



================================================
FILE: .github/workflows/build-kernel-a14-5-15.yml
================================================
name: 编译内核a14-5-15

permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions
  
on:
  workflow_dispatch:
    inputs:
      kernelsu_variant:
        description: "选择 KernelSU"
        required: true
        type: choice
        options:
          - Official
          - Next
          - MKSU
          - SukiSU
        default: SukiSU
      kernelsu_branch:
        description: "选择 ksu 分支"
        required: true
        type: choice
        options:
          - Stable(标准)
          - Dev(开发)
          - Other(其他/指定)
        default: Dev(开发)
      version:
        description: '自定义版本名(如5.15.167后面的字符/留空则使用默认版本号)'
        required: false
        type: string
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      get_manager:
        description: '是否同时获取最新KSU管理器?(实验性功能,报错请关闭)'
        required: true
        type: boolean
        default: true
jobs:

  build-kernel-a14-5-15:
    uses: ./.github/workflows/kernel-a14-5.15.yml
    secrets: inherit
    with:
      make_release: false
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
  get-ksu-manager:
    if: ${{ inputs.get_manager }}
    uses: ./.github/workflows/get-manager.yml
    secrets: inherit
    with:
      kernelsu_variant: ${{ inputs.kernelsu_variant }}



================================================
FILE: .github/workflows/build-kernel-a14-6-1.yml
================================================
name: 编译内核a14-6-1

permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions
  
on:
  workflow_dispatch:
    inputs:
      kernelsu_variant:
        description: "选择 KernelSU"
        required: true
        type: choice
        options:
          - Official
          - Next
          - MKSU
          - SukiSU
        default: SukiSU
      kernelsu_branch:
        description: "选择 ksu 分支"
        required: true
        type: choice
        options:
          - Stable(标准)
          - Dev(开发)
          - Other(其他/指定)
        default: Dev(开发)
      version:
        description: '自定义版本名(如6.1.93后面的字符/留空则使用默认版本号)'
        required: false
        type: string
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      get_manager:
        description: '是否同时获取最新KSU管理器?(实验性功能,报错请关闭)'
        required: true
        type: boolean
        default: true
jobs:

  build-kernel-a14-6-1:
    uses: ./.github/workflows/kernel-a14-6.1.yml
    secrets: inherit
    with:
      make_release: false
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
  get-ksu-manager:
    if: ${{ inputs.get_manager }}
    uses: ./.github/workflows/get-manager.yml
    secrets: inherit
    with:
      kernelsu_variant: ${{ inputs.kernelsu_variant }}



================================================
FILE: .github/workflows/build-kernel-a15-6-6.yml
================================================
name: 编译内核a15-6-6

permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions
  
on:
  workflow_dispatch:
    inputs:
      kernelsu_variant:
        description: "选择 KernelSU"
        required: true
        type: choice
        options:
          - Official
          - Next
          - MKSU
          - SukiSU
        default: SukiSU
      kernelsu_branch:
        description: "选择 ksu 分支"
        required: true
        type: choice
        options:
          - Stable(标准)
          - Dev(开发)
          - Other(其他/指定)
        default: Dev(开发)
      version:
        description: '自定义版本名(如位于6.6.77-android15-8<自定义版本名>/留空则使用默认版本号)'
        required: false
        type: string
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: false
        type: boolean
        default: true
      supp_op:
        description: '是否开启一加8E处理器机型支持?(非该机型无须勾)'
        required: false
        type: boolean
        default: false
      get_manager:
        description: '是否同时获取最新KSU管理器?(实验性功能,报错请关闭)'
        required: true
        type: boolean
        default: true
jobs:

 build-kernel-a15-6-6:
    uses: ./.github/workflows/kernel-a15-6.6.yml
    secrets: inherit
    with:
      make_release: false
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      supp_op: ${{ inputs.supp_op }}
 get-ksu-manager:
    if: ${{ inputs.get_manager }}
    uses: ./.github/workflows/get-manager.yml
    secrets: inherit
    with:
      kernelsu_variant: ${{ inputs.kernelsu_variant }}


================================================
FILE: .github/workflows/get-manager.yml
================================================
name: GetManager
permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: read   # Allows triggering actions

on:
  workflow_call: # This allows this workflow to be called from another workflow
    inputs:
      kernelsu_variant:
        required: true
        type: string

jobs:
  get_ksu_manager:
    runs-on: ubuntu-latest
    env:
      CCACHE_COMPILERCHECK: "%compiler% -dumpmachine; %compiler% -dumpversion"
      CCACHE_NOHASHDIR: "true"
      CCACHE_HARDLINK: "true"
      GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

    steps:
      - name: 安装依赖
        run: sudo apt update && sudo apt upgrade -y && sudo apt install -y git curl jq

      - name: 设定 KSU 环境变量
        run: |
          if [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
            echo "This is the Next variant"
            git clone https://github.com/KernelSU-Next/KernelSU-Next.git
            cd KernelSU-Next
            KSU_GIT_VERSION=$(git rev-list --count HEAD)
            # ???
            KSU_VERSION=$((10000 + KSU_GIT_VERSION + 200))
            echo $KSU_VERSION
            echo "KSU_VERSION=$KSU_VERSION" >> $GITHUB_ENV
          elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
            echo "This is the SukiSU variant"
            git clone https://github.com/SukiSU-Ultra/SukiSU-Ultra.git
            cd SukiSU-Ultra
            KSU_GIT_VERSION=$(git rev-list --count HEAD)
            KSU_VERSION=$((10000 + KSU_GIT_VERSION + 700))
            echo $KSU_VERSION
            echo "KSU_VERSION=$KSU_VERSION" >> $GITHUB_ENV
          else
            echo "Unknown variant"
          fi

      - name: 添加 KernelSU
        run: |
          if [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
            echo "KernelSU Next..."
            REPO="KernelSU-Next/KernelSU-Next"
            FILENAME="build-manager-ci.yml"
          elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
            echo "SukiSU..."
            REPO="SukiSU-Ultra/SukiSU-Ultra"
            FILENAME="build-manager.yml"
          fi

          # 获取最新成功构建的 ID
          BUILD_ID=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
          "https://api.github.com/repos/$REPO/actions/workflows/$FILENAME/runs?status=success" | \
          jq -r '.workflow_runs[0].id')
          echo 'BUILD_ID=$BUILD_ID'
          # 获取该构建的 Artifacts
          ARTIFACTS=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
            "https://api.github.com/repos/$REPO/actions/runs/$BUILD_ID/artifacts")
          echo 'ARTIFACTS=$ARTIFACTS'
          # 获取 Manager 文件的下载链接
          if [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
            DOWNLOAD_URL=$(echo "$ARTIFACTS" | jq -r '.artifacts[] | select(.name | contains("Manager")) | .archive_download_url')
          elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
            DOWNLOAD_URL=$(echo "$ARTIFACTS" | jq -r '.artifacts[] | select(.name | contains("Manager")) | .archive_download_url')
          fi

          # 下载 Manager 文件
          curl -L -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -o "${{ inputs.kernelsu_variant }}-管理器(${{ env.KSU_VERSION }}).zip" "$DOWNLOAD_URL"
          echo "Manager 文件已下载为:${{ inputs.kernelsu_variant }}-管理器(${{ env.KSU_VERSION }}).zip"
          unzip *.zip

      - name: 上传编译资产
        uses: actions/upload-artifact@v4
        with:
          name: ${{ inputs.kernelsu_variant }}-Manager(${{ env.KSU_VERSION }})
          path: |
            *.apk


================================================
FILE: .github/workflows/gki-kernel.yml
================================================
name: GKI Kernel Build
permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions

on:
  workflow_call: # This allows this workflow to be called from another workflow
    inputs:
      make_release:
        required: true
        type: boolean
        default: true
      android_version:
        required: true
        type: string
      kernel_version:
        required: true
        type: string
      sub_level:
        required: true
        type: string
      os_patch_level:
        required: true
        type: string
      kernelsu_variant:
        required: true
        type: string
      kernelsu_branch:
        required: true
        type: string
      # kernelsu_branch_other:
      #   required: false
      #   type: string
      revision:
        required: false
        type: string
      version:
        required: false
        type: string
      use_zram:
        required: true
        type: boolean
        default: true
      use_kpm:
        required: true
        type: boolean
        default: true
      supp_op:
        required: true
        type: boolean
        default: false
      BBG:
        required: true
        type: boolean
        default: false
jobs:
  build-kernel-kernelsu-susfs:
    runs-on: ubuntu-latest
    env:
      CCACHE_COMPILERCHECK: "%compiler% -dumpmachine; %compiler% -dumpversion"
      CCACHE_NOHASHDIR: "true"
      CCACHE_HARDLINK: "true"

    steps:
      - name: Maximize Build Space
        uses: AdityaGarg8/remove-unwanted-software@v5
        with:
          remove-dotnet: 'true'          # Frees ~2 GB
          remove-android: 'true'         # Frees ~9 GB
          remove-haskell: 'true'         # Frees ~5.2 GB
          remove-codeql: 'true'          # Frees ~5.4 GB
          remove-docker-images: 'true'   # Frees ~3.2 GB
          remove-large-packages: 'true'  # Frees ~3.1 GB
          remove-swapfile: 'true'        # Frees ~4 GB
          remove-cached-tools: 'false'   # Avoid unless confirmed safe
          verbose: 'true'                # Enable detailed logging
          
      - name: 设定 CONFIG 环境变量
        run: |
          # Set CONFIG dynamically based on inputs values
          CONFIG="${{ inputs.android_version }}-${{ inputs.kernel_version }}-${{ inputs.sub_level }}"

          # Set CONFIG as an environment variable for future steps
          echo "CONFIG=$CONFIG" >> $GITHUB_ENV

          echo "CONFIG set to: $CONFIG"

      # Install ccache
      - name: 安装 ccache
        run: sudo apt update && sudo apt upgrade -y && sudo apt install -y ccache python3 git curl

      - name: 配置 ccache
        run: |
          mkdir -p ~/.cache/bazel
          ccache --version
          ccache --max-size=2G
          ccache --set-config=compression=true
          echo "CCACHE_DIR=$HOME/.ccache" >> $GITHUB_ENV

      - name: 从缓存中还原ccache
        uses: actions/cache@v4
        with:
          path: ~/.ccache
          key: ${{ inputs.android_version }}-${{ inputs.kernel_version }}-${{ inputs.sub_level }}-ccache-${{ github.sha }}
          restore-keys: |
            ${{ inputs.android_version }}-${{ inputs.kernel_version }}-${{ inputs.sub_level }}-ccache-

      - name: 缓存工具链
        id: cache-toolchain
        uses: actions/cache@v4
        with:
          path: |
            kernel-build-tools
            mkbootimg
          key: toolchain-${{ runner.os }}-v1

      # Step 2: Download toolchain if cache was not found
      - name: 下载工具链(如果未找到缓存)
        if: steps.cache-toolchain.outputs.cache-hit != 'true'
        run: |
          AOSP_MIRROR=https://android.googlesource.com
          BRANCH=main-kernel-build-2024
          git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools
          git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1 mkbootimg

      - name: 设置环境变量
        run: |
          echo "AVBTOOL=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/bin/avbtool" >> $GITHUB_ENV
          echo "MKBOOTIMG=$GITHUB_WORKSPACE/mkbootimg/mkbootimg.py" >> $GITHUB_ENV
          echo "UNPACK_BOOTIMG=$GITHUB_WORKSPACE/mkbootimg/unpack_bootimg.py" >> $GITHUB_ENV

      - name: 密钥设置——已经过mkppk修改
        env:
          BOOT_SIGN_KEY: ${{ secrets.BOOT_SIGN_KEY }}
        run: |
            openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem
            echo "BOOT_SIGN_KEY_PATH=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem" >> $GITHUB_ENV

      - name: 安装仓库
        run: |
          # Install dependencies
          mkdir -p ./git-repo
          curl https://storage.googleapis.com/git-repo-downloads/repo > ./git-repo/repo
          chmod a+rx ./git-repo/repo
          echo "REPO=$GITHUB_WORKSPACE/./git-repo/repo" >> $GITHUB_ENV

      - name: 克隆 AnyKernel3 和其他依赖项
        run: |
          echo "Cloning AnyKernel3 and other dependencies..."

          ANYKERNEL_BRANCH="gki-2.0"
          SUSFS_BRANCH="gki-${{ inputs.android_version }}-${{ inputs.kernel_version }}"

          # Debug print the branches
          echo "Using branch for SUSFS: $SUSFS_BRANCH"

          # Clone repositories using the branch names
          git clone https://github.com/WildPlusKernel/AnyKernel3.git -b "$ANYKERNEL_BRANCH"
          git clone https://github.com/ShirkNeko/susfs4ksu.git -b "$SUSFS_BRANCH"
          git clone https://github.com/Tools-cx-app/kernel_patches.git
          # Sukisu的补丁仓库
          git clone https://github.com/ShirkNeko/SukiSU_patch.git
          
      - name: 设置 CONFIG 环境变量
        run: |
          # Set CONFIG dynamically based on inputs values
          CONFIG="${{ inputs.android_version }}-${{ inputs.kernel_version }}-${{ inputs.sub_level }}"

          # Set CONFIG as an environment variable for future steps
          echo "CONFIG=$CONFIG" >> $GITHUB_ENV

          echo "CONFIG set to: $CONFIG"

      - name: 初始化和同步内核源代码
        run: |
          echo "Creating folder for configuration: $CONFIG..."
          mkdir -p "$CONFIG"
          cd "$CONFIG"

          # Initialize and sync kernel source
          echo "Initializing and syncing kernel source..."
          FORMATTED_BRANCH="${{ inputs.android_version }}-${{ inputs.kernel_version }}-${{ inputs.os_patch_level }}"
          $REPO init --depth=1 --u https://android.googlesource.com/kernel/manifest -b common-${FORMATTED_BRANCH} --repo-rev=v2.16
          REMOTE_BRANCH=$(git ls-remote https://android.googlesource.com/kernel/common ${FORMATTED_BRANCH})
          DEFAULT_MANIFEST_PATH=.repo/manifests/default.xml
          # Check if branch is deprecated
          if grep -q deprecated <<< $REMOTE_BRANCH; then
            echo "Found deprecated branch: $FORMATTED_BRANCH"
            sed -i "s/\"${FORMATTED_BRANCH}\"/\"deprecated\/${FORMATTED_BRANCH}\"/g" $DEFAULT_MANIFEST_PATH
          fi
          # Sync repo and apply patches
          $REPO --version
          $REPO --trace sync -c -j$(nproc --all) --no-tags --fail-fast
          echo "REMOTE_BRANCH=$REMOTE_BRANCH" >> $GITHUB_ENV

          FORMATTED_BRANCH="${{ inputs.android_version }}-${{ inputs.kernel_version }}"
          if grep -q deprecated <<< "$REMOTE_BRANCH" && \
             { [ "$FORMATTED_BRANCH" == "android13-5.15" ] && \
               [ ${{ inputs.sub_level }} -lt 123 ]; }; then
            echo '修复5.15仅支持旧版C库的BUG'
            cd ./common
            curl -LSs https://github.com/zzh20188/GKI_KernelSU_SUSFS/raw/refs/heads/legacy/fix_5.15.legacy -o fix_5.15.legacy.patch
            patch -p1 < fix_5.15.legacy.patch
          fi

      - name: 使GKI在一加8E平台正常使用
        if: ${{ inputs.supp_op }}
        run: |
          echo '切换到驱动目录'
          cd "$CONFIG/common/drivers/"
          echo '当前目录$(pwd),下载支持补丁'
          curl -LSs "https://github.com/zzh20188/GKI_KernelSU_SUSFS/raw/refs/heads/dev/hmbird_patch.c" -o hmbird_patch.c
          if [ ! -f hmbird_patch.c ]; then
            echo "hmbird_patch.c 下载失败"
          fi
          echo '补丁加入构建'
          echo "obj-y += hmbird_patch.o" >> Makefile
          tail -n 3 Makefile
      
      - name: 确定 KernelSU 的分支
        run: |
          branch_input="${{ inputs.kernelsu_branch }}"
          variant_input="${{ inputs.kernelsu_variant }}"
          
          case "$branch_input" in
            "Stable(标准)")
              echo "BRANCH=-s builtin" >> $GITHUB_ENV
              ;;
            "Dev(开发)")
              case "$variant_input" in
                "Official" | "MKSU") echo "BRANCH=-s main" >> $GITHUB_ENV ;;
                "Next")              echo "BRANCH=-s next-susfs-dev" >> $GITHUB_ENV ;;
                "SukiSU")           echo "BRANCH=-s builtin" >> $GITHUB_ENV ;;
                *) 
                  echo "错误:未定义开发分支的变体 '$variant_input'" >&2
                  exit 1
                  ;;
              esac
              ;;
            *)
              echo "错误:需要自定义分支时未提供参数" >&2
              exit 1
              ;;
          esac

      - name: 添加 KernelSU
        run: |
          echo "更改为配置目录: $CONFIG..."
          cd "$CONFIG"

          if [ "${{ inputs.kernelsu_variant }}" == "Official" ]; then
            echo "Adding KernelSU Official..."
            curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash $BRANCH
          elif [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
            echo "Adding KernelSU Next..."
            curl -LSs "https://raw.githubusercontent.com/rifsxd/KernelSU-Next/next-susfs/kernel/setup.sh" | bash $BRANCH
          elif [ "${{ inputs.kernelsu_variant }}" == "MKSU" ]; then
            echo "Adding KernelSU MKSU..."
            curl -LSs "https://raw.githubusercontent.com/5ec1cff/KernelSU/main/kernel/setup.sh" | bash $BRANCH
          elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
            echo "Adding KernelSU SukiSU..."
            curl -LSs "https://raw.githubusercontent.com/SukiSU-Ultra/SukiSU-Ultra/main/kernel/setup.sh" | bash $BRANCH
          fi

      - name: 添加 Baseband-guard 支持
        if: ${{ github.event.inputs.BBG == 'true' }}
        run: |
          echo "更改为配置目录: $CONFIG..."
          cd "$CONFIG/common"
          
          echo "下载并运行 Baseband-guard setup 脚本..."
          wget -O- https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh | bash
          
          echo "启用 Baseband-guard 内核配置..."
          CONFIG_FILE="arch/arm64/configs/gki_defconfig"
          echo "CONFIG_BBG=y" >> "$CONFIG_FILE"
          
          # 对于 GitHub Actions 云编译,修改 LSM Kconfig
          echo "修改 security/Kconfig 以包含 baseband_guard..."
          sed -i '/^config LSM$/,/^help$/{ /^[[:space:]]*default/ { /baseband_guard/! s/lockdown/lockdown,baseband_guard/ } }' ./security/Kconfig
          
          echo "Baseband-guard 配置完成"
          
      - name: 为 KernelSU 变体安装 SUSFS 补丁
        run: |
          echo "更改为配置目录: $CONFIG..."
          cd "$CONFIG"

          echo "Applying SUSFS patches..."

          # Copy SUSFS patches
          cp ../susfs4ksu/kernel_patches/50_add_susfs_in_gki-${{ inputs.android_version }}-${{ inputs.kernel_version }}.patch ./common/
          cp ../susfs4ksu/kernel_patches/fs/* ./common/fs/
          cp ../susfs4ksu/kernel_patches/include/linux/* ./common/include/linux/

          if [ "${{ inputs.kernelsu_variant }}" == "Official" ]; then
            echo "Applying SUSFS patches for Official KernelSU..."
            cd ./KernelSU
            cp ../../susfs4ksu/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch ./
            patch -p1 --forward --fuzz=3 < 10_enable_susfs_for_ksu.patch
          elif [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
          #   echo "Applying SUSFS patches for KernelSU-Next..."
             cd ./KernelSU-Next
          #   curl -LSs https://github.com/zzh20188/GKI_KernelSU_SUSFS/raw/refs/heads/dev/0001-kernel-patch-susfs-v1.5.7-to-KernelSU-Next-v1.0.7.patch -o susfs.patch 
          #   patch -p1 --forward < susfs.patch

          # #   cp ../../kernel_patches/next/kernel-patch-susfs-v1.5.7-to-KernelSU-Next.patch ./
          # #   patch -p1 --forward --fuzz=3 < kernel-patch-susfs-v1.5.7-to-KernelSU-Next.patch || true
          # #   # 临时补丁
          # #   curl -LSs "https://github.com/zzh20188/GKI_KernelSU_SUSFS/raw/refs/heads/dev/fix_ksun_susfs.patch" -o fix_ksun_susfs.patch
          # #   echo '应用KSUN临时修复补丁'
          # #   patch -p1 --forward < fix_ksun_susfs.patch
          #   sed -i '/bool ksu_devpts_hook = false;/d' ./kernel/sucompat.c
          elif [ "${{ inputs.kernelsu_variant }}" == "MKSU" ]; then
            echo "Applying SUSFS patches for MKSU..."
             cd ./KernelSU
            cp ../../susfs4ksu/kernel_patches/KernelSU/10_enable_susfs_for_ksu.patch ./
            patch -p1 --forward --fuzz=3 < 10_enable_susfs_for_ksu.patch || true

            echo "Applying MKSU specific SUSFS patch..."
            cp ../../kernel_patches/mksu/mksu_susfs.patch ./
            patch -p1 < mksu_susfs.patch || true
            cp ../../kernel_patches/mksu/fix.patch ./
            patch -p1 < fix.patch || true
          elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
            echo "Applying SUSFS patches for SukiSU..."
             cd ./KernelSU
            echo "Applying SukiSU specific SUSFS patch..."
          else
            echo "Invalid KernelSU variant selected!"
            exit 1
          fi

          cd ../common
          FORMATTED_BRANCH="${{ inputs.android_version }}-${{ inputs.kernel_version }}"
          if grep -q deprecated <<< "$REMOTE_BRANCH" && \
             { [ "$FORMATTED_BRANCH" == "android12-5.10" ] && \
               [ ${{ inputs.sub_level }} -lt 136 ]; }; then
            patch -p1 < 50_add_susfs_in_gki-${{ inputs.android_version }}-${{ inputs.kernel_version }}.patch || true
            curl -LSs https://github.com/zzh20188/GKI_KernelSU_SUSFS/raw/refs/heads/legacy/fdinfo.c.patch -o fdinfo.c.patch
            patch -p1 < fdinfo.c.patch
          else
            patch -p1 --fuzz=3 < 50_add_susfs_in_gki-${{ inputs.android_version }}-${{ inputs.kernel_version }}.patch || true
          fi

      - name: 一些修复补丁
        run: |
          cd "$CONFIG/common"
          FORMATTED_BRANCH="${{ inputs.android_version }}-${{ inputs.kernel_version }}"
          # Fake Patch to fix failures
          fake_patched=0
          if [ "$FORMATTED_BRANCH" = "android15-6.6" ]; then
            if ! grep -qxF $'\tunsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;' ./fs/proc/task_mmu.c; then
              echo "未找到 nr_subpages,正在进行补丁修复"
              sed -i -e '/int ret = 0, copied = 0;/a \\tunsigned int nr_subpages \= __PAGE_SIZE \/ PAGE_SIZE;' -e '/int ret = 0, copied = 0;/a \\tpagemap_entry_t \*res = NULL;' ./fs/proc/task_mmu.c
              fake_patched=1
            fi
            if ! grep -qxF '#include <linux/dma-buf.h>' ./fs/proc/base.c; then
              echo "未找到 #include <linux/dma-buf.h>,添加缺失的头文件"
              sed -i '/#include <linux\/cpufreq_times.h>/a #include <linux\/dma-buf.h>' ./fs/proc/base.c
            fi
          fi
          if [ "$FORMATTED_BRANCH" = "android14-6.1" ]; then
            if ! grep -qxF $'\tif (!vma_pages(vma))' ./fs/proc/task_mmu.c; then
              echo "未找到 vma_pages,正在进行补丁修复"
              fake_patched=1
            fi
            if ! grep -qxF '#include <linux/dma-buf.h>' ./fs/proc/base.c; then
              echo "未找到 #include <linux/dma-buf.h>,添加缺失的头文件"
              sed -i '/#include <linux\/cpufreq_times.h>/a #include <linux\/dma-buf.h>' ./fs/proc/base.c
            fi
          fi
          
          if [ "$FORMATTED_BRANCH" = "android12-5.10" ] || [ "$FORMATTED_BRANCH" = "android13-5.10" ] || [ "$FORMATTED_BRANCH" = "android13-5.15" ]; then
            if ! grep -qxF $'\tif (!vma_pages(vma))' ./fs/proc/task_mmu.c; then
              echo "未找到 vma_pages,正在进行补丁修复"
              fake_patched=1
            fi
          fi

          if [ "$fake_patched" = 1 ]; then
            if [ "$FORMATTED_BRANCH" = "android15-6.6" ]; then
              if grep -qxF $'\tunsigned int nr_subpages = __PAGE_SIZE / PAGE_SIZE;' ./fs/proc/task_mmu.c; then
                sed -i -e '/unsigned int nr_subpages \= __PAGE_SIZE \/ PAGE_SIZE;/d' -e '/pagemap_entry_t \*res = NULL;/d' ./fs/proc/task_mmu.c
              fi
            fi
            
            if [ "$FORMATTED_BRANCH" = "android12-5.10" ] || [ "$FORMATTED_BRANCH" = "android13-5.10" ] || [ "$FORMATTED_BRANCH" = "android13-5.15" ] || [ "$FORMATTED_BRANCH" = "android14-6.1" ]; then
              if grep -q 'goto[[:space:]]\+show_pad;' ./fs/proc/task_mmu.c; then
                sed -i -e 's/goto show_pad;/return 0;/' ./fs/proc/task_mmu.c
              fi
            fi
          fi
  
      - name: 应用新的HOOKS补丁
        run: |
          echo "更改为配置目录: $CONFIG..."
          cd "$CONFIG/common"

          if [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
            echo "Applying hooks for KernelSU-Next..."
            cp ../../kernel_patches/next/scope_min_manual_hooks_v1.4.patch ./
            patch -p1 -F 3 < scope_min_manual_hooks_v1.4.patch
          elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
            echo "Applying hooks for SukiSU..."
          fi

      - name: 复制源文件 & 应用LZ4KD & ZSTDN补丁
        if: ${{ inputs.use_zram }}
        run: |
          echo "更改为配置目录: $CONFIG..."
          cd "$CONFIG/common"
          cp -r ../../SukiSU_patch/other/zram/lz4k/include/linux/* ./include/linux/
          cp -r ../../SukiSU_patch/other/zram/lz4k/lib/* ./lib/
          cp -r ../../SukiSU_patch/other/zram/lz4k/crypto/* ./crypto/
          cp -r ../../SukiSU_patch/other/zram/lz4k_oplus ./lib/

          cp ../../SukiSU_patch/other/zram/zram_patch/${{ inputs.kernel_version }}/lz4kd.patch ./
          echo "正在打lz4kd补丁"
          patch -p1 -F 3 < lz4kd.patch || true
          echo '完成LZ4KD补丁'

          cp ../../SukiSU_patch/other/zram/zram_patch/${{ inputs.kernel_version }}/lz4k_oplus.patch ./
          echo "正在打lz4k_oplus补丁"
          patch -p1 -F 3 < lz4k_oplus.patch || true
          echo '完成lz4k_oplus补丁'

      - name: 应用隐藏某特征的补丁
        run: |
          echo "更改为配置目录: $CONFIG..."
          cd "$CONFIG/common"
          # Apply additional patch
          if [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
          cp ../../SukiSU_patch/69_hide_stuff.patch ./
          patch -p1 -F 3 < 69_hide_stuff.patch
          else
            cp ../../kernel_patches/69_hide_stuff.patch ./
            patch -p1 -F 3 < 69_hide_stuff.patch
          fi

      - name: LZ4KD & Lz4k_oplus配置
        if: ${{ inputs.use_zram }}
        run: |
          set -x
          set -e
          echo "写入LZ4KD&ZSTDN config依赖"
          CONFIG_FILE="$CONFIG/common/arch/arm64/configs/gki_defconfig"

          if [ "${{ inputs.kernel_version }}" = "5.10" ]; then
            echo "CONFIG_ZSMALLOC=y" >> "$CONFIG_FILE"
            echo "CONFIG_ZRAM=y" >> "$CONFIG_FILE"
            echo "CONFIG_MODULE_SIG=n" >> "$CONFIG_FILE"
            echo "CONFIG_CRYPTO_LZO=y" >> "$CONFIG_FILE"
            echo "CONFIG_ZRAM_DEF_COMP_LZ4KD=y" >> "$CONFIG_FILE"
          fi

          if [ "${{ inputs.kernel_version }}" != "6.6" ] && [ "${{ inputs.kernel_version }}" != "5.10" ]; then
            # sed -i 's/CONFIG_MODULE_SIG=y/CONFIG_MODULE_SIG=n/g' "$CONFIG_FILE"
            if grep -q "CONFIG_ZSMALLOC" -- "$CONFIG_FILE"; then
                echo "提示:文件 $CONFIG_FILE 包含字符串 CONFIG_ZSMALLOC。"
                sed -i 's/CONFIG_ZSMALLOC=m/CONFIG_ZSMALLOC=y/g' "$CONFIG_FILE"
            else
                echo "警告:文件 $CONFIG_FILE 不包含字符串 CONFIG_ZSMALLOC。"
                echo "CONFIG_ZSMALLOC=y" >> "$CONFIG_FILE"
            fi

            sed -i 's/CONFIG_ZRAM=m/CONFIG_ZRAM=y/g' "$CONFIG_FILE"
          fi

          if [ "${{ inputs.kernel_version }}" = "6.6" ]; then
            echo "CONFIG_ZSMALLOC=y" >> "$CONFIG_FILE"
            sed -i 's/CONFIG_ZRAM=m/CONFIG_ZRAM=y/g' "$CONFIG_FILE"
          fi

          if [ "${{ inputs.android_version }}" = "android14" ] || [ "${{ inputs.android_version }}" = "android15" ]; then
            sed -i 's/"drivers\/block\/zram\/zram\.ko",//g; s/"mm\/zsmalloc\.ko",//g' "$CONFIG/common/modules.bzl"
            echo "CONFIG_MODULE_SIG_FORCE=n" >> "$CONFIG_FILE"
            echo 'Android14_Bazel:已修复zram&zsmalloc'
          fi

          if grep -q "CONFIG_ZSMALLOC=y" "$CONFIG_FILE" && grep -q "CONFIG_ZRAM=y" "$CONFIG_FILE"; then
            echo "CONFIG_CRYPTO_LZ4HC=y" >> "$CONFIG_FILE"
            echo "CONFIG_CRYPTO_LZ4K=y" >> "$CONFIG_FILE"
            echo "CONFIG_CRYPTO_LZ4KD=y" >> "$CONFIG_FILE"
            echo "CONFIG_CRYPTO_842=y" >> "$CONFIG_FILE"
            echo "CONFIG_CRYPTO_LZ4K_OPLUS=y" >> "$CONFIG_FILE"
            echo "CONFIG_ZRAM_WRITEBACK=y" >> "$CONFIG_FILE"
          fi

      - name: 设置BBR为默认拥塞算法
        if: ${{ inputs.set_defbbr }}
        run: |
          CONFIG_FILE="$CONFIG/common/arch/arm64/configs/gki_defconfig"
          echo "Changing to configuration directory: $CONFIG_FILE..."
          echo "CONFIG_DEFAULT_BBR=y" >> "$CONFIG_FILE"
           
      - name: 添加SUSFS配置设置
        run: |
          echo "更改为配置目录: $CONFIG..."
          cd "$CONFIG"
          echo "Adding configuration settings to gki_defconfig..."

          # Add KSU configuration settings
          echo "CONFIG_KSU=y" >> ./common/arch/arm64/configs/gki_defconfig

          if [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
            echo "CONFIG_KSU_KPROBES_HOOK=n" >> ./common/arch/arm64/configs/gki_defconfig
            echo "CONFIG_KSU_SUSFS_SUS_SU=n" >> ./common/arch/arm64/configs/gki_defconfig
          elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
            echo "CONFIG_KPM=y" >> ./common/arch/arm64/configs/gki_defconfig
            echo "CONFIG_KSU_SUSFS_SUS_SU=n" >> ./common/arch/arm64/configs/gki_defconfig
          elif [ "${{ inputs.kernelsu_variant }}" == "MKSU" ]; then
            echo "CONFIG_KSU_SUSFS_SUS_SU=n" >> ./common/arch/arm64/configs/gki_defconfig
          fi
          
          # Add additional tmpfs config setting
          echo "CONFIG_TMPFS_XATTR=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_TMPFS_POSIX_ACL=y" >> ./common/arch/arm64/configs/gki_defconfig

          # Add additional config setting
          echo "CONFIG_IP_NF_TARGET_TTL=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_IP6_NF_TARGET_HL=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_IP6_NF_MATCH_HL=y" >> ./common/arch/arm64/configs/gki_defconfig

          # Add BBR Config
          echo "CONFIG_TCP_CONG_ADVANCED=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_TCP_CONG_BBR=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_NET_SCH_FQ=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_TCP_CONG_BIC=n" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_TCP_CONG_WESTWOOD=n" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_TCP_CONG_HTCP=n" >> ./common/arch/arm64/configs/gki_defconfig

          # Add SUSFS configuration settings
          echo "CONFIG_KSU_SUSFS=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_SUS_MAP=y" >> ./common/arch/arm64/configs/gki_defconfig
          if [ "${{ inputs.kernel_version }}" != "6.6" ]; then
          echo "CONFIG_KSU_SUSFS_SUS_PATH=y" >> ./common/arch/arm64/configs/gki_defconfig
          else
          echo "CONFIG_KSU_SUSFS_SUS_PATH=n" >> ./common/arch/arm64/configs/gki_defconfig
          fi
          echo "CONFIG_KSU_SUSFS_SUS_MOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_AUTO_ADD_SUS_KSU_DEFAULT_MOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_AUTO_ADD_SUS_BIND_MOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_SUS_KSTAT=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_TRY_UMOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_AUTO_ADD_TRY_UMOUNT_FOR_BIND_MOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_SPOOF_UNAME=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_ENABLE_LOG=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y" >> ./common/arch/arm64/configs/gki_defconfig
          echo "CONFIG_KSU_SUSFS_OPEN_REDIRECT=y" >> ./common/arch/arm64/configs/gki_defconfig
          
          # Remove check_defconfig
          sed -i 's/check_defconfig//' ./common/build.config.gki

      - name: 配置内核名称
        run: |
          echo "更改为配置目录: $CONFIG..."
          cd "$CONFIG"
          
          if [ ! -z ${{ inputs.version }} ]; then
            echo "版本号不为空"
            sed -i '$s|echo "\$res"|echo "${{ inputs.version }}"|' ./common/scripts/setlocalversion
          else
            echo "版本号为空,使用默认值"
            sed -i '$s|echo "\$res"|echo "\$res-zakozakoooooo-1145141919"|' ./common/scripts/setlocalversion
          fi

          # 如果你需要改构建时间,请把以下变量 CURRENT_TIME 修改为如下例子字符串,如:CURRENT_TIME="Sat Jun 07 06:29:29 UTC 2025"
          # 该字符串表示 UTC时间: 2025年6月7日 06:29:29,"Sat" 是星期六的缩写,而 "Jun" 是六月的缩写
          # 如果你想使用北京时间应为:CURRENT_TIME="Sat Jun 07 14:29:29 CST 2025"
          CURRENT_TIME=$(date -u +"%a %b %d %H:%M:%S UTC %Y")

          echo "CURRENT_TIME=$CURRENT_TIME"
          perl -pi -e "s{UTS_VERSION=\"\\\$\(echo \\\$UTS_VERSION \\\$CONFIG_FLAGS \\\$TIMESTAMP \\| cut -b -\\\$UTS_LEN\)\"}{UTS_VERSION=\"#1 SMP PREEMPT $CURRENT_TIME\"}" ./common/scripts/mkcompile_h

          # Apply specific Makefile modification for kernel versions 6.1 and 6.6 only
          if [ "${{ inputs.kernel_version }}" = "6.1" ] || [ "${{ inputs.kernel_version }}" = "6.6" ]; then
            sed -i -e "s|\$(preempt-flag-y) \"\$(build-timestamp)\"|\$(preempt-flag-y) \"$CURRENT_TIME\"|" ./common/init/Makefile
          fi
          
          if [ -f "build/build.sh" ]; then
            sed -i 's/-dirty//' ./common/scripts/setlocalversion
          else
            sed -i '/^[[:space:]]*"protected_exports_list"[[:space:]]*:[[:space:]]*"android\/abi_gki_protected_exports_aarch64",$/d' ./common/BUILD.bazel
            rm -rf ./common/android/abi_gki_protected_exports_*
            sed -i "/stable_scmversion_cmd/s/-maybe-dirty//g" ./build/kernel/kleaf/impl/stamp.bzl
            # sed -E -i '/^CONFIG_LOCALVERSION=/ s/(.*)"$/\1"/' ./common/arch/arm64/configs/gki_defconfig
            if [ ! -z ${{ inputs.version }} ]; then
              sed -i '/^CONFIG_LOCALVERSION=/ s/="\([^"]*\)"/="${{ inputs.version }}"/' ./common/arch/arm64/configs/gki_defconfig
            fi
          fi

      - name: Build with retry
        uses: nick-fields/retry@v3
        with:
          timeout_minutes: 30
          max_attempts: 3
          retry_on: timeout
          command: |
            set -e
            set -x
            cd "$CONFIG"
            # 替换 BUILD_SYSTEM_DLKM=1 为 BUILD_SYSTEM_DLKM=0
            sed -i 's/BUILD_SYSTEM_DLKM=1/BUILD_SYSTEM_DLKM=0/' common/build.config.gki.aarch64

            # 删除 MODULES_ORDER=android/gki_aarch64_modules 行
            sed -i '/MODULES_ORDER=android\/gki_aarch64_modules/d' common/build.config.gki.aarch64

            sed -i '/KMI_SYMBOL_LIST_STRICT_MODE/d' common/build.config.gki.aarch64

            echo "Building the kernel..."
            if [ -f "build/build.sh" ]; then
              LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh CC="/usr/bin/ccache clang" || exit 1
            else
              tools/bazel build --disk_cache=/home/runner/.cache/bazel --config=fast --lto=thin //common:kernel_aarch64_dist || exit 1
            fi
            ccache --show-stats
            
      - name: 修补 Image 文件 安卓12和安卓13(仅限sukisu)
        if: ${{ inputs.use_kpm && inputs.kernelsu_variant == 'SukiSU' && (inputs.android_version == 'android12' || inputs.android_version == 'android13') }}
        run: |
          if [ "${{ inputs.kernel_version }}" != "6.6" ]; then
            echo "Patching Image file..."
            cd "$CONFIG/out/${{ inputs.android_version }}-${{ inputs.kernel_version }}/dist"
            curl -LSs "https://raw.githubusercontent.com/ShirkNeko/SukiSU_patch/refs/heads/main/kpm/patch_linux" -o patch
            chmod 777 patch
            ./patch
            rm -rf Image
            mv oImage Image
            cd ../../../..
          fi

      - name: 修补 Image 文件 安卓14和安卓15(仅限sukisu)
        if: ${{ inputs.use_kpm && inputs.kernelsu_variant == 'SukiSU' && (inputs.android_version == 'android14' || inputs.android_version == 'android15') }}
        run: |
          if [ "${{ inputs.kernel_version }}" != "6.6" ]; then
            echo "Patching Image file..."
            cd "$CONFIG/bazel-bin/common/kernel_aarch64/"
            curl -LSs "https://raw.githubusercontent.com/ShirkNeko/SukiSU_patch/refs/heads/main/kpm/patch_linux" -o patch
            chmod 777 patch
            ./patch
            rm -rf Image
            mv oImage Image
            cd ../../..
          fi

      - name: 创建Bootimgs文件夹并复制镜像
        if: ${{ inputs.android_version == 'android12' || inputs.android_version == 'android13' }}
        run: |
          echo "更改为配置目录: $CONFIG..."
          mkdir bootimgs

          echo "Creating bootimgs folder and copying images..."
          cp ./$CONFIG/out/${{ inputs.android_version }}-${{ inputs.kernel_version }}/dist/Image ./bootimgs
          cp ./$CONFIG/out/${{ inputs.android_version }}-${{ inputs.kernel_version }}/dist/Image.lz4 ./bootimgs
          cp ./$CONFIG/out/${{ inputs.android_version }}-${{ inputs.kernel_version }}/dist/Image ./
          cp ./$CONFIG/out/${{ inputs.android_version }}-${{ inputs.kernel_version }}/dist/Image.lz4 ./

          # Create gzip of the Image file
          gzip -n -k -f -9 ./Image > ./Image.gz

      - name: 创建Bootimgs文件夹并复制镜像
        if: ${{ inputs.android_version == 'android14' || inputs.android_version == 'android15' }}
        run: |
          echo "更改为配置目录: $CONFIG..."
          mkdir bootimgs

          echo "Creating bootimgs folder and copying images..."
          cp ./$CONFIG/bazel-bin/common/kernel_aarch64/Image ./bootimgs
          cp ./$CONFIG/bazel-bin/common/kernel_aarch64/Image.lz4 ./bootimgs
          cp ./$CONFIG/bazel-bin/common/kernel_aarch64/Image ./
          cp ./$CONFIG/bazel-bin/common/kernel_aarch64/Image.lz4 ./

          # Create gzip of the Image file
          gzip -n -k -f -9 ./Image > ./Image.gz

      - name: 创建不同格式的ZIP文件
        run: |
          echo "Creating zip files for all formats..."
          cd ./AnyKernel3

          # Create and upload zip for each format
          ZIP_NAME="${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ inputs.sub_level }}-${{ inputs.os_patch_level }}-AnyKernel3.zip"
          echo "Creating zip file: $ZIP_NAME..."
          mv ../Image ./Image
          zip -r "../$ZIP_NAME" ./*
          rm ./Image

          ZIP_NAME="${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ inputs.sub_level }}-${{ inputs.os_patch_level }}-AnyKernel3-lz4.zip"
          echo "Creating zip file: $ZIP_NAME..."
          mv ../Image.lz4 ./Image.lz4
          zip -r "../$ZIP_NAME" ./*
          rm ./Image.lz4

          ZIP_NAME="${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ inputs.sub_level }}-${{ inputs.os_patch_level }}-AnyKernel3-gz.zip"
          echo "Creating zip file: $ZIP_NAME..."
          mv ../Image.gz ./Image.gz
          zip -r "../$ZIP_NAME" ./*
          rm ./Image.gz

      - name: 运行boot镜像 ${{ inputs.android_version }} 编译脚本
        if: ${{ inputs.android_version == 'android12' }}
        run: |
          echo "更改为配置目录: $CONFIG..."
          cd bootimgs

          GKI_URL=https://dl.google.com/android/gki/gki-certified-boot-android12-5.10-"${{ inputs.os_patch_level }}"_"${{ inputs.revision }}".zip
          FALLBACK_URL=https://dl.google.com/android/gki/gki-certified-boot-android12-5.10-2023-01_r1.zip

          # Check if the GKI URL is available
          echo "Checking if GKI kernel URL is reachable: $GKI_URL"
          status=$(curl -sL -w "%{http_code}" "$GKI_URL" -o /dev/null)

          if [ "$status" = "200" ]; then
              echo "[+] Downloading from GKI_URL"
              curl -Lo gki-kernel.zip "$GKI_URL"
          else
              echo "[+] $GKI_URL not found, using $FALLBACK_URL"
              curl -Lo gki-kernel.zip "$FALLBACK_URL"
          fi

          # Unzip the downloaded kernel and remove the zip
          echo "Unzipping the downloaded kernel..."
          unzip gki-kernel.zip && rm gki-kernel.zip

          echo "Unpacking boot.img..."
          FULL_PATH=$(pwd)/boot-5.10.img
          echo "Unpacking using: $FULL_PATH"

          echo "Running unpack_bootimg.py..."
          $UNPACK_BOOTIMG --boot_img="$FULL_PATH"

          echo "Building Image.gz"
          gzip -n -k -f -9 ./Image > ./Image.gz

          echo "Building boot.img"
          $MKBOOTIMG --header_version 4 --kernel Image --output boot.img --ramdisk out/ramdisk --os_version 12.0.0 --os_patch_level "${{ inputs.os_patch_level }}"
          $AVBTOOL add_hash_footer --partition_name boot --partition_size $((64 * 1024 * 1024)) --image boot.img --algorithm SHA256_RSA2048 --key $BOOT_SIGN_KEY_PATH
          cp ./boot.img ../${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ inputs.sub_level }}-${{ inputs.os_patch_level }}-boot.img

          echo "Building boot-gz.img"
          $MKBOOTIMG --header_version 4 --kernel Image.gz --output boot-gz.img --ramdisk out/ramdisk --os_version 12.0.0 --os_patch_level "${{ inputs.os_patch_level }}"
          $AVBTOOL add_hash_footer --partition_name boot --partition_size $((64 * 1024 * 1024)) --image boot-gz.img --algorithm SHA256_RSA2048 --key $BOOT_SIGN_KEY_PATH
          cp ./boot-gz.img ../${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ inputs.sub_level }}-${{ inputs.os_patch_level }}-boot-gz.img

          echo "Building boot-lz4.img"
          $MKBOOTIMG --header_version 4 --kernel Image.lz4 --output boot-lz4.img --ramdisk out/ramdisk --os_version 12.0.0 --os_patch_level "${{ inputs.os_patch_level }}"
          $AVBTOOL add_hash_footer --partition_name boot --partition_size $((64 * 1024 * 1024)) --image boot-lz4.img --algorithm SHA256_RSA2048 --key $BOOT_SIGN_KEY_PATH
          cp ./boot-lz4.img ../${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ inputs.sub_level }}-${{ inputs.os_patch_level }}-boot-lz4.img

      - name: 运行boot镜像 ${{ inputs.android_version }} 编译脚本
        if: ${{ inputs.android_version == 'android13' || inputs.android_version == 'android14' || inputs.android_version == 'android15' }}
        run: |
          cd bootimgs

          echo "Building Image.gz"
          gzip -n -k -f -9 ./Image > ./Image.gz

          echo "Building boot.img"
          $MKBOOTIMG --header_version 4 --kernel Image --output boot.img
          $AVBTOOL add_hash_footer --partition_name boot --partition_size $((64 * 1024 * 1024)) --image boot.img --algorithm SHA256_RSA2048 --key $BOOT_SIGN_KEY_PATH
          cp ./boot.img ../${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ inputs.sub_level }}-${{ inputs.os_patch_level }}-boot.img

          echo "Building boot-gz.img"
          $MKBOOTIMG --header_version 4 --kernel Image.gz --output boot-gz.img
          $AVBTOOL add_hash_footer --partition_name boot --partition_size $((64 * 1024 * 1024)) --image boot-gz.img --algorithm SHA256_RSA2048 --key $BOOT_SIGN_KEY_PATH
          cp ./boot-gz.img ../${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ inputs.sub_level }}-${{ inputs.os_patch_level }}-boot-gz.img

          echo "Building boot-lz4.img"
          $MKBOOTIMG --header_version 4 --kernel Image.lz4 --output boot-lz4.img
          $AVBTOOL add_hash_footer --partition_name boot --partition_size $((64 * 1024 * 1024)) --image boot-lz4.img --algorithm SHA256_RSA2048 --key $BOOT_SIGN_KEY_PATH
          cp ./boot-lz4.img ../${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ inputs.sub_level }}-${{ inputs.os_patch_level }}-boot-lz4.img

      - name: 上传编译资产
        uses: actions/upload-artifact@v4
        with:
          name: ${{ inputs.kernelsu_variant }}_kernel-${{ env.CONFIG }}
          path: |
            *AnyKernel3.zip
            *.img


================================================
FILE: .github/workflows/kernel-a12-5.10.yml
================================================
name: Android 12 5.10
permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions

on:
  workflow_call:  # This allows this workflow to be called from another workflow
    inputs:
      make_release:
        required: true
        type: boolean
        default: true
      kernelsu_variant:
        required: true
        type: string
        default: Next
      kernelsu_branch:
        required: true
        type: string
        default: Stable
      # kernelsu_branch_other:
      #   required: false
      #   type: string
      #   default: ""
      version:
        required: false
        type: string
        default: ""
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      BBG:
        description: '是否启用内核层面阻止对关键分区/设备节点的非法写入(LSM)?'
        required: true
        type: boolean
        default: false
  
jobs:
  build-kernel-a12-5-10-kernelsu-susfs:
    strategy:
      fail-fast: false
      matrix:
        include:
        #- sub_level: "66"
        #  os_patch_level: "2022-01"
        #  revision: "r11"
        #- sub_level: "81"
        #  os_patch_level: "2022-03"
        #  revision: "r11"
        #- sub_level: "101"
        #  os_patch_level: "2022-04"
        #  revision: "r28"
        - sub_level: "136"
          os_patch_level: "2022-11"
          revision: "r15"
        #- sub_level: "168"
        #  os_patch_level: "2023-04"
        #  revision: "r9"
        - sub_level: "198"
          os_patch_level: "2024-01"
          revision: "r17"
        #- sub_level: "205"
        #  os_patch_level: "2024-03"
        #  revision: "r9"
        - sub_level: "209"
          os_patch_level: "2024-05"
          revision: "r13"
        #- sub_level: "218"
        #  os_patch_level: "2024-08"
        #  revision: "r14"
        #- sub_level: "226"
        #  os_patch_level: "2024-11"
        #  revision: "r8"
        #- sub_level: "233"
        #  os_patch_level: "2025-02"
        #   revision: "r1"
        - sub_level: "236"
          os_patch_level: "2025-05"
          revision: "r1"
        #- sub_level: "240"
        #  os_patch_level: "2025-09"
        #  revision: "r1"
        - sub_level: "X"
          os_patch_level: "lts"
          revision: "r1"
    uses: ./.github/workflows/gki-kernel.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release || false }}
      android_version: "android12"
      kernel_version: "5.10"
      sub_level: ${{ matrix.sub_level }}
      os_patch_level: ${{ matrix.os_patch_level }}
      revision: ${{ matrix.revision }}
      kernelsu_variant: ${{ inputs.kernelsu_variant || 'Next' }}
      kernelsu_branch: ${{ inputs.kernelsu_branch || 'Dev' }}
      # kernelsu_branch_other: ${{ inputs.kernelsu_branch_other || '' }}
      version: ${{ inputs.version || '' }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      supp_op: ${{ inputs.supp_op || false }}
      BBG: ${{ inputs.BBG || false }}



================================================
FILE: .github/workflows/kernel-a13-5.10.yml
================================================
name: Android 13 5.10
permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions
  
on:
  workflow_call:  # This allows this workflow to be called from another workflow
    inputs:
      make_release:
        required: true
        type: boolean
        default: true
      kernelsu_variant:
        required: true
        type: string
        default: Next
      kernelsu_branch:
        required: true
        type: string
        default: Stable
      version:
        required: false
        type: string
        default: ""
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      BBG:
        description: '是否启用内核层面阻止对关键分区/设备节点的非法写入(LSM)?'
        required: true
        type: boolean
        default: false
  
jobs:
  build-kernel-a13-5-10-kernelsu-susfs:
    strategy:
      fail-fast: false
      matrix:
        include:
          # - sub_level: "189"
          #   os_patch_level: "2023-11"
          #- sub_level: "198"
          #  os_patch_level: "2024-01"
          #- sub_level: "205"
          #  os_patch_level: "2024-03"
          #- sub_level: "209"
          #  os_patch_level: "2024-05"
          #- sub_level: "210"
          #  os_patch_level: "2024-06"
          #- sub_level: "214"
          #  os_patch_level: "2024-07"
          #- sub_level: "218"
          #  os_patch_level: "2024-08"
          #- sub_level: "223"
          #  os_patch_level: "2024-11"
          #- sub_level: "228"
          #  os_patch_level: "2025-01"
          - sub_level: "X"
            os_patch_level: "lts"
    uses: ./.github/workflows/gki-kernel.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release || false }}
      android_version: "android13"
      kernel_version: "5.10"
      sub_level: ${{ matrix.sub_level }}
      os_patch_level: ${{ matrix.os_patch_level }}
      kernelsu_variant: ${{ inputs.kernelsu_variant || 'Next' }}
      kernelsu_branch: ${{ inputs.kernelsu_branch || 'Dev' }}
      version: ${{ inputs.version || '' }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      supp_op: ${{ inputs.supp_op || false }}
      BBG: ${{ inputs.BBG || false }}


================================================
FILE: .github/workflows/kernel-a13-5.15.yml
================================================
name: Android 13 5.15
permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions

on:
  workflow_call:  # This allows this workflow to be called from another workflow
    inputs:
      make_release:
        required: true
        type: boolean
        default: true
      kernelsu_variant:
        required: true
        type: string
        default: Next
      kernelsu_branch:
        required: true
        type: string
        default: Stable
      version:
        required: false
        type: string
        default: ""
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      BBG:
        description: '是否启用内核层面阻止对关键分区/设备节点的非法写入(LSM)?'
        required: true
        type: boolean
        default: false
  
jobs:
  build-kernel-a13-5-15-kernelsu-susfs:
    strategy:
      fail-fast: false
      matrix:
        include:
          # 从谷歌提交找到补丁,修复94与104的兼容性问题
          - sub_level: "74"
            os_patch_level: "2023-01"
          #- sub_level: "94"
          #  os_patch_level: "2023-05"
          #- sub_level: "104"
          #  os_patch_level: "2023-07"
          - sub_level: "123"
            os_patch_level: "2023-11"
          #- sub_level: "137"
          #  os_patch_level: "2024-01"
          #- sub_level: "144"
          #  os_patch_level: "2024-03"
          - sub_level: "148"
            os_patch_level: "2024-05"
          # - sub_level: "149"
          #   os_patch_level: "2024-07"
          #- sub_level: "151"
          #  os_patch_level: "2024-08"
          #- sub_level: "167"
          #  os_patch_level: "2024-11"
          - sub_level: "170"
            os_patch_level: "2025-01"
          - sub_level: "178"
            os_patch_level: "2025-03"
          - sub_level: "180"
            os_patch_level: "2025-05"
          - sub_level: "189"
            os_patch_level: "2025-09"
          #- sub_level: "X"
          #  os_patch_level: "lts"
    uses: ./.github/workflows/gki-kernel.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release || false }}
      android_version: "android13"
      kernel_version: "5.15"
      sub_level: ${{ matrix.sub_level }}
      os_patch_level: ${{ matrix.os_patch_level }}
      kernelsu_variant: ${{ inputs.kernelsu_variant || 'Next' }}
      kernelsu_branch: ${{ inputs.kernelsu_branch || 'Dev' }}
      version: ${{ inputs.version || '' }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      supp_op: ${{ inputs.supp_op || false }}
      BBG: ${{ inputs.BBG || false }}


================================================
FILE: .github/workflows/kernel-a14-5.15.yml
================================================
name: Android 14 5.15
permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions

on:
  workflow_call:  # This allows this workflow to be called from another workflow
    inputs:
      make_release:
        required: true
        type: boolean
        default: true
      kernelsu_variant:
        required: true
        type: string
        default: Next
      kernelsu_branch:
        required: true
        type: string
        default: Stable
      version:
        required: false
        type: string
        default: ""
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      BBG:
        description: '是否启用内核层面阻止对关键分区/设备节点的非法写入(LSM)?'
        required: true
        type: boolean
        default: false
  
jobs:
  build-kernel-a14-5-15-kernelsu-susfs:
    strategy:
      fail-fast: false
      matrix:
        include:
          #- sub_level: "131"
          #  os_patch_level: "2023-11"
          #- sub_level: "137"
          #  os_patch_level: "2024-01"
          #- sub_level: "144"
          #  os_patch_level: "2024-03"
          #- sub_level: "148"
          #  os_patch_level: "2024-05"
          #- sub_level: "153"
          #  os_patch_level: "2024-07"
          #- sub_level: "158"
          #  os_patch_level: "2024-08"
          #- sub_level: "167"
          #  os_patch_level: "2024-11"
          #- sub_level: "170"
          #  os_patch_level: "2025-01"
          #- sub_level: "178"
          #  os_patch_level: "2025-03"
          #- sub_level: "180"
          #  os_patch_level: "2025-05"
          - sub_level: "X"
            os_patch_level: "lts"
    uses: ./.github/workflows/gki-kernel.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release || false }}
      android_version: "android14"
      kernel_version: "5.15"
      sub_level: ${{ matrix.sub_level }}
      os_patch_level: ${{ matrix.os_patch_level }}
      kernelsu_variant: ${{ inputs.kernelsu_variant || 'Next' }}
      kernelsu_branch: ${{ inputs.kernelsu_branch || 'Dev' }}
      version: ${{ inputs.version || '' }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      supp_op: ${{ inputs.supp_op || false }}
      BBG: ${{ inputs.BBG || false }}


================================================
FILE: .github/workflows/kernel-a14-6.1.yml
================================================
name: Android 14 6.1
permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions

on:
  workflow_call:  # This allows this workflow to be called from another workflow
    inputs:
      make_release:
        required: true
        type: boolean
        default: true
      kernelsu_variant:
        required: true
        type: string
        default: Next
      kernelsu_branch:
        required: true
        type: string
        default: Stable
      version:
        required: false
        type: string
        default: ""
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: true
        type: boolean
        default: true
      BBG:
        description: '是否启用内核层面阻止对关键分区/设备节点的非法写入(LSM)?'
        required: true
        type: boolean
        default: false

jobs:
  build-kernel-a14-6-1-kernelsu-susfs:
    strategy:
      fail-fast: false
      matrix:
        include:
          #- sub_level: "25"
          #  os_patch_level: "2023-10"
          #- sub_level: "43"
          #  os_patch_level: "2023-11"
          #- sub_level: "57"
          #  os_patch_level: "2024-01"
          #- sub_level: "68"
          #  os_patch_level: "2024-03"
          #- sub_level: "75"
          #  os_patch_level: "2024-05"
          - sub_level: "78"
            os_patch_level: "2024-06"
          #- sub_level: "84"
          #  os_patch_level: "2024-07"
          - sub_level: "90"
            os_patch_level: "2024-08"
          #- sub_level: "93"
          #  os_patch_level: "2024-09"
          - sub_level: "99"
            os_patch_level: "2024-10"
          #- sub_level: "112"
          #  os_patch_level: "2024-11"
          #- sub_level: "115"
          #  os_patch_level: "2024-12"
          #- sub_level: "118"
          #  os_patch_level: "2025-01"
          - sub_level: "124"
            os_patch_level: "2025-02"
          #- sub_level: "128"
          #  os_patch_level: "2025-03"
          #- sub_level: "129"
          #  os_patch_level: "2025-04"
          #- sub_level: "134"
          #  os_patch_level: "2025-05"
          - sub_level: "145"
            os_patch_level: "2025-09"
          #- sub_level: "X"
          #  os_patch_level: "lts"
    uses: ./.github/workflows/gki-kernel.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release || false }}
      android_version: "android14"
      kernel_version: "6.1"
      sub_level: ${{ matrix.sub_level }}
      os_patch_level: ${{ matrix.os_patch_level }}
      kernelsu_variant: ${{ inputs.kernelsu_variant || 'Next' }}
      kernelsu_branch: ${{ inputs.kernelsu_branch || 'Dev' }}
      version: ${{ inputs.version || '' }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      supp_op: ${{ inputs.supp_op || false }}
      BBG: ${{ inputs.BBG || false }}


================================================
FILE: .github/workflows/kernel-a15-6.6.yml
================================================
name: Android 15 6.6
permissions:
  contents: write  # Allow writing to repository contents (for pushing tags)
  actions: write   # Allows triggering actions

on:
  workflow_call:  # This allows this workflow to be called from another workflow
    inputs:
      make_release:
        required: true
        type: boolean
        default: true
      kernelsu_variant:
        required: true
        type: string
        default: Next
      kernelsu_branch:
        required: true
        type: string
        default: Stable
      version:
        required: false
        type: string
        default: ""
      use_zram:
        description: '是否开启增加更多ZRAM算法?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: '是否开启KPM功能?'
        required: false
        type: boolean
        default: false
      supp_op:
        description: '是否开启一加8E处理器机型支持?(非该机型无须勾)'
        required: false
        type: boolean
        default: false
      BBG:
        description: '是否启用内核层面阻止对关键分区/设备节点的非法写入(LSM)?'
        required: true
        type: boolean
        default: false


jobs:
  build-kernel-a15-6-6-kernelsu-susfs:
    strategy:
      fail-fast: false
      matrix:
        include:
          #- sub_level: "30"
          #  os_patch_level: "2024-08"
          # - sub_level: "46"
          #   os_patch_level: "2024-09"
          - sub_level: "50"
            os_patch_level: "2024-10"
          #- sub_level: "56"
          #  os_patch_level: "2024-11"
          #- sub_level: "57"
          #  os_patch_level: "2024-12"
          #- sub_level: "58"
          #  os_patch_level: "2025-01"
          - sub_level: "66"
            os_patch_level: "2025-02"
          #- sub_level: "77"
          #  os_patch_level: "2025-03"
          #- sub_level: "82"
          #  os_patch_level: "2025-04"
          #- sub_level: "87"
          #  os_patch_level: "2025-05"
          - sub_level: "102"
            os_patch_level: "2025-10"
          #- sub_level: "X"
          #  os_patch_level: "lts"
    uses: ./.github/workflows/gki-kernel.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release || false }}
      android_version: "android15"
      kernel_version: "6.6"
      sub_level: ${{ matrix.sub_level }}
      os_patch_level: ${{ matrix.os_patch_level }}
      kernelsu_variant: ${{ inputs.kernelsu_variant || 'Next' }}
      kernelsu_branch: ${{ inputs.kernelsu_branch || 'Dev' }}
      version: ${{ inputs.version || '' }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      supp_op: ${{ inputs.supp_op }}
      BBG: ${{ inputs.BBG || false }}


================================================
FILE: .github/workflows/test_release.yml
================================================
name: Test Release

permissions:
  contents: write
  actions: write

concurrency:
  group: release-${{ github.ref }}
  cancel-in-progress: true

on:
  workflow_dispatch:
    inputs:
      make_release:
        description: 'Do you want to create a release?'
        required: true
        type: boolean
        default: true
      kernels_to_build:
        description: |
          Comma-separated list of kernels to build/release, e.g.:
          a12-5.10,a13-5.10,a13-5.15,a14-5.15,a14-6.1,a15-6.6
          or "all" to build every kernel.
        required: true
        type: string
        default: 'all'
      kernelsu_variant:
        description: "Select KernelSU"
        required: true
        type: choice
        options:
        - Official
        - Next
        - MKSU
        - SukiSU
        default: SukiSU
      kernelsu_branch:
        description: "Select KSU branch"
        required: true
        type: choice
        options:
        - Stable(标准)
        - Dev(开发)
        - Other(其他/指定)
        default: Stable(标准)
      version:
        description: 'Custom version name (e.g., characters after 5.10.198 / leave blank to use default version number)'
        required: false
        type: string
      use_zram:
        description: 'Enable more ZRAM algorithms?'
        required: true
        type: boolean
        default: true
      use_kpm:
        description: 'Enable KPM functionality?'
        required: true
        type: boolean
        default: true
      BBG:
        description: "是否启用内核层面阻止对关键分区/设备节点的非法写入(LSM)?"
        required: true
        type: boolean
        default: false
      get_manager:
        description: 'Get the latest KSU Manager at the same time?'
        required: true
        type: boolean
        default: false

jobs:
  get_manager:
    if: ${{ inputs.get_manager }}
    uses: ./.github/workflows/get-manager.yml
    secrets: inherit
    with:
      kernelsu_variant: ${{ inputs.kernelsu_variant }}

  build-kernel-a12-5-10:
    if: contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a12-5.10')
    uses: ./.github/workflows/kernel-a12-5.10.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release }}
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      BBG: ${{ inputs.BBG }}

  build-kernel-a13-5-10:
    if: contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a13-5.10')
    uses: ./.github/workflows/kernel-a13-5.10.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release }}
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      BBG: ${{ inputs.BBG }}

  build-kernel-a13-5-15:
    if: contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a13-5.15')
    uses: ./.github/workflows/kernel-a13-5.15.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release }}
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      BBG: ${{ inputs.BBG }}

  build-kernel-a14-5-15:
    if: contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a14-5.15')
    uses: ./.github/workflows/kernel-a14-5.15.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release }}
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      BBG: ${{ inputs.BBG }}

  build-kernel-a14-6-1:
    if: contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a14-6.1')
    uses: ./.github/workflows/kernel-a14-6.1.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release }}
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      BBG: ${{ inputs.BBG }}

  build-kernel-a15-6-6:
    if: contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a15-6.6')
    uses: ./.github/workflows/kernel-a15-6.6.yml
    secrets: inherit
    with:
      make_release: ${{ inputs.make_release }}
      kernelsu_variant: ${{ inputs.kernelsu_variant }}
      kernelsu_branch: ${{ inputs.kernelsu_branch }}
      version: ${{ inputs.version }}
      use_zram: ${{ inputs.use_zram }}
      use_kpm: ${{ inputs.use_kpm }}
      BBG: ${{ inputs.BBG }}

  check-build-status:
    runs-on: ubuntu-latest
    needs:
      - get_manager
      - build-kernel-a12-5-10
      - build-kernel-a13-5-10
      - build-kernel-a13-5-15
      - build-kernel-a14-5-15
      - build-kernel-a14-6-1
      - build-kernel-a15-6-6
    if: always()
    outputs:
      should_release: ${{ steps.check.outputs.should_release }}
    env:
      SHOULD_RUN_A12_5_10: ${{ contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a12-5.10') }}
      SHOULD_RUN_A13_5_10: ${{ contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a13-5.10') }}
      SHOULD_RUN_A13_5_15: ${{ contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a13-5.15') }}
      SHOULD_RUN_A14_5_15: ${{ contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a14-5.15') }}
      SHOULD_RUN_A14_6_1: ${{ contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a14-6.1') }}
      SHOULD_RUN_A15_6_6: ${{ contains(github.event.inputs.kernels_to_build, 'all') || contains(github.event.inputs.kernels_to_build, 'a15-6.6') }}
      
      RESULT_GET_MANAGER: ${{ needs.get_manager.result }}
      RESULT_A12_5_10: ${{ needs.build-kernel-a12-5-10.result }}
      RESULT_A13_5_10: ${{ needs.build-kernel-a13-5-10.result }}
      RESULT_A13_5_15: ${{ needs.build-kernel-a13-5-15.result }}
      RESULT_A14_5_15: ${{ needs.build-kernel-a14-5-15.result }}
      RESULT_A14_6_1: ${{ needs.build-kernel-a14-6-1.result }}
      RESULT_A15_6_6: ${{ needs.build-kernel-a15-6-6.result }}
    steps:
      - name: Determine if release should proceed
        id: check
        run: |
          SHOULD_PROCEED="true"
          ERROR_MESSAGE=""
          
          echo "--- Checking Job Statuses ---"
          echo "get_manager result: $RESULT_GET_MANAGER"
          
          # 1. Check get_manager job only if it was supposed to run
          if [[ "${{ inputs.get_manager }}" == "true" ]]; then
            if [[ "$RESULT_GET_MANAGER" != "success" ]]; then
              SHOULD_PROCEED="false"
              ERROR_MESSAGE+="get_manager job did not succeed (result: $RESULT_GET_MANAGER). "
            fi
          fi
          
          # Function to check a kernel job
          check_kernel_job() {
            local kernel_id=$1
            local should_run_flag=$2
            local actual_result=$3
            
            echo "Checking kernel $kernel_id (Should Run: $should_run_flag, Actual Result: $actual_result)..."
            
            if [[ "$should_run_flag" == "true" ]]; then
              if [[ "$actual_result" != "success" ]]; then
                SHOULD_PROCEED="false"
                ERROR_MESSAGE+="Job for $kernel_id was expected to run but did not succeed (result: $actual_result). "
              fi
            else
              if [[ "$actual_result" == "failure" ]]; then
                SHOULD_PROCEED="false"
                ERROR_MESSAGE+="Job for $kernel_id was NOT expected to run but failed (result: $actual_result). This indicates a problem. "
              fi
            fi
          }
          
          check_kernel_job "a12-5.10" "$SHOULD_RUN_A12_5_10" "$RESULT_A12_5_10"
          check_kernel_job "a13-5.10" "$SHOULD_RUN_A13_5_10" "$RESULT_A13_5_10"
          check_kernel_job "a13-5.15" "$SHOULD_RUN_A13_5_15" "$RESULT_A13_5_15"
          check_kernel_job "a14-5.15" "$SHOULD_RUN_A14_5_15" "$RESULT_A14_5_15"
          check_kernel_job "a14-6.1" "$SHOULD_RUN_A14_6_1" "$RESULT_A14_6_1"
          check_kernel_job "a15-6.6" "$SHOULD_RUN_A15_6_6" "$RESULT_A15_6_6"
          
          echo "Final decision - SHOULD_PROCEED: $SHOULD_PROCEED"
          echo "Accumulated Errors: $ERROR_MESSAGE"
          echo "should_release=$SHOULD_PROCEED" >> "$GITHUB_OUTPUT"
          
          if [[ "$SHOULD_PROCEED" == "false" ]]; then
            echo "::error::Release blocked due to issues: $ERROR_MESSAGE"
            exit 1
          fi

  trigger-release:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    needs:
      - check-build-status
      - get_manager
    if: always()
    env:
      RELEASE_NAME: "GKI Kernel: ${{ inputs.kernelsu_variant == 'Next' && 'KernelSU-' || '' }} ${{ inputs.kernelsu_variant }}"
      INITIAL_RELEASE_NOTES: |
        This release includes **${{ inputs.kernelsu_variant == 'Next' && 'KernelSU' || '' }}${{ inputs.kernelsu_variant }}**
        
        Features:
        -> ${{ inputs.kernelsu_variant == 'Next' && 'KernelSU-' || '' }}${{ inputs.kernelsu_variant }}-${{ inputs.kernelsu_branch }}
        -> SUSFS ඞ v2.1.0
        -> Manual Syscall Hooks for better hiding
        -> Magic Mount Support
        -> Simple hiding for LineageOS detection
        -> Futile hiding for jit-zygote-cache detection
        -> Wireguard Support
        -> BBR Support
        ${{ inputs.BBG && '-> BBG Support' || '' }}
        -> BBG ${{ inputs.BBG && 'supported' || 'not supported' }}
        ${{ inputs.use_kpm && '-> KPM Support' || '' }}
        -> **LZ4KD&ONEPLUS_LZ4K** ${{ inputs.use_zram && 'supported' || 'not supported' }}
        
        <details>
        <summary>Notes:</summary>
        
        - -> In SUS SU Mode 2, it will show as disabled or incompatible, the reason is that non-kprobe hooks were used (when compiling the kernel), and non-kprobe hooks are no longer needed!
        - -> In the latest version of susfs, flashing AK3 compressed package with Kernel Flasher will brick your device, try [Horizon Kernel Flasher](https://github.com/libxzr/HorizonKernelFlasher )!
        
        </details>
        
        Modules:
        -> https://github.com/sidex15/ksu_module_susfs 
    steps:
      - name: Conditional Release Check
        id: release_check
        if: ${{ inputs.make_release && needs.check-build-status.outputs.should_release == 'true' }}
        run: echo "Release conditions met. Proceeding with release."
        
      - name: Checkout code
        if: ${{ steps.release_check.outcome == 'success' }}
        uses: actions/checkout@v4
        
      - name: Install GitHub CLI
        if: ${{ steps.release_check.outcome == 'success' }}
        run: |
          type -p gh >/dev/null || {
            sudo apt update
            sudo apt install -y gh
          }
          
      - name: Generate and Create New Tag (Atomic)
        if: ${{ steps.release_check.outcome == 'success' }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          set -e

          BASE_VERSION="v2.1.0"
          
          # Fetch all existing tags using git ls-remote
          EXISTING_TAGS=$(git ls-remote --tags https://github.com/${{ github.repository }}.git | awk '{print $2}' | sed 's/refs\/tags\///' || true)

          # Find highest revision number for this base version
          MAX_REVISION=0
          while IFS= read -r tag; do
            if [[ "$tag" =~ ^$BASE_VERSION-r([0-9]+)$ ]]; then
              revision="${BASH_REMATCH[1]}"
              if (( revision > MAX_REVISION )); then
                MAX_REVISION=$revision
              fi
            fi
          done <<< "$EXISTING_TAGS"

          # Generate new revision number and tag
          NEW_REVISION=$((MAX_REVISION + 1))
          NEW_TAG="$BASE_VERSION-r$NEW_REVISION"

          echo "New tag generated: $NEW_TAG"
          echo "NEW_TAG=$NEW_TAG" >> $GITHUB_ENV

          # Optional: Check if tag already exists in remote
          if git ls-remote --exit-code --tags origin "$NEW_TAG" > /dev/null 2>&1; then
            echo "::error::Tag '$NEW_TAG' already exists in remote repository. Aborting."
            exit 1
          fi

          # Configure Git
          git config --global user.name "GitHub Actions"
          git config --global user.email "actions@github.com"

          # Create and push new tag
          git tag -a "$NEW_TAG" -m "Release $NEW_TAG"
          git push origin "$NEW_TAG"

          echo "Tag $NEW_TAG created and pushed successfully" 
          
      - name: Set KSU Version and Release Name
        if: ${{ steps.release_check.outcome == 'success' }}
        run: |
          # Use temporary directories to avoid conflicts
          if [ "${{ inputs.kernelsu_variant }}" = "Next" ]; then
            echo "Processing Next variant"
            git clone https://github.com/KernelSU-Next/KernelSU-Next.git ksu-next-tmp
            cd ksu-next-tmp
            KSU_GIT_VERSION=$(git rev-list --count HEAD)
            KSU_VERSION=$((10000 + KSU_GIT_VERSION + 200))
            echo "Next version: $KSU_VERSION"
            cd ..
            rm -rf ksu-next-tmp
            echo "RELEASE_NAME=\"GKI Kernel: KernelSU-Next ($KSU_VERSION) & SUSFS v2.1.0\"" >> $GITHUB_ENV
            
          elif [ "${{ inputs.kernelsu_variant }}" = "SukiSU" ]; then
            echo "Processing SukiSU variant"
            git clone https://github.com/SukiSU-Ultra/SukiSU-Ultra.git suki-tmp
            cd suki-tmp
            KSU_GIT_VERSION=$(git rev-list --count HEAD)
            KSU_VERSION=$((4 * 10000 + KSU_GIT_VERSION - 2815))
            echo "SukiSU version: $KSU_VERSION"
            cd ..
            rm -rf suki-tmp
            echo "RELEASE_NAME=\"GKI Kernel: SukiSU ($KSU_VERSION) & SUSFS v2.1.0\"" >> $GITHUB_ENV
            
          else
            echo "Using default naming for variant: ${{ inputs.kernelsu_variant }}"
            echo "RELEASE_NAME=\"GKI Kernel: ${{ inputs.kernelsu_variant }} & SUSFS v2.1.0\"" >> $GITHUB_ENV
          fi
          
      - name: Fetch KSU and SUSFS Commit Info
        id: build_notes
        if: ${{ steps.release_check.outcome == 'success' }}
        run: |
          # Handle 'Other' branch selection
          if [[ "${{ inputs.kernelsu_branch }}" == "Other(其他/指定)" ]]; then
            echo "Using custom branch selection"
            if [[ "${{ inputs.kernelsu_variant }}" == "Official" ]]; then
              KSU_BRANCH="main"
            elif [[ "${{ inputs.kernelsu_variant }}" == "Next" ]]; then
              KSU_BRANCH="next"
            else
              KSU_BRANCH="main"  # Default for MKSU/SukiSU
            fi
          elif [[ "${{ inputs.kernelsu_branch }}" == "Dev(开发)" || "${{ inputs.kernelsu_variant }}" == "MKSU" || "${{ inputs.kernelsu_variant }}" == "SukiSU" ]]; then
            if [[ "${{ inputs.kernelsu_variant }}" == "Official" || "${{ inputs.kernelsu_variant }}" == "MKSU" || "${{ inputs.kernelsu_variant }}" == "SukiSU" ]]; then
              KSU_BRANCH="main"
            elif [[ "${{ inputs.kernelsu_variant }}" == "Next" ]]; then
              KSU_BRANCH="next"
            fi
          elif [[ "${{ inputs.kernelsu_branch }}" == "Stable(标准)" && "${{ inputs.kernelsu_variant }}" != "MKSU" ]]; then
            KSU_REPO_URL=""
            if [ "${{ inputs.kernelsu_variant }}" == "Official" ]; then
              KSU_REPO_URL="https://github.com/tiann/KernelSU.git"
            elif [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
              KSU_REPO_URL="https://github.com/KernelSU-Next/KernelSU-Next.git"
            elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
              KSU_REPO_URL="https://github.com/SukiSU-Ultra/SukiSU-Ultra.git"
            fi
            
            if [ -n "$KSU_REPO_URL" ]; then
              TAG=$(git ls-remote --tags --sort=-v:refname "$KSU_REPO_URL" | grep -o 'refs/tags/.*' | cut -d'/' -f3 | head -n1)
              KSU_BRANCH="${TAG:-UNKNOWN_TAG}"
            else
              KSU_BRANCH="main"
            fi
          fi
          
          echo "KSU_BRANCH=$KSU_BRANCH" >> $GITHUB_ENV
          
          KSU_REPO_URL=""
          KSU_REPO_URL2=""
          if [ "${{ inputs.kernelsu_variant }}" == "Official" ]; then
            KSU_REPO_URL="https://github.com/tiann/KernelSU.git"
            KSU_REPO_URL2="tiann/KernelSU"
          elif [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
            KSU_REPO_URL="https://github.com/KernelSU-Next/KernelSU-Next.git"
            KSU_REPO_URL2="KernelSU-Next/KernelSU-Next"
          elif [ "${{ inputs.kernelsu_variant }}" == "MKSU" ]; then
            KSU_REPO_URL="https://github.com/5ec1cff/KernelSU.git"
            KSU_REPO_URL2="5ec1cff/KernelSU"
          elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
            KSU_REPO_URL="https://github.com/SukiSU-Ultra/SukiSU-Ultra.git"
            KSU_REPO_URL2="SukiSU-Ultra/SukiSU-Ultra"
          else
            echo "Warning: Unknown KernelSU variant selected. Defaulting to Official for URL generation."
            KSU_REPO_URL="https://github.com/tiann/KernelSU.git"
            KSU_REPO_URL2="tiann/KernelSU"
          fi
          
          KSU_REF=""
          KSU_URL=""
          if [[ "${{ inputs.kernelsu_branch }}" == "Stable(标准)" && "${{ inputs.kernelsu_variant }}" != "MKSU" ]]; then
            TAG=$(git ls-remote --tags --sort=-v:refname "$KSU_REPO_URL" | grep -o 'refs/tags/.*' | cut -d'/' -f3 | head -n1)
            KSU_REF="${TAG:-UNKNOWN_TAG}"
            KSU_URL="https://github.com/$KSU_REPO_URL2/releases/tag/$KSU_REF"
          elif [[ -n "$KSU_BRANCH" ]]; then
            COMMIT_HASH=$(git ls-remote "$KSU_REPO_URL" "refs/heads/$KSU_BRANCH" | awk '{ print $1 }')
            KSU_REF="${COMMIT_HASH:-UNKNOWN_COMMIT}"
            KSU_URL="https://github.com/$KSU_REPO_URL2/commit/$KSU_REF"
          else
            echo "Error: KSU branch could not be determined. KSU commit information will be incomplete." >&2
          fi
          
          FINAL_RELEASE_NOTES="${{ env.INITIAL_RELEASE_NOTES }}"
          
          if [ "${{ inputs.kernelsu_variant }}" == "Official" ]; then
            FINAL_RELEASE_NOTES+="\nOfficial Manager:\n-> https://github.com/tiann/KernelSU"
          elif [ "${{ inputs.kernelsu_variant }}" == "Next" ]; then
            FINAL_RELEASE_NOTES+="\nNext Manager:\n-> https://github.com/KernelSU-Next/KernelSU-Next"
          elif [ "${{ inputs.kernelsu_variant }}" == "MKSU" ]; then
            FINAL_RELEASE_NOTES+="\nMKSU Manager:\n-> https://github.com/5ec1cff/KernelSU"
          elif [ "${{ inputs.kernelsu_variant }}" == "SukiSU" ]; then
            FINAL_RELEASE_NOTES+="\nSukiSU Manager:\n-> https://github.com/SukiSU-Ultra/SukiSU-Ultra"
          fi
          
          FINAL_RELEASE_NOTES+="\n\nLTO: thin"
          FINAL_RELEASE_NOTES+="\n\n<details>"
          FINAL_RELEASE_NOTES+="\n<summary>Commit Information</summary>"
          FINAL_RELEASE_NOTES+="\n\nCommit hashes and links (the following commits refer to the progress of KSU or SUSFS at the time of this compilation):"
          FINAL_RELEASE_NOTES+="\n- **KernelSU is ${{ inputs.kernelsu_variant }}-${KSU_BRANCH}** (Commit): [${KSU_REF}](${KSU_URL})"
          FINAL_RELEASE_NOTES+="\n- **SUSFS4KSU** (Commit):"
          
          GITLAB_OWNER="simonpunk"
          GITLAB_REPO="susfs4ksu"
          
          declare -A BRANCH_MAP=(
            ["a12-5.10"]="gki-android12-5.10"
            ["a13-5.10"]="gki-android13-5.10"
            ["a13-5.15"]="gki-android13-5.15"
            ["a14-5.15"]="gki-android14-5.15"
            ["a14-6.1"]="gki-android14-6.1"
            ["a15-6.6"]="gki-android15-6.6"
          )
          
          declare -a KERNELS_TO_FETCH_SUSFS
          if [[ "${{ inputs.kernels_to_build }}" == "all" ]]; then
            for key in "${!BRANCH_MAP[@]}"; do
              KERNELS_TO_FETCH_SUSFS+=("$key")
            done
          else
            IFS=',' read -r -a INPUT_KERNELS <<< "${{ inputs.kernels_to_build }}"
            for kernel_input in "${INPUT_KERNELS[@]}"; do
              case "$kernel_input" in
                "a12")
                  KERNELS_TO_FETCH_SUSFS+=("a12-5.10")
                  ;;
                "a13")
                  KERNELS_TO_FETCH_SUSFS+=("a13-5.10" "a13-5.15")
                  ;;
                "a14")
                  KERNELS_TO_FETCH_SUSFS+=("a14-5.15" "a14-6.1")
                  ;;
                "a15")
                  KERNELS_TO_FETCH_SUSFS+=("a15-6.6")
                  ;;
                *)
                  if [[ -n "${BRANCH_MAP[$kernel_input]}" ]]; then
                    KERNELS_TO_FETCH_SUSFS+=("$kernel_input")
                  else
                    echo "Warning: Input kernel '$kernel_input' does not have a defined SUSFS branch mapping. Skipping." >&2
                  fi
                  ;;
              esac
            done
          fi

          mapfile -t SORTED_KERNELS < <(printf '%s\n' "${KERNELS_TO_FETCH_SUSFS[@]}" | sort)
          KERNELS_TO_FETCH_SUSFS=("${SORTED_KERNELS[@]}")
          
          for kernel_id in "${KERNELS_TO_FETCH_SUSFS[@]}"; do
            susfs_branch_name="${BRANCH_MAP[$kernel_id]}"
            if [[ -n "$susfs_branch_name" ]]; then
              SUSFS_COMMIT_HASH=$(git ls-remote "https://gitlab.com/$GITLAB_OWNER/$GITLAB_REPO.git" "refs/heads/$susfs_branch_name" | awk '{ print $1 }')
              SUSFS_COMMIT_HASH="${SUSFS_COMMIT_HASH:-UNKNOWN_COMMIT}"
              SUSFS_COMMIT_URL="https://gitlab.com/$GITLAB_OWNER/$GITLAB_REPO/-/commit/$SUSFS_COMMIT_HASH"
              FINAL_RELEASE_NOTES+="\n - ${kernel_id}: [${SUSFS_COMMIT_HASH}](${SUSFS_COMMIT_URL})"
            else
              echo "Warning: SUSFS branch name not found for kernel ID: $kernel_id. Cannot fetch commit info." >&2
            fi
          done
          
          FINAL_RELEASE_NOTES+="\n\n</details>"
          
          echo "FULL_RELEASE_NOTES<<EOF" >> $GITHUB_ENV
          echo -e "$FINAL_RELEASE_NOTES" >> $GITHUB_ENV
          echo "EOF" >> $GITHUB_ENV
          
      - name: Download Artifacts
        if: ${{ steps.release_check.outcome == 'success' }}
        uses: actions/download-artifact@v4
        with:
          path: release-artifacts-${{ github.run_id }}
          
      - name: Prepare Artifacts for Upload
        if: ${{ steps.release_check.outcome == 'success' }}
        run: |
          # Create a new directory for release assets
          mkdir -p release-assets
          
          # Find and copy all artifacts to a flat directory structure
          find ./release-artifacts-${{ github.run_id }} -type f -exec cp -v {} ./release-assets \;
          
          # Generate checksums
          cd release-assets
          sha256sum * > SHA256SUMS.txt
          cd ..
          
          echo "Artifacts prepared for upload:"
          ls -lh ./release-assets
          
      - name: Create GitHub Release and Upload Assets
        if: ${{ steps.release_check.outcome == 'success' }}
        uses: softprops/action-gh-release@v2
        with:
          tag_name: ${{ env.NEW_TAG }}
          prerelease: true
          name: ${{ env.RELEASE_NAME }}
          body: ${{ env.FULL_RELEASE_NOTES }}
          files: ./release-assets/*
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Send Telegram Message
        if: ${{ steps.release_check.outcome == 'success' }}
        env:
          TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
          TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
          TELEGRAM_MESSAGE_THREAD_ID: ${{ secrets.TELEGRAM_MESSAGE_THREAD_ID }}
        run: |
            curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
            -d "chat_id=$TELEGRAM_CHAT_ID" \
            -d "message_thread_id=$TELEGRAM_MESSAGE_THREAD_ID" \
            -d "text=Latest release: 
            https://github.com/ShirkNeko/GKI_KernelSU_SUSFS/releases/tag/${{ env.NEW_TAG }}
            ${{ env.FULL_RELEASE_NOTES }}" 


================================================
FILE: Original.md
================================================
# Wild Kernels for Android

## Your warranty is no longer valid!

I am **not responsible** for bricked devices, damaged hardware, or any issues that arise from using this kernel.

**Please** do thorough research and fully understand the features included in this kernel before flashing it!

By flashing this kernel, **YOU** are choosing to make these modifications. If something goes wrong, **do not blame me**!

---

### Proceed at your own risk!

---

# Kernels:
 
[GKI](https://github.com/WildPlusKernel/GKI_KernelSU_SUSFS)  
[Sultan](https://github.com/WildPlusKernel/Sultan_KernelSU_SUSFS)  
[OnePlus](https://github.com/WildPlusKernel/OnePlus_KernelSU_SUSFS)  
[Legacy Pixels](https://github.com/WildPlusKernel/Pixel_KernelSU_SUSFS)  

---

# Other Links:

[Kernel Patches](https://github.com/WildPlusKernel/kernel_patches)  
[Old Build Scripts](https://github.com/TheWildJames/kernel_build_scripts)  
[Kernel Flasher](https://github.com/capntrips/KernelFlasher/releases)  

---

# Installation instructions: 

Follow the steps for GKI:  
[Installation](https://kernelsu.org/guide/installation.html)

To get boot.img format:  
[Telegram Bot](https://t.me/wildpluskernel/22076)  
[Get My Kernel Format](https://github.com/TheWildJames/Get_My_Kernel_Format)

---

# Features

- **KernelSU**: KernelSU is a root solution for Android GKI devices, it works in kernel mode and grants root permission to userspace applications directly in kernel space.
- **SUSFS**: An addon root hiding kernel patches and userspace module for KernelSU.

---

# Credits

- **KernelSU**: Developed by [tiann](https://github.com/tiann).
- **KernelSU-Next**: Developed by [rifsxd](https://github.com/rifsxd/KernelSU-Next).
- **Magic-KSU**: Developed by [5ec1cff](https://github.com/5ec1cff/KernelSU).  
- **SUSFS**: Developed by [simonpunk](https://gitlab.com/simonpunk/susfs4ksu.git).
- **SUSFS Module**: Developed by [sidex15](https://github.com/sidex15).
- **Sultan Kernels**: Developed by [kerneltoast](https://github.com/kerneltoast).

Special thanks to the open-source community for their contributions!

---

# Support

If you encounter any issues or need help, feel free to open an issue in this repository or reach out to me.

---

# Disclaimer

Flashing this kernel will void your warranty, and there is always a risk of bricking your device. Please make sure to back up your data and ensure you understand the risks before proceeding.

**Proceed at your own risk!**

---

# To-DO

- [X] Get Stoned & Build kernels!

---

### If you need your kernel version added please let me know and I will build it!

[Telegram](https://t.me/TheWildJames) NO DMS PLEASE! Ask in chat below!  
[Telegram Group](https://t.me/wildpluskernel)  

# Special thanks to the following people for their contributions!
This helps me alot! <3

[simonpunk](https://gitlab.com/simonpunk/susfs4ksu.git) - Created SUSFS!  
[sidex15](https://github.com/sidex15) - Created module!  
[backslashxx](https://github.com/backslashxx) - Helped with patches!  
[Teemo](https://github.com/liqideqq) - Helped with patches!  
[幕落](https://github.com/MuLuo688) - Donation!

If you have contributed and are not here please remind me!


================================================
FILE: README.md
================================================
### 这是一个自动构建GKI内核的仓库

> 非GKI可以尝试[SukiSU云盘](https://alist.shirkneko.top)的资源,不支持一加ColorOS14、15
>
> 第一次使用务必**详细阅读**以下内容,不要因为懒惰而占用他人时间!
>
> 最近更新:1.一加8ELITE处理器可使用6.6内核(未测试)、2.修复这些GKI版本编译报错——[5.10.(66、81、101)、5.15.(74、94、104)]
### 下载
可以[在此](https://github.com/zzh20188/GKI_KernelSU_SUSFS/releases)下载您的资源
1. 关于Anykernel3.zip,下载即用!
- 然后使用刷入软件,例如[HorizonKernelFlasher](https://github.com/libxzr/HorizonKernelFlasher/releases)进行刷写内核
2. 关于boot.img,下载与你内核格式相匹配的(无压缩、gz、lz4),[参考](https://kernelsu.org/zh_CN/guide/installation.html#install-by-kernelsu-boot-image) **找到合适的 boot.img** 一节
- 使用[FASTBOOT](https://magiskcn.com/)刷入,或者使用刷写软件刷写到ROOT所在插槽的boot分区(例如爱玩机、Kernelflasher)

### 支持
| 功能 | 说明 |
| --- | --- |
| [KernelSU](https://kernelsu.org/zh_CN/) | 包括**原版、MKSU、SUKISU、NEXT** |
| [SUSFS4](https://gitlab.com/simonpunk/susfs4ksu) | 在内核层面辅助KSU隐藏的功能补丁 |
| [BBR](https://blog.thinkin.top/archives/ke-pu-bbrdao-di-shi-shi-me) | TCP拥塞控制算法,使网络更快? |
| [Wireguard](https://zh.wikipedia.org/wiki/WireGuard) | 参考左侧wiki链接 |
| [LZ4KD](https://github.com/ShirkNeko/SukiSU_patch/tree/main/other) | 听说是来自HUAWEI source的ZRAM算法,补丁由[云彩之枫](http://www.coolapk.com/u/24963680)移植 |

<details>

<summary>还支持这几种算法,可在scene的ZRAM切换</summary>

### LZ4K、LZ4HC、deflate、842、~~zstdn~~、lz4k_oplus

</details>

### KSU管理器
在编译完成后,你会看到类似 `Next-Manager(12600)`的文件,简单来说这就是与内核一同上传的***最新管理器***。
![例子](./assets/get_manager.gif)
同样的,在[Release](https://github.com/zzh20188/GKI_KernelSU_SUSFS/releases)也同样包含***最新管理器***!
![release](./assets/release_manager.gif)

### 紧急救援指南

> [!IMPORTANT]
> **触发条件**  
> 当设备因以下原因无法启动时需执行救援:  
> - 刷入错误/不兼容的内核
> - 内核版本适配异常(如5.10.66刷233版本的内核)
1. 进入FASTBOOT模式

- 物理键组合:电源+音量- 或者 ADB命令: `adb reboot bootloader`

2. 执行刷写命令
```bash
$ fastboot flash boot <boot.img文件全称>
```
### 原版镜像获取途径
1. 从现有固件提取

- 卡刷包:解压后使用[payload-dumper工具](https://magiskcn.com/payload-dumper-go-boot.html)

- 线刷包:直接解压获取boot.img

2.外部资源获取

- 社区平台搜索:机型+原厂boot (如XDA/酷安)

- [移动端在线提取远程获取](https://magiskcn.com/payload-dumper-compose.html)

> [!TIP]
> ### 内核版本兼容性说明
> 
> **1. 跨子版本刷机规则**  
> 当手机GKI主版本为5.10.x时(如5.10.168),可刷写同主版本更高子版本的内核(如5.10.198)。  
> 关于**X-lts**版本,以 `android12-5.10.X-lts-AnyKernel3.zip` 为例:
> - **X-lts** 表示长期支持版(子版本号最大,当前示例为5.10.236)
> - LTS随着GKI源码更新,编译版本号将持续递增(其他如198的版本,是永久固定的)
> - ⚠️ 注意:LTS虽为最新,**但**最新版≠最稳定(如6.6.x存在自动重启BUG)
> 
> **2. 内核版本伪装方法**  
> 在MT管理器终端执行:
> ```bash
> uname -r | sed 's/^[^-]*//'
> ```
> 获取后直接复制,将此版本号填入Action编译面板即可实现内核版本伪装。
> 
> **3. 编译优化建议**  
> 修改 [配置文件](.github/workflows/kernel-a12-5.10.yml)(如kernel-a12-5.10.yml):
> - ▶️ 删除/注释不需要的GKI版本配置(**加速编译**)
> - ➕ 添加指定GKI版本(参考[定制指南](https://www.coolapk.com/feed/62820671?shareKey=OGMxYmZmNTk0YzIxNjgxNzM1MzI~&shareUid=11253396&shareFrom=com.coolapk.market_15.2.2))
> - 📅 内核构建时间,参照[gki-kernel.yml](.github/workflows/gki-kernel.yml) 文件 **`第490行左右的注释`** 进行修改

### 更多内容
可以提及您的意见...我会尝试!


================================================
FILE: hmbird_patch.c
================================================
#include <linux/init.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/slab.h>
#include <linux/string.h>

static int __init hmbird_patch_init(void)
{
    struct device_node *ver_np;
    const char *type;
    int ret;

    ver_np = of_find_node_by_path("/soc/oplus,hmbird/version_type");
    if (!ver_np)
    {
        pr_info("hmbird_patch: version_type node not found\n");
        return 0;
    }

    ret = of_property_read_string(ver_np, "type", &type);
    if (ret)
    {
        pr_info("hmbird_patch: type property not found\n");
        of_node_put(ver_np);
        return 0;
    }

    if (strcmp(type, "HMBIRD_OGKI"))
    {
        of_node_put(ver_np);
        return 0;
    }

    struct property *prop = of_find_property(ver_np, "type", NULL);
    if (prop)
    {
        struct property *new_prop = kmalloc(sizeof(*prop), GFP_KERNEL);
        if (!new_prop)
        {
            pr_info("hmbird_patch: kmalloc for new_prop failed\n");
            of_node_put(ver_np);
            return 0;
        }
        memcpy(new_prop, prop, sizeof(*prop));
        new_prop->value = kmalloc(strlen("HMBIRD_GKI") + 1, GFP_KERNEL);
        if (!new_prop->value)
        {
            pr_info("hmbird_patch: kmalloc for new_prop->value failed\n");
            kfree(new_prop);
            of_node_put(ver_np);
            return 0;
        }
        strcpy(new_prop->value, "HMBIRD_GKI");
        new_prop->length = strlen("HMBIRD_GKI") + 1;

        if (of_remove_property(ver_np, prop) != 0)
        {
            pr_info("hmbird_patch: of_remove_property failed\n");
            return 0;
        }
        if (of_add_property(ver_np, new_prop) != 0)
        {
            pr_info("hmbird_patch: of_add_property failed\n");
            return 0;
        }
        pr_info("hmbird_patch: success from HMBIRD_OGKI to HMBIRD_GKI\n");
    }
    else
    {
        pr_info("hmbird_patch: type property structure not found\n");
    }
    of_node_put(ver_np);
    return 0;
}
early_initcall(hmbird_patch_init);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("reigadegr");
MODULE_DESCRIPTION("Forcefully convert HMBIRD_OGKI to HMBIRD_GKI.");
Download .txt
gitextract_gsh06kp2/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   └── feature_request.yml
│   └── workflows/
│       ├── build-kernel-a12-5-10.yml
│       ├── build-kernel-a13-5-10.yml
│       ├── build-kernel-a13-5-15.yml
│       ├── build-kernel-a14-5-15.yml
│       ├── build-kernel-a14-6-1.yml
│       ├── build-kernel-a15-6-6.yml
│       ├── get-manager.yml
│       ├── gki-kernel.yml
│       ├── kernel-a12-5.10.yml
│       ├── kernel-a13-5.10.yml
│       ├── kernel-a13-5.15.yml
│       ├── kernel-a14-5.15.yml
│       ├── kernel-a14-6.1.yml
│       ├── kernel-a15-6.6.yml
│       └── test_release.yml
├── Original.md
├── README.md
└── hmbird_patch.c
Download .txt
SYMBOL INDEX (1 symbols across 1 files)

FILE: hmbird_patch.c
  function hmbird_patch_init (line 7) | static int __init hmbird_patch_init(void)
Condensed preview — 20 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (128K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 1413,
    "preview": "name: Bug Report\ndescription: Create a bug report\nlabels: [Bug]\n\nbody:\n  - type: textarea\n    attributes:\n        label:"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 687,
    "preview": "name: Feature Request\ndescription: Create a feature request\nlabels: [Feature Request]\n\nbody:\n  - type: textarea\n    attr"
  },
  {
    "path": ".github/workflows/build-kernel-a12-5-10.yml",
    "chars": 16076,
    "preview": "name: 编译内核a12-5-10\n\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actions:"
  },
  {
    "path": ".github/workflows/build-kernel-a13-5-10.yml",
    "chars": 1664,
    "preview": "name: 编译内核a13-5-10\n\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actions:"
  },
  {
    "path": ".github/workflows/build-kernel-a13-5-15.yml",
    "chars": 1794,
    "preview": "name: 编译内核a13-5-15\n\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actions:"
  },
  {
    "path": ".github/workflows/build-kernel-a14-5-15.yml",
    "chars": 1664,
    "preview": "name: 编译内核a14-5-15\n\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actions:"
  },
  {
    "path": ".github/workflows/build-kernel-a14-6-1.yml",
    "chars": 1659,
    "preview": "name: 编译内核a14-6-1\n\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actions: "
  },
  {
    "path": ".github/workflows/build-kernel-a15-6-6.yml",
    "chars": 1844,
    "preview": "name: 编译内核a15-6-6\n\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actions: "
  },
  {
    "path": ".github/workflows/get-manager.yml",
    "chars": 3531,
    "preview": "name: GetManager\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actions: re"
  },
  {
    "path": ".github/workflows/gki-kernel.yml",
    "chars": 36723,
    "preview": "name: GKI Kernel Build\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actio"
  },
  {
    "path": ".github/workflows/kernel-a12-5.10.yml",
    "chars": 3186,
    "preview": "name: Android 12 5.10\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  action"
  },
  {
    "path": ".github/workflows/kernel-a13-5.10.yml",
    "chars": 2398,
    "preview": "name: Android 13 5.10\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  action"
  },
  {
    "path": ".github/workflows/kernel-a13-5.15.yml",
    "chars": 2764,
    "preview": "name: Android 13 5.15\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  action"
  },
  {
    "path": ".github/workflows/kernel-a14-5.15.yml",
    "chars": 2463,
    "preview": "name: Android 14 5.15\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  action"
  },
  {
    "path": ".github/workflows/kernel-a14-6.1.yml",
    "chars": 2992,
    "preview": "name: Android 14 6.1\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actions"
  },
  {
    "path": ".github/workflows/kernel-a15-6.6.yml",
    "chars": 2642,
    "preview": "name: Android 15 6.6\npermissions:\n  contents: write  # Allow writing to repository contents (for pushing tags)\n  actions"
  },
  {
    "path": ".github/workflows/test_release.yml",
    "chars": 24797,
    "preview": "name: Test Release\n\npermissions:\n  contents: write\n  actions: write\n\nconcurrency:\n  group: release-${{ github.ref }}\n  c"
  },
  {
    "path": "Original.md",
    "chars": 3179,
    "preview": "# Wild Kernels for Android\n\n## Your warranty is no longer valid!\n\nI am **not responsible** for bricked devices, damaged "
  },
  {
    "path": "README.md",
    "chars": 2810,
    "preview": "### 这是一个自动构建GKI内核的仓库\n\n> 非GKI可以尝试[SukiSU云盘](https://alist.shirkneko.top)的资源,不支持一加ColorOS14、15\n>\n> 第一次使用务必**详细阅读**以下内容,不要因"
  },
  {
    "path": "hmbird_patch.c",
    "chars": 2143,
    "preview": "#include <linux/init.h>\n#include <linux/module.h>\n#include <linux/of.h>\n#include <linux/slab.h>\n#include <linux/string.h"
  }
]

About this extraction

This page contains the full source code of the ShirkNeko/GKI_KernelSU_SUSFS GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 20 files (113.7 KB), approximately 33.5k tokens, and a symbol index with 1 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!