|
@@ -1,97 +0,0 @@
|
|
|
-name: Setup Wild KSU
|
|
|
|
|
-description: Download and configure Wild KSU with version tracking
|
|
|
|
|
-inputs:
|
|
|
|
|
- ksu_branch:
|
|
|
|
|
- description: 'KernelSU branch or commit (empty = latest dev-susfs branch tip)'
|
|
|
|
|
- required: false
|
|
|
|
|
- default: ""
|
|
|
|
|
-
|
|
|
|
|
-runs:
|
|
|
|
|
- using: composite
|
|
|
|
|
- steps:
|
|
|
|
|
- - name: Download Wild KSU
|
|
|
|
|
- shell: bash
|
|
|
|
|
- working-directory: ${{ github.workspace }}/kernel
|
|
|
|
|
- run: |
|
|
|
|
|
- set -euo pipefail
|
|
|
|
|
-
|
|
|
|
|
- # Retry transient network errors (up to 5 attempts, 5s backoff).
|
|
|
|
|
- # Diagnostics go to stderr so pipes to grep are not polluted.
|
|
|
|
|
- retry() {
|
|
|
|
|
- local n=0
|
|
|
|
|
- until [ "$n" -ge 5 ]; do
|
|
|
|
|
- "$@" && return 0
|
|
|
|
|
- n=$((n+1))
|
|
|
|
|
- echo "retry $n/5 failed for: $*" >&2
|
|
|
|
|
- sleep 5
|
|
|
|
|
- done
|
|
|
|
|
- return 1
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- KSU_REPO="https://github.com/pershoot/KernelSU-Next.git"
|
|
|
|
|
- KSU_INPUT="${{ inputs.ksu_branch }}"
|
|
|
|
|
- if [ -z "$KSU_INPUT" ]; then
|
|
|
|
|
- KSU_INPUT="dev-susfs"
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- # Try as branch first, fall back to commit
|
|
|
|
|
- if retry git ls-remote --heads "$KSU_REPO" "$KSU_INPUT" | grep -q .; then
|
|
|
|
|
- echo "Using KernelSU-Next branch: $KSU_INPUT"
|
|
|
|
|
- curl -LSs --retry 5 --retry-delay 5 --retry-all-errors "https://raw.githubusercontent.com/pershoot/KernelSU-Next/dev-susfs/kernel/setup.sh" | bash -s dev-susfs
|
|
|
|
|
- retry git -C KernelSU-Next/kernel fetch --depth=50 origin "$KSU_INPUT"
|
|
|
|
|
- git -C KernelSU-Next/kernel checkout "origin/$KSU_INPUT"
|
|
|
|
|
- else
|
|
|
|
|
- echo "Using KernelSU-Next commit: $KSU_INPUT"
|
|
|
|
|
- curl -LSs --retry 5 --retry-delay 5 --retry-all-errors "https://raw.githubusercontent.com/pershoot/KernelSU-Next/dev-susfs/kernel/setup.sh" | bash -s dev-susfs
|
|
|
|
|
- retry git -C KernelSU-Next/kernel fetch --depth=50 origin "$KSU_INPUT"
|
|
|
|
|
- git -C KernelSU-Next/kernel checkout "$KSU_INPUT"
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- cd KernelSU-Next/kernel
|
|
|
|
|
-
|
|
|
|
|
- # Anchor the version to the upstream sync point (merge-base with
|
|
|
|
|
- # origin/<base-branch>) exactly like the official manager's
|
|
|
|
|
- # versionCode and pershoot's Kbuild (c0a2c5fd), so the kernel's
|
|
|
|
|
- # KSU_VERSION_FALLBACK matches the manager version the kernel
|
|
|
|
|
- # reports at runtime. Fall back to origin/main, then HEAD.
|
|
|
|
|
- BASE_BRANCH=$(git rev-parse --abbrev-ref HEAD | sed 's:-.*::' 2>/dev/null)
|
|
|
|
|
- BASE_COMMIT=$(git merge-base HEAD refs/remotes/origin/$BASE_BRANCH 2>/dev/null || git merge-base HEAD refs/remotes/origin/main 2>/dev/null || echo HEAD)
|
|
|
|
|
- COMMITS_COUNT=$(/usr/bin/git rev-list --count $BASE_COMMIT)
|
|
|
|
|
- BASE_VERSION=30000
|
|
|
|
|
- KSU_VERSION=$(expr $COMMITS_COUNT "+" $BASE_VERSION)
|
|
|
|
|
- sed -i "s/^KSU_VERSION_FALLBACK := 1$/KSU_VERSION_FALLBACK := ${KSU_VERSION}/" Kbuild
|
|
|
|
|
-
|
|
|
|
|
- KSU_GIT_TAG="$(git describe --tags --abbrev=0 $BASE_COMMIT 2>/dev/null || echo "v0.0.1")"
|
|
|
|
|
- sed -i "s/^KSU_VERSION_TAG_FALLBACK := v0.0.1$/KSU_VERSION_TAG_FALLBACK := ${KSU_GIT_TAG}/" Kbuild
|
|
|
|
|
-
|
|
|
|
|
- - name: Extract KSU Version Info
|
|
|
|
|
- id: ksu-version
|
|
|
|
|
- shell: bash
|
|
|
|
|
- working-directory: ${{ github.workspace }}/kernel/KernelSU-Next
|
|
|
|
|
- run: |
|
|
|
|
|
- # Get the base branch name by stripping suffixes (e.g., dev-susfs -> dev)
|
|
|
|
|
- BASE_BRANCH=$(git rev-parse --abbrev-ref HEAD | sed 's:-.*::' 2>/dev/null)
|
|
|
|
|
- # Find the merge-base with the official origin branch to exclude local commits
|
|
|
|
|
- BASE_COMMIT=$(git merge-base HEAD refs/remotes/origin/$BASE_BRANCH 2>/dev/null || git merge-base HEAD refs/remotes/origin/main 2>/dev/null || echo HEAD)
|
|
|
|
|
- KSU_GIT_VERSION=$(git rev-list --count $BASE_COMMIT 2>/dev/null)
|
|
|
|
|
- KSU_GIT_TAG=$(git describe --tags --abbrev=0 $BASE_COMMIT 2>/dev/null || echo "")
|
|
|
|
|
- KSU_COMMIT=$(git rev-parse --short HEAD 2>/dev/null)
|
|
|
|
|
- KSU_VERSION=$((30000 + KSU_GIT_VERSION))
|
|
|
|
|
-
|
|
|
|
|
- echo "KSU_GIT_TAG=$KSU_GIT_TAG" >> $GITHUB_ENV
|
|
|
|
|
- echo "KSU_VERSION=$KSU_VERSION" >> $GITHUB_ENV
|
|
|
|
|
- echo "KSU_COMMIT=$KSU_COMMIT" >> $GITHUB_ENV
|
|
|
|
|
-
|
|
|
|
|
- - name: 'Fix KernelSU-Next'
|
|
|
|
|
- shell: bash
|
|
|
|
|
- working-directory: ${{ github.workspace }}/kernel/KernelSU-Next
|
|
|
|
|
- run: |
|
|
|
|
|
- set -euo pipefail
|
|
|
|
|
- cp ${{ github.action_path }}/patches/static.patch "${{ github.workspace }}/kernel/KernelSU-Next/static.patch"
|
|
|
|
|
- patch -p1 < static.patch
|
|
|
|
|
-
|
|
|
|
|
- - name: Enable Kernel Configs
|
|
|
|
|
- uses: ./.github/actions/set-kernel-config
|
|
|
|
|
- with:
|
|
|
|
|
- config_list: |
|
|
|
|
|
- CONFIG_KSU=y
|
|
|