ci: use ddk for faster ci, manual gki image build
Co-authored-by: Ylarod <me@ylarod.cn>
This commit is contained in:
32
.github/workflows/build-gki-image.yml
vendored
Normal file
32
.github/workflows/build-gki-image.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
name: Build Android GKI Image
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
debug:
|
||||||
|
description: 'Build debug kernel'
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-a12-kernel:
|
||||||
|
uses: ./.github/workflows/build-kernel-a12.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
debug: ${{ github.event.inputs.debug || false }}
|
||||||
|
build-a13-kernel:
|
||||||
|
uses: ./.github/workflows/build-kernel-a13.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
debug: ${{ github.event.inputs.debug || false }}
|
||||||
|
build-a14-kernel:
|
||||||
|
uses: ./.github/workflows/build-kernel-a14.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
debug: ${{ github.event.inputs.debug || false }}
|
||||||
|
build-a15-kernel:
|
||||||
|
uses: ./.github/workflows/build-kernel-a15.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
debug: ${{ github.event.inputs.debug || false }}
|
||||||
112
.github/workflows/build-kernel-a12.yml
vendored
Normal file
112
.github/workflows/build-kernel-a12.yml
vendored
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
name: Build Kernel - Android 12
|
||||||
|
on:
|
||||||
|
# push:
|
||||||
|
# branches: ["main", "ci", "checkci"]
|
||||||
|
# paths:
|
||||||
|
# - ".github/workflows/deps/gki/build-kernel-a12.yml"
|
||||||
|
# - ".github/workflows/deps/gki/gki-kernel.yml"
|
||||||
|
# - ".github/scripts/build_a12.sh"
|
||||||
|
# - "kernel/**"
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
debug:
|
||||||
|
description: 'Build debug kernel'
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
jobs:
|
||||||
|
build-kernel:
|
||||||
|
if: github.event_name != 'pull_request' && github.ref != 'refs/heads/checkci'
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- sub_level: 209
|
||||||
|
os_patch_level: 2024-05
|
||||||
|
- sub_level: 218
|
||||||
|
os_patch_level: 2024-08
|
||||||
|
- sub_level: 226
|
||||||
|
os_patch_level: 2024-11
|
||||||
|
- sub_level: 233
|
||||||
|
os_patch_level: 2025-02
|
||||||
|
- sub_level: 236
|
||||||
|
os_patch_level: 2025-05
|
||||||
|
uses: ./.github/workflows/gki-kernel.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
version: android12-5.10
|
||||||
|
version_name: android12-5.10.${{ matrix.sub_level }}
|
||||||
|
tag: android12-5.10-${{ matrix.os_patch_level }}
|
||||||
|
os_patch_level: ${{ matrix.os_patch_level }}
|
||||||
|
patch_path: "5.10"
|
||||||
|
debug: ${{ inputs.debug || false }}
|
||||||
|
|
||||||
|
upload-artifacts:
|
||||||
|
needs: build-kernel
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }}
|
||||||
|
env:
|
||||||
|
CHAT_ID: ${{ secrets.CHAT_ID }}
|
||||||
|
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||||
|
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
|
||||||
|
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
|
||||||
|
COMMIT_URL: ${{ github.event.head_commit.url }}
|
||||||
|
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||||
|
steps:
|
||||||
|
- name: Download artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: KernelSU
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: List artifacts
|
||||||
|
run: |
|
||||||
|
tree
|
||||||
|
|
||||||
|
- name: Download prebuilt toolchain
|
||||||
|
run: |
|
||||||
|
AOSP_MIRROR=https://android.googlesource.com
|
||||||
|
BRANCH=main-kernel-build-2024
|
||||||
|
git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools
|
||||||
|
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
|
||||||
|
pip3 install telethon
|
||||||
|
|
||||||
|
- name: Set boot sign key
|
||||||
|
env:
|
||||||
|
BOOT_SIGN_KEY: ${{ secrets.BOOT_SIGN_KEY }}
|
||||||
|
run: |
|
||||||
|
if [ ! -z "$BOOT_SIGN_KEY" ]; then
|
||||||
|
echo "$BOOT_SIGN_KEY" > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Bot session cache
|
||||||
|
id: bot_session_cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
if: false
|
||||||
|
with:
|
||||||
|
path: scripts/ksubot.session
|
||||||
|
key: ${{ runner.os }}-bot-session
|
||||||
|
|
||||||
|
- name: Build boot images
|
||||||
|
run: |
|
||||||
|
export AVBTOOL=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/bin/avbtool
|
||||||
|
export GZIP=$GITHUB_WORKSPACE/build-tools/path/linux-x86/gzip
|
||||||
|
export LZ4=$GITHUB_WORKSPACE/build-tools/path/linux-x86/lz4
|
||||||
|
export MKBOOTIMG=$GITHUB_WORKSPACE/mkbootimg/mkbootimg.py
|
||||||
|
export UNPACK_BOOTIMG=$GITHUB_WORKSPACE/mkbootimg/unpack_bootimg.py
|
||||||
|
cd $GITHUB_WORKSPACE/KernelSU
|
||||||
|
export VERSION=$(($(git rev-list --count HEAD) + 10200))
|
||||||
|
echo "VERSION: $VERSION"
|
||||||
|
cd -
|
||||||
|
bash $GITHUB_WORKSPACE/KernelSU/.github/scripts/build_a12.sh
|
||||||
|
|
||||||
|
- name: Display structure of boot files
|
||||||
|
run: ls -R
|
||||||
|
|
||||||
|
- name: Upload images artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: boot-images-android12
|
||||||
|
path: Image-android12*/*.img.gz
|
||||||
147
.github/workflows/build-kernel-a13.yml
vendored
Normal file
147
.github/workflows/build-kernel-a13.yml
vendored
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
name: Build Kernel - Android 13
|
||||||
|
on:
|
||||||
|
# push:
|
||||||
|
# branches: ["main", "ci", "checkci"]
|
||||||
|
# paths:
|
||||||
|
# - ".github/workflows/deps/gki/build-kernel-a13.yml"
|
||||||
|
# - ".github/workflows/deps/gki/gki-kernel.yml"
|
||||||
|
# - ".github/scripts/build_a13.sh"
|
||||||
|
# - "kernel/**"
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
debug:
|
||||||
|
description: 'Build debug kernel'
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
jobs:
|
||||||
|
build-kernel:
|
||||||
|
if: github.event_name != 'pull_request' && github.ref != 'refs/heads/checkci'
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- version: "5.10"
|
||||||
|
sub_level: 209
|
||||||
|
os_patch_level: 2024-05
|
||||||
|
- version: "5.10"
|
||||||
|
sub_level: 210
|
||||||
|
os_patch_level: 2024-06
|
||||||
|
- version: "5.10"
|
||||||
|
sub_level: 214
|
||||||
|
os_patch_level: 2024-07
|
||||||
|
- version: "5.10"
|
||||||
|
sub_level: 218
|
||||||
|
os_patch_level: 2024-08
|
||||||
|
- version: "5.10"
|
||||||
|
sub_level: 223
|
||||||
|
os_patch_level: 2024-11
|
||||||
|
- version: "5.10"
|
||||||
|
sub_level: 228
|
||||||
|
os_patch_level: 2025-01
|
||||||
|
- version: "5.10"
|
||||||
|
sub_level: 234
|
||||||
|
os_patch_level: 2025-03
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 148
|
||||||
|
os_patch_level: 2024-05
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 149
|
||||||
|
os_patch_level: 2024-07
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 151
|
||||||
|
os_patch_level: 2024-08
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 153
|
||||||
|
os_patch_level: 2024-09
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 167
|
||||||
|
os_patch_level: 2024-11
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 178
|
||||||
|
os_patch_level: 2024-11
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 170
|
||||||
|
os_patch_level: 2025-01
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 178
|
||||||
|
os_patch_level: 2025-03
|
||||||
|
uses: ./.github/workflows/gki-kernel.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
version: android13-${{ matrix.version }}
|
||||||
|
version_name: android13-${{ matrix.version }}.${{ matrix.sub_level }}
|
||||||
|
tag: android13-${{ matrix.version }}-${{ matrix.os_patch_level }}
|
||||||
|
os_patch_level: ${{ matrix.os_patch_level }}
|
||||||
|
patch_path: ${{ matrix.version }}
|
||||||
|
debug: ${{ inputs.debug || false }}
|
||||||
|
|
||||||
|
upload-artifacts:
|
||||||
|
needs: build-kernel
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }}
|
||||||
|
env:
|
||||||
|
CHAT_ID: ${{ secrets.CHAT_ID }}
|
||||||
|
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||||
|
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
|
||||||
|
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
|
||||||
|
COMMIT_URL: ${{ github.event.head_commit.url }}
|
||||||
|
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||||
|
steps:
|
||||||
|
- name: Download artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: KernelSU
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: List artifacts
|
||||||
|
run: |
|
||||||
|
tree
|
||||||
|
|
||||||
|
- name: Download prebuilt toolchain
|
||||||
|
run: |
|
||||||
|
AOSP_MIRROR=https://android.googlesource.com
|
||||||
|
BRANCH=main-kernel-build-2024
|
||||||
|
git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools
|
||||||
|
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
|
||||||
|
pip3 install telethon
|
||||||
|
|
||||||
|
- name: Set boot sign key
|
||||||
|
env:
|
||||||
|
BOOT_SIGN_KEY: ${{ secrets.BOOT_SIGN_KEY }}
|
||||||
|
run: |
|
||||||
|
if [ ! -z "$BOOT_SIGN_KEY" ]; then
|
||||||
|
echo "$BOOT_SIGN_KEY" > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Bot session cache
|
||||||
|
id: bot_session_cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
if: false
|
||||||
|
with:
|
||||||
|
path: scripts/ksubot.session
|
||||||
|
key: ${{ runner.os }}-bot-session
|
||||||
|
|
||||||
|
- name: Build boot images
|
||||||
|
run: |
|
||||||
|
export AVBTOOL=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/bin/avbtool
|
||||||
|
export GZIP=$GITHUB_WORKSPACE/build-tools/path/linux-x86/gzip
|
||||||
|
export LZ4=$GITHUB_WORKSPACE/build-tools/path/linux-x86/lz4
|
||||||
|
export MKBOOTIMG=$GITHUB_WORKSPACE/mkbootimg/mkbootimg.py
|
||||||
|
export UNPACK_BOOTIMG=$GITHUB_WORKSPACE/mkbootimg/unpack_bootimg.py
|
||||||
|
cd $GITHUB_WORKSPACE/KernelSU
|
||||||
|
export VERSION=$(($(git rev-list --count HEAD) + 10200))
|
||||||
|
echo "VERSION: $VERSION"
|
||||||
|
cd -
|
||||||
|
bash $GITHUB_WORKSPACE/KernelSU/.github/scripts/build_a13.sh
|
||||||
|
|
||||||
|
- name: Display structure of boot files
|
||||||
|
run: ls -R
|
||||||
|
|
||||||
|
- name: Upload images artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: boot-images-android13
|
||||||
|
path: Image-android13*/*.img.gz
|
||||||
159
.github/workflows/build-kernel-a14.yml
vendored
Normal file
159
.github/workflows/build-kernel-a14.yml
vendored
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
name: Build Kernel - Android 14
|
||||||
|
on:
|
||||||
|
# push:
|
||||||
|
# branches: ["main", "ci", "checkci"]
|
||||||
|
# paths:
|
||||||
|
# - ".github/workflows/deps/gki/build-kernel-a14.yml"
|
||||||
|
# - ".github/workflows/deps/gki/gki-kernel.yml"
|
||||||
|
# - ".github/scripts/build_a13.sh"
|
||||||
|
# - "kernel/**"
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
debug:
|
||||||
|
description: 'Build debug kernel'
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
jobs:
|
||||||
|
build-kernel:
|
||||||
|
if: github.event_name != 'pull_request' && github.ref != 'refs/heads/checkci'
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 148
|
||||||
|
os_patch_level: 2024-05
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 149
|
||||||
|
os_patch_level: 2024-06
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 153
|
||||||
|
os_patch_level: 2024-07
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 158
|
||||||
|
os_patch_level: 2024-08
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 164
|
||||||
|
os_patch_level: 2024-09
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 167
|
||||||
|
os_patch_level: 2024-11
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 170
|
||||||
|
os_patch_level: 2025-01
|
||||||
|
- version: "5.15"
|
||||||
|
sub_level: 178
|
||||||
|
os_patch_level: 2025-03
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 75
|
||||||
|
os_patch_level: 2024-05
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 78
|
||||||
|
os_patch_level: 2024-06
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 84
|
||||||
|
os_patch_level: 2024-07
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 90
|
||||||
|
os_patch_level: 2024-08
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 93
|
||||||
|
os_patch_level: 2024-09
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 99
|
||||||
|
os_patch_level: 2024-10
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 112
|
||||||
|
os_patch_level: 2024-11
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 115
|
||||||
|
os_patch_level: 2024-12
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 118
|
||||||
|
os_patch_level: 2025-01
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 128
|
||||||
|
os_patch_level: 2025-03
|
||||||
|
- version: "6.1"
|
||||||
|
sub_level: 134
|
||||||
|
os_patch_level: 2025-05
|
||||||
|
uses: ./.github/workflows/gki-kernel.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
version: android14-${{ matrix.version }}
|
||||||
|
version_name: android14-${{ matrix.version }}.${{ matrix.sub_level }}
|
||||||
|
tag: android14-${{ matrix.version }}-${{ matrix.os_patch_level }}
|
||||||
|
os_patch_level: ${{ matrix.os_patch_level }}
|
||||||
|
patch_path: ${{ matrix.version }}
|
||||||
|
debug: ${{ inputs.debug || false }}
|
||||||
|
|
||||||
|
upload-artifacts:
|
||||||
|
needs: build-kernel
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }}
|
||||||
|
env:
|
||||||
|
CHAT_ID: ${{ secrets.CHAT_ID }}
|
||||||
|
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||||
|
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
|
||||||
|
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
|
||||||
|
COMMIT_URL: ${{ github.event.head_commit.url }}
|
||||||
|
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||||
|
steps:
|
||||||
|
- name: Download artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: KernelSU
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: List artifacts
|
||||||
|
run: |
|
||||||
|
tree
|
||||||
|
|
||||||
|
- name: Download prebuilt toolchain
|
||||||
|
run: |
|
||||||
|
AOSP_MIRROR=https://android.googlesource.com
|
||||||
|
BRANCH=main-kernel-build-2024
|
||||||
|
git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools
|
||||||
|
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
|
||||||
|
pip3 install telethon
|
||||||
|
|
||||||
|
- name: Set boot sign key
|
||||||
|
env:
|
||||||
|
BOOT_SIGN_KEY: ${{ secrets.BOOT_SIGN_KEY }}
|
||||||
|
run: |
|
||||||
|
if [ ! -z "$BOOT_SIGN_KEY" ]; then
|
||||||
|
echo "$BOOT_SIGN_KEY" > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Bot session cache
|
||||||
|
id: bot_session_cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
if: false
|
||||||
|
with:
|
||||||
|
path: scripts/ksubot.session
|
||||||
|
key: ${{ runner.os }}-bot-session
|
||||||
|
|
||||||
|
- name: Build boot images
|
||||||
|
run: |
|
||||||
|
export AVBTOOL=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/bin/avbtool
|
||||||
|
export GZIP=$GITHUB_WORKSPACE/build-tools/path/linux-x86/gzip
|
||||||
|
export LZ4=$GITHUB_WORKSPACE/build-tools/path/linux-x86/lz4
|
||||||
|
export MKBOOTIMG=$GITHUB_WORKSPACE/mkbootimg/mkbootimg.py
|
||||||
|
export UNPACK_BOOTIMG=$GITHUB_WORKSPACE/mkbootimg/unpack_bootimg.py
|
||||||
|
cd $GITHUB_WORKSPACE/KernelSU
|
||||||
|
export VERSION=$(($(git rev-list --count HEAD) + 10200))
|
||||||
|
echo "VERSION: $VERSION"
|
||||||
|
cd -
|
||||||
|
bash $GITHUB_WORKSPACE/KernelSU/.github/scripts/build_a13.sh
|
||||||
|
|
||||||
|
- name: Display structure of boot files
|
||||||
|
run: ls -R
|
||||||
|
|
||||||
|
- name: Upload images artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: boot-images-android14
|
||||||
|
path: Image-android14*/*.img.gz
|
||||||
132
.github/workflows/build-kernel-a15.yml
vendored
Normal file
132
.github/workflows/build-kernel-a15.yml
vendored
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
name: Build Kernel - Android 15
|
||||||
|
on:
|
||||||
|
# push:
|
||||||
|
# branches: ["main", "ci", "checkci"]
|
||||||
|
# paths:
|
||||||
|
# - ".github/workflows/deps/gki/build-kernel-a15.yml"
|
||||||
|
# - ".github/workflows/deps/gki/gki-kernel.yml"
|
||||||
|
# - ".github/scripts/build_a13.sh"
|
||||||
|
# - "kernel/**"
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
debug:
|
||||||
|
description: 'Build debug kernel'
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
jobs:
|
||||||
|
build-kernel:
|
||||||
|
if: github.event_name != 'pull_request' && github.ref != 'refs/heads/checkci'
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 30
|
||||||
|
os_patch_level: 2024-08
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 46
|
||||||
|
os_patch_level: 2024-09
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 50
|
||||||
|
os_patch_level: 2024-10
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 56
|
||||||
|
os_patch_level: 2024-11
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 57
|
||||||
|
os_patch_level: 2024-12
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 58
|
||||||
|
os_patch_level: 2025-01
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 66
|
||||||
|
os_patch_level: 2025-02
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 77
|
||||||
|
os_patch_level: 2025-03
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 82
|
||||||
|
os_patch_level: 2025-04
|
||||||
|
- version: "6.6"
|
||||||
|
sub_level: 87
|
||||||
|
os_patch_level: 2025-05
|
||||||
|
uses: ./.github/workflows/gki-kernel.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
version: android15-${{ matrix.version }}
|
||||||
|
version_name: android15-${{ matrix.version }}.${{ matrix.sub_level }}
|
||||||
|
tag: android15-${{ matrix.version }}-${{ matrix.os_patch_level }}
|
||||||
|
os_patch_level: ${{ matrix.os_patch_level }}
|
||||||
|
patch_path: ${{ matrix.version }}
|
||||||
|
debug: ${{ inputs.debug || false }}
|
||||||
|
|
||||||
|
upload-artifacts:
|
||||||
|
needs: build-kernel
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }}
|
||||||
|
env:
|
||||||
|
CHAT_ID: ${{ secrets.CHAT_ID }}
|
||||||
|
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||||
|
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
|
||||||
|
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
|
||||||
|
COMMIT_URL: ${{ github.event.head_commit.url }}
|
||||||
|
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||||
|
steps:
|
||||||
|
- name: Download artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: KernelSU
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: List artifacts
|
||||||
|
run: |
|
||||||
|
tree
|
||||||
|
|
||||||
|
- name: Download prebuilt toolchain
|
||||||
|
run: |
|
||||||
|
AOSP_MIRROR=https://android.googlesource.com
|
||||||
|
BRANCH=main-kernel-build-2024
|
||||||
|
git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools
|
||||||
|
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
|
||||||
|
pip3 install telethon
|
||||||
|
|
||||||
|
- name: Set boot sign key
|
||||||
|
env:
|
||||||
|
BOOT_SIGN_KEY: ${{ secrets.BOOT_SIGN_KEY }}
|
||||||
|
run: |
|
||||||
|
if [ ! -z "$BOOT_SIGN_KEY" ]; then
|
||||||
|
echo "$BOOT_SIGN_KEY" > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Bot session cache
|
||||||
|
id: bot_session_cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
if: false
|
||||||
|
with:
|
||||||
|
path: scripts/ksubot.session
|
||||||
|
key: ${{ runner.os }}-bot-session
|
||||||
|
|
||||||
|
- name: Build boot images
|
||||||
|
run: |
|
||||||
|
export AVBTOOL=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/bin/avbtool
|
||||||
|
export GZIP=$GITHUB_WORKSPACE/build-tools/path/linux-x86/gzip
|
||||||
|
export LZ4=$GITHUB_WORKSPACE/build-tools/path/linux-x86/lz4
|
||||||
|
export MKBOOTIMG=$GITHUB_WORKSPACE/mkbootimg/mkbootimg.py
|
||||||
|
export UNPACK_BOOTIMG=$GITHUB_WORKSPACE/mkbootimg/unpack_bootimg.py
|
||||||
|
cd $GITHUB_WORKSPACE/KernelSU
|
||||||
|
export VERSION=$(($(git rev-list --count HEAD) + 10200))
|
||||||
|
echo "VERSION: $VERSION"
|
||||||
|
cd -
|
||||||
|
bash $GITHUB_WORKSPACE/KernelSU/.github/scripts/build_a13.sh
|
||||||
|
|
||||||
|
- name: Display structure of boot files
|
||||||
|
run: ls -R
|
||||||
|
|
||||||
|
- name: Upload images artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: boot-images-android15
|
||||||
|
path: Image-android15*/*.img.gz
|
||||||
89
.github/workflows/build-lkm.yml
vendored
89
.github/workflows/build-lkm.yml
vendored
@@ -1,77 +1,30 @@
|
|||||||
name: Build LKM for KernelSU
|
name: Build LKM for KernelSU
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["main", "ci", "checkci"]
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/**"
|
||||||
|
- "kernel/**"
|
||||||
|
pull_request:
|
||||||
|
branches: ["main"]
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/**"
|
||||||
|
- "kernel/**"
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
|
||||||
upload:
|
|
||||||
required: true
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
description: "Whether to upload to branch"
|
|
||||||
secrets:
|
|
||||||
# username:github_pat
|
|
||||||
TOKEN:
|
|
||||||
required: true
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
|
||||||
upload:
|
|
||||||
required: true
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
description: "Whether to upload to branch"
|
|
||||||
jobs:
|
jobs:
|
||||||
build-lkm:
|
build-lkm:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
kmi:
|
||||||
- version: "android12-5.10"
|
- android12-5.10
|
||||||
sub_level: 240
|
- android13-5.10
|
||||||
os_patch_level: 2025-09
|
- android13-5.15
|
||||||
- version: "android13-5.10"
|
- android14-5.15
|
||||||
sub_level: 238
|
- android14-6.1
|
||||||
os_patch_level: 2025-07
|
- android15-6.6
|
||||||
- version: "android13-5.15"
|
- android16-6.12
|
||||||
sub_level: 189
|
uses: ./.github/workflows/ddk-lkm.yml
|
||||||
os_patch_level: 2025-09
|
|
||||||
- version: "android14-5.15"
|
|
||||||
sub_level: 185
|
|
||||||
os_patch_level: 2025-07
|
|
||||||
- version: "android14-6.1"
|
|
||||||
sub_level: 145
|
|
||||||
os_patch_level: 2025-09
|
|
||||||
- version: "android15-6.6"
|
|
||||||
sub_level: 98
|
|
||||||
os_patch_level: 2025-09
|
|
||||||
- version: "android16-6.12"
|
|
||||||
sub_level: 38
|
|
||||||
os_patch_level: 2025-09
|
|
||||||
# uses: ./.github/workflows/gki-kernel-mock.yml when debugging
|
|
||||||
uses: ./.github/workflows/gki-kernel.yml
|
|
||||||
with:
|
with:
|
||||||
version: ${{ matrix.version }}
|
kmi: ${{ matrix.kmi }}
|
||||||
version_name: ${{ matrix.version }}.${{ matrix.sub_level }}
|
ddk_release: '20251016'
|
||||||
tag: ${{ matrix.version }}-${{ matrix.os_patch_level }}
|
|
||||||
os_patch_level: ${{ matrix.os_patch_level }}
|
|
||||||
build_lkm: true
|
|
||||||
|
|
||||||
push-to-branch:
|
|
||||||
needs: [build-lkm]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: ${{ inputs.upload }}
|
|
||||||
steps:
|
|
||||||
- name: Download all workflow run artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
path: bin/
|
|
||||||
merge-multiple: true
|
|
||||||
- name: Push to branch LKM
|
|
||||||
run: |
|
|
||||||
cd bin
|
|
||||||
git config --global init.defaultBranch lkm
|
|
||||||
git init
|
|
||||||
git remote add origin https://${{ secrets.TOKEN }}@github.com/${{ github.repository }}
|
|
||||||
git config --local user.name "github-actions[bot]"
|
|
||||||
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
||||||
find . -type f
|
|
||||||
git add .
|
|
||||||
git commit -m "Upload LKM from ${{ github.sha }}" -m "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
|
|
||||||
git push --force --set-upstream origin lkm
|
|
||||||
|
|||||||
78
.github/workflows/build-manager.yml
vendored
78
.github/workflows/build-manager.yml
vendored
@@ -5,6 +5,7 @@ on:
|
|||||||
branches: [ "main", "ci" ]
|
branches: [ "main", "ci" ]
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/build-manager.yml'
|
- '.github/workflows/build-manager.yml'
|
||||||
|
- '.github/workflows/build-lkm.yml'
|
||||||
- 'manager/**'
|
- 'manager/**'
|
||||||
- 'kernel/**'
|
- 'kernel/**'
|
||||||
- 'userspace/ksud/**'
|
- 'userspace/ksud/**'
|
||||||
@@ -15,77 +16,13 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- 'manager/**'
|
- 'manager/**'
|
||||||
workflow_call:
|
workflow_call:
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
build_lkm:
|
|
||||||
required: true
|
|
||||||
type: choice
|
|
||||||
default: "auto"
|
|
||||||
options:
|
|
||||||
- "true"
|
|
||||||
- "false"
|
|
||||||
- "auto"
|
|
||||||
description: "Whether to build lkm"
|
|
||||||
upload_lkm:
|
|
||||||
required: true
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
description: "Whether to upload lkm"
|
|
||||||
jobs:
|
|
||||||
check-build-lkm:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
build_lkm: ${{ steps.check-build.outputs.build_lkm }}
|
|
||||||
upload_lkm: ${{ steps.check-build.outputs.upload_lkm }}
|
|
||||||
steps:
|
|
||||||
- name: check build
|
|
||||||
id: check-build
|
|
||||||
run: |
|
|
||||||
if [ "${{ github.event_name }}" == "workflow_dispatch" ] && [ "${{ inputs.build_lkm }}" != "auto" ]; then
|
|
||||||
kernel_changed="${{ inputs.build_lkm }}"
|
|
||||||
else
|
|
||||||
kernel_changed=true
|
|
||||||
mkdir tmp
|
|
||||||
cd tmp
|
|
||||||
git config --global init.defaultBranch bot
|
|
||||||
git config --global user.name 'Bot'
|
|
||||||
git config --global user.email 'bot@github.shirkneko.io'
|
|
||||||
git init .
|
|
||||||
git remote add origin https://github.com/${{ github.repository }}
|
|
||||||
CURRENT_COMMIT="${{ github.event.head_commit.id }}"
|
|
||||||
git fetch origin $CURRENT_COMMIT --depth=1
|
|
||||||
git fetch origin lkm --depth=1
|
|
||||||
LKM_COMMIT="$(git log --format=%B -n 1 origin/lkm | head -n 1)"
|
|
||||||
LKM_COMMIT="${LKM_COMMIT#Upload LKM from }"
|
|
||||||
LKM_COMMIT=$(echo "$LKM_COMMIT" | tr -d '[:space:]')
|
|
||||||
echo "LKM_COMMIT=$LKM_COMMIT"
|
|
||||||
git fetch origin "$LKM_COMMIT" --depth=1
|
|
||||||
git diff --quiet "$LKM_COMMIT" "$CURRENT_COMMIT" -- kernel :!kernel/setup.sh .github/workflows/build-lkm.yml .github/workflows/build-kernel-*.yml && kernel_changed=false
|
|
||||||
cd ..
|
|
||||||
rm -rf tmp
|
|
||||||
fi
|
|
||||||
if [ "${{ github.event_name }}" == "push" ] && [ "${{ github.ref }}" == 'refs/heads/main' ]; then
|
|
||||||
need_upload=true
|
|
||||||
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
|
|
||||||
need_upload="${{ inputs.upload_lkm }}"
|
|
||||||
else
|
|
||||||
need_upload=false
|
|
||||||
fi
|
|
||||||
echo "kernel changed: $kernel_changed"
|
|
||||||
echo "need upload: $need_upload"
|
|
||||||
echo "build_lkm=$kernel_changed" >> "$GITHUB_OUTPUT"
|
|
||||||
echo "upload_lkm=$need_upload" >> "$GITHUB_OUTPUT"
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
build-lkm:
|
build-lkm:
|
||||||
needs: check-build-lkm
|
|
||||||
uses: ./.github/workflows/build-lkm.yml
|
uses: ./.github/workflows/build-lkm.yml
|
||||||
if: ${{ needs.check-build-lkm.outputs.build_lkm == 'true' }}
|
|
||||||
with:
|
|
||||||
upload: ${{ needs.check-build-lkm.outputs.upload_lkm == 'true' }}
|
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
build-susfs:
|
build-susfs:
|
||||||
if: ${{ always() }}
|
needs: build-lkm
|
||||||
needs: [ check-build-lkm, build-lkm ]
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
@@ -97,8 +34,7 @@ jobs:
|
|||||||
os: ${{ matrix.os }}
|
os: ${{ matrix.os }}
|
||||||
|
|
||||||
build-user_scanner:
|
build-user_scanner:
|
||||||
if: ${{ always() }}
|
needs: build-lkm
|
||||||
needs: [ check-build-lkm, build-lkm ]
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
@@ -110,8 +46,7 @@ jobs:
|
|||||||
os: ${{ matrix.os }}
|
os: ${{ matrix.os }}
|
||||||
|
|
||||||
build-ksud:
|
build-ksud:
|
||||||
if: ${{ always() }}
|
needs: build-lkm
|
||||||
needs: [ check-build-lkm, build-lkm ]
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
@@ -125,11 +60,8 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
target: ${{ matrix.target }}
|
target: ${{ matrix.target }}
|
||||||
os: ${{ matrix.os }}
|
os: ${{ matrix.os }}
|
||||||
pack_lkm: true
|
|
||||||
pull_lkm: ${{ needs.check-build-lkm.outputs.build_lkm != 'true' }}
|
|
||||||
|
|
||||||
build-manager:
|
build-manager:
|
||||||
if: ${{ always() }}
|
|
||||||
needs: build-ksud
|
needs: build-ksud
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
defaults:
|
defaults:
|
||||||
|
|||||||
2
.github/workflows/clippy.yml
vendored
2
.github/workflows/clippy.yml
vendored
@@ -34,4 +34,4 @@ jobs:
|
|||||||
- name: Run clippy
|
- name: Run clippy
|
||||||
run: |
|
run: |
|
||||||
cross clippy --manifest-path userspace/ksud/Cargo.toml --target aarch64-linux-android --release
|
cross clippy --manifest-path userspace/ksud/Cargo.toml --target aarch64-linux-android --release
|
||||||
cross clippy --manifest-path userspace/ksud/Cargo.toml --target x86_64-linux-android --release
|
cross clippy --manifest-path userspace/ksud/Cargo.toml --target x86_64-linux-android --release
|
||||||
84
.github/workflows/ddk-lkm.yml
vendored
Normal file
84
.github/workflows/ddk-lkm.yml
vendored
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
name: Build KernelSU Kernel Module
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
kmi:
|
||||||
|
description: 'KMI version'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
ddk_release:
|
||||||
|
description: 'DDK release version'
|
||||||
|
required: false
|
||||||
|
default: '20251016'
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-kernelsu-ko:
|
||||||
|
name: Build kernelsu.ko for ${{ inputs.kmi }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ghcr.io/ylarod/ddk:${{ inputs.kmi }}-${{ inputs.ddk_release }}
|
||||||
|
options: --privileged
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout source code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Get version info from GitHub API
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
REPO_OWNER="SukiSU-Ultra"
|
||||||
|
REPO_NAME="SukiSU-Ultra"
|
||||||
|
REPO_BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}}"
|
||||||
|
KSU_VERSION_API="3.2.0"
|
||||||
|
|
||||||
|
GITHUB_VERSION=$(curl -s "https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
|
||||||
|
GITHUB_COMMIT_COUNT=$(curl -sI "https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/commits?sha=$REPO_BRANCH&per_page=1" | grep -i '^link:' | sed -n 's/.*page=\([0-9]*\)>; rel="last".*/\1/p')
|
||||||
|
|
||||||
|
KSU_VERSION=$((10000 + GITHUB_COMMIT_COUNT + 700))
|
||||||
|
|
||||||
|
FAKE_HASH=$(curl -s "https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/commits/$REPO_BRANCH" | grep '"sha":' | head -n 1 | sed -E 's/.*"([^"]+)".*/\1/' | cut -c1-8)
|
||||||
|
|
||||||
|
KSU_VERSION_FULL="v${GITHUB_VERSION:-$KSU_VERSION_API}-${FAKE_HASH}@$REPO_BRANCH"
|
||||||
|
|
||||||
|
echo "KSU_VERSION=$KSU_VERSION" >> $GITHUB_ENV
|
||||||
|
echo "KSU_VERSION_FULL=$KSU_VERSION_FULL" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
echo "Branch: $REPO_BRANCH"
|
||||||
|
echo "Version: $KSU_VERSION"
|
||||||
|
echo "Full Version: $KSU_VERSION_FULL"
|
||||||
|
|
||||||
|
- name: Build kernelsu.ko
|
||||||
|
env:
|
||||||
|
CI_KSU_VERSION: ${{ env.KSU_VERSION }}
|
||||||
|
CI_KSU_VERSION_FULL: ${{ env.KSU_VERSION_FULL }}
|
||||||
|
run: |
|
||||||
|
git config --global --add safe.directory /__w/KernelSU/KernelSU
|
||||||
|
|
||||||
|
cd kernel
|
||||||
|
|
||||||
|
echo "=== Building kernelsu.ko for KMI: ${{ inputs.kmi }} ==="
|
||||||
|
|
||||||
|
CONFIG_KSU=m CONFIG_KSU_KPROBES_HOOKS=y make
|
||||||
|
|
||||||
|
echo "=== Build completed ==="
|
||||||
|
|
||||||
|
# Create output directory in GitHub workspace
|
||||||
|
mkdir -p /github/workspace/out
|
||||||
|
|
||||||
|
# Copy with KMI-specific naming
|
||||||
|
OUTPUT_NAME="${{ inputs.kmi }}_kernelsu.ko"
|
||||||
|
cp kernelsu.ko "/github/workspace/out/$OUTPUT_NAME"
|
||||||
|
|
||||||
|
echo "Copied to: /github/workspace/out/$OUTPUT_NAME"
|
||||||
|
ls -la "/github/workspace/out/$OUTPUT_NAME"
|
||||||
|
echo "Size: $(du -h "/github/workspace/out/$OUTPUT_NAME" | cut -f1)"
|
||||||
|
llvm-strip -d "/github/workspace/out/$OUTPUT_NAME"
|
||||||
|
echo "Size after stripping: $(du -h "/github/workspace/out/$OUTPUT_NAME" | cut -f1)"
|
||||||
|
|
||||||
|
- name: Upload kernelsu.ko artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: ${{ inputs.kmi }}-lkm
|
||||||
|
path: /github/workspace/out/${{ inputs.kmi }}_kernelsu.ko
|
||||||
67
.github/workflows/deploy-website.yml
vendored
Normal file
67
.github/workflows/deploy-website.yml
vendored
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
name: Deploy Website
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- website
|
||||||
|
paths:
|
||||||
|
- '.github/workflows/deploy-website.yml'
|
||||||
|
- 'website/**'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||||
|
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||||
|
concurrency:
|
||||||
|
group: pages
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Build job
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ./website
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Not needed if lastUpdated is not enabled
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: latest
|
||||||
|
cache: yarn # or pnpm / yarn
|
||||||
|
cache-dependency-path: website/yarn.lock
|
||||||
|
- name: Setup Pages
|
||||||
|
uses: actions/configure-pages@v5
|
||||||
|
- name: Install dependencies
|
||||||
|
run: yarn install --frozen-lockfile
|
||||||
|
- name: Build with VitePress
|
||||||
|
run: |
|
||||||
|
yarn docs:build
|
||||||
|
touch docs/.vitepress/dist/.nojekyll
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
path: website/docs/.vitepress/dist
|
||||||
|
|
||||||
|
# Deployment job
|
||||||
|
deploy:
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Deploy
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
||||||
79
.github/workflows/gki-kernel-mock.yml
vendored
79
.github/workflows/gki-kernel-mock.yml
vendored
@@ -1,79 +0,0 @@
|
|||||||
name: GKI Kernel Build
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
version:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
description: >
|
|
||||||
Output directory of gki,
|
|
||||||
for example: android12-5.10
|
|
||||||
version_name:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
description: >
|
|
||||||
With SUBLEVEL of kernel,
|
|
||||||
for example: android12-5.10.66
|
|
||||||
tag:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
description: >
|
|
||||||
Part of branch name of common kernel manifest,
|
|
||||||
for example: android12-5.10-2021-11
|
|
||||||
os_patch_level:
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
description: >
|
|
||||||
Patch level of common kernel manifest,
|
|
||||||
for example: 2021-11
|
|
||||||
default: 2022-05
|
|
||||||
patch_path:
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
description: >
|
|
||||||
Directory name of .github/patches/<patch_path>
|
|
||||||
for example: 5.10
|
|
||||||
use_cache:
|
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
embed_ksud:
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
default: ksud-aarch64-linux-android
|
|
||||||
description: >
|
|
||||||
Artifact name of prebuilt ksud to be embedded
|
|
||||||
for example: ksud-aarch64-linux-android
|
|
||||||
debug:
|
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
build_lkm:
|
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
secrets:
|
|
||||||
BOOT_SIGN_KEY:
|
|
||||||
required: false
|
|
||||||
CHAT_ID:
|
|
||||||
required: false
|
|
||||||
BOT_TOKEN:
|
|
||||||
required: false
|
|
||||||
MESSAGE_THREAD_ID:
|
|
||||||
required: false
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
mock_build:
|
|
||||||
name: Mock build ${{ inputs.version_name }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Create mocking ko
|
|
||||||
run: |
|
|
||||||
echo "${{ inputs.version }}_kernelsu.ko" > ${{ inputs.version }}_kernelsu.ko
|
|
||||||
- name: Upload LKM
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
if: ${{ inputs.build_lkm == true }}
|
|
||||||
with:
|
|
||||||
name: ${{ inputs.version }}-lkm
|
|
||||||
path: ./*_kernelsu.ko
|
|
||||||
11
.github/workflows/gki-kernel.yml
vendored
11
.github/workflows/gki-kernel.yml
vendored
@@ -103,7 +103,7 @@ jobs:
|
|||||||
cd $GITHUB_WORKSPACE
|
cd $GITHUB_WORKSPACE
|
||||||
sudo apt-get install repo -y
|
sudo apt-get install repo -y
|
||||||
mkdir android-kernel && cd android-kernel
|
mkdir android-kernel && cd android-kernel
|
||||||
repo init --depth=1 --u https://android.googlesource.com/kernel/manifest -b common-${{ inputs.tag }} --repo-rev=v2.35
|
repo init --depth=1 --u https://android.googlesource.com/kernel/manifest -b common-${{ inputs.tag }} --repo-rev=v2.16
|
||||||
REMOTE_BRANCH=$(git ls-remote https://android.googlesource.com/kernel/common ${{ inputs.tag }})
|
REMOTE_BRANCH=$(git ls-remote https://android.googlesource.com/kernel/common ${{ inputs.tag }})
|
||||||
DEFAULT_MANIFEST_PATH=.repo/manifests/default.xml
|
DEFAULT_MANIFEST_PATH=.repo/manifests/default.xml
|
||||||
if grep -q deprecated <<< $REMOTE_BRANCH; then
|
if grep -q deprecated <<< $REMOTE_BRANCH; then
|
||||||
@@ -198,9 +198,11 @@ jobs:
|
|||||||
- name: Make working directory clean to avoid dirty
|
- name: Make working directory clean to avoid dirty
|
||||||
working-directory: android-kernel
|
working-directory: android-kernel
|
||||||
run: |
|
run: |
|
||||||
if [ -e common/BUILD.bazel ]; then
|
# Fix bazel build error
|
||||||
sed -i '/^[[:space:]]*"protected_exports_list"[[:space:]]*:[[:space:]]*"android\/abi_gki_protected_exports_aarch64",$/d' common/BUILD.bazel
|
if [ -f common/BUILD.bazel ]; then
|
||||||
|
[ -f android/abi_gki_protected_exports_aarch64 ] || sed -i '/^[[:space:]]*"protected_exports_list"[[:space:]]*:[[:space:]]*"android\/abi_gki_protected_exports_aarch64",$/d' common/BUILD.bazel
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm common/android/abi_gki_protected_exports_* || echo "No protected exports!"
|
rm common/android/abi_gki_protected_exports_* || echo "No protected exports!"
|
||||||
git config --global user.email "bot@kernelsu.org"
|
git config --global user.email "bot@kernelsu.org"
|
||||||
git config --global user.name "KernelSUBot"
|
git config --global user.name "KernelSUBot"
|
||||||
@@ -209,6 +211,9 @@ jobs:
|
|||||||
|
|
||||||
- name: Build Kernel/LKM
|
- name: Build Kernel/LKM
|
||||||
working-directory: android-kernel
|
working-directory: android-kernel
|
||||||
|
env:
|
||||||
|
CI_KSU_VERSION: ${{ env.KSU_VERSION }}
|
||||||
|
CI_KSU_VERSION_FULL: ${{ env.KSU_VERSION_FULL }}
|
||||||
run: |
|
run: |
|
||||||
if [ ! -z ${{ vars.EXPECTED_SIZE }} ] && [ ! -z ${{ vars.EXPECTED_HASH }} ]; then
|
if [ ! -z ${{ vars.EXPECTED_SIZE }} ] && [ ! -z ${{ vars.EXPECTED_HASH }} ]; then
|
||||||
export KSU_EXPECTED_SIZE=${{ vars.EXPECTED_SIZE }}
|
export KSU_EXPECTED_SIZE=${{ vars.EXPECTED_SIZE }}
|
||||||
|
|||||||
27
.github/workflows/ksud.yml
vendored
27
.github/workflows/ksud.yml
vendored
@@ -9,10 +9,6 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
default: ubuntu-latest
|
default: ubuntu-latest
|
||||||
pull_lkm:
|
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
pack_lkm:
|
pack_lkm:
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
@@ -29,27 +25,14 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Pull lkms from branch
|
- name: Download artifacts
|
||||||
if: ${{ inputs.pack_lkm && inputs.pull_lkm }}
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: lkm
|
|
||||||
path: lkm
|
|
||||||
|
|
||||||
- name: Download lkms from artifacts
|
|
||||||
if: ${{ inputs.pack_lkm && !inputs.pull_lkm }}
|
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
|
|
||||||
- name: Prepare LKM files
|
- name: Prepare LKM fies
|
||||||
if: ${{ inputs.pack_lkm && inputs.pull_lkm }}
|
if: ${{ inputs.pack_lkm }}
|
||||||
run: |
|
|
||||||
cp lkm/*_kernelsu.ko ./userspace/ksud/bin/aarch64/
|
|
||||||
|
|
||||||
- name: Prepare LKM files
|
|
||||||
if: ${{ inputs.pack_lkm && !inputs.pull_lkm }}
|
|
||||||
run: |
|
run: |
|
||||||
cp android*-lkm/*_kernelsu.ko ./userspace/ksud/bin/aarch64/
|
cp android*-lkm/*_kernelsu.ko ./userspace/ksud/bin/aarch64/
|
||||||
|
|
||||||
- name: Setup rustup
|
- name: Setup rustup
|
||||||
run: |
|
run: |
|
||||||
rustup update stable
|
rustup update stable
|
||||||
|
|||||||
2
.github/workflows/shellcheck.yml
vendored
2
.github/workflows/shellcheck.yml
vendored
@@ -16,7 +16,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
shellcheck:
|
shellcheck:
|
||||||
runs-on: self-hosted
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
.idea
|
.idea
|
||||||
.vscode
|
|
||||||
CLAUDE.md
|
CLAUDE.md
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
11
kernel/.vscode/c_cpp_properties.json
vendored
Normal file
11
kernel/.vscode/c_cpp_properties.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Linux",
|
||||||
|
"cStandard": "c11",
|
||||||
|
"intelliSenseMode": "gcc-arm64",
|
||||||
|
"compileCommands": "${workspaceFolder}/compile_commands.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
||||||
92
kernel/.vscode/generate_compdb.py
vendored
Normal file
92
kernel/.vscode/generate_compdb.py
vendored
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from __future__ import print_function, division
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import fnmatch
|
||||||
|
import functools
|
||||||
|
import json
|
||||||
|
import math
|
||||||
|
import multiprocessing
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
CMD_VAR_RE = re.compile(r'^\s*(?:saved)?cmd_(\S+)\s*:=\s*(.+)\s*$', re.MULTILINE)
|
||||||
|
SOURCE_VAR_RE = re.compile(r'^\s*source_(\S+)\s*:=\s*(.+)\s*$', re.MULTILINE)
|
||||||
|
|
||||||
|
|
||||||
|
def print_progress_bar(progress):
|
||||||
|
progress_bar = '[' + '|' * int(50 * progress) + '-' * int(50 * (1.0 - progress)) + ']'
|
||||||
|
print('\r', progress_bar, "{0:.1%}".format(progress), end='\r', file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
|
def parse_cmd_file(out_dir, cmdfile_path):
|
||||||
|
with open(cmdfile_path, 'r') as cmdfile:
|
||||||
|
cmdfile_content = cmdfile.read()
|
||||||
|
|
||||||
|
commands = { match.group(1): match.group(2) for match in CMD_VAR_RE.finditer(cmdfile_content) }
|
||||||
|
sources = { match.group(1): match.group(2) for match in SOURCE_VAR_RE.finditer(cmdfile_content) }
|
||||||
|
|
||||||
|
return [{
|
||||||
|
'directory': out_dir,
|
||||||
|
'command': commands[o_file_name],
|
||||||
|
'file': source,
|
||||||
|
'output': o_file_name
|
||||||
|
} for o_file_name, source in sources.items()]
|
||||||
|
|
||||||
|
|
||||||
|
def gen_compile_commands(cmd_file_search_path, out_dir):
|
||||||
|
print("Building *.o.cmd file list...", file=sys.stderr)
|
||||||
|
|
||||||
|
out_dir = os.path.abspath(out_dir)
|
||||||
|
|
||||||
|
if not cmd_file_search_path:
|
||||||
|
cmd_file_search_path = [out_dir]
|
||||||
|
|
||||||
|
cmd_files = []
|
||||||
|
for search_path in cmd_file_search_path:
|
||||||
|
if (os.path.isdir(search_path)):
|
||||||
|
for cur_dir, subdir, files in os.walk(search_path):
|
||||||
|
cmd_files.extend(os.path.join(cur_dir, cmdfile_name) for cmdfile_name in fnmatch.filter(files, '*.o.cmd'))
|
||||||
|
else:
|
||||||
|
cmd_files.extend(search_path)
|
||||||
|
|
||||||
|
if not cmd_files:
|
||||||
|
print("No *.o.cmd files found in", ", ".join(cmd_file_search_path), file=sys.stderr)
|
||||||
|
return
|
||||||
|
|
||||||
|
print("Parsing *.o.cmd files...", file=sys.stderr)
|
||||||
|
|
||||||
|
n_processed = 0
|
||||||
|
print_progress_bar(0)
|
||||||
|
|
||||||
|
compdb = []
|
||||||
|
pool = multiprocessing.Pool()
|
||||||
|
try:
|
||||||
|
for compdb_chunk in pool.imap_unordered(functools.partial(parse_cmd_file, out_dir), cmd_files, chunksize=int(math.sqrt(len(cmd_files)))):
|
||||||
|
compdb.extend(compdb_chunk)
|
||||||
|
n_processed += 1
|
||||||
|
print_progress_bar(n_processed / len(cmd_files))
|
||||||
|
|
||||||
|
finally:
|
||||||
|
pool.terminate()
|
||||||
|
pool.join()
|
||||||
|
|
||||||
|
print(file=sys.stderr)
|
||||||
|
print("Writing compile_commands.json...", file=sys.stderr)
|
||||||
|
|
||||||
|
with open('compile_commands.json', 'w') as compdb_file:
|
||||||
|
json.dump(compdb, compdb_file, indent=1)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
cmd_parser = argparse.ArgumentParser()
|
||||||
|
cmd_parser.add_argument('-O', '--out-dir', type=str, default=os.getcwd(), help="Build output directory")
|
||||||
|
cmd_parser.add_argument('cmd_file_search_path', nargs='*', help="*.cmd file search path")
|
||||||
|
gen_compile_commands(**vars(cmd_parser.parse_args()))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
35
kernel/.vscode/settings.json
vendored
Normal file
35
kernel/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"files.exclude": {
|
||||||
|
"**/*.o.cmd": true,
|
||||||
|
"**/*.ko.cmd": true,
|
||||||
|
"**/*.mod.cmd": true,
|
||||||
|
"**/*.cmd": true,
|
||||||
|
"**/*.order": true,
|
||||||
|
"**/*.symvers": true,
|
||||||
|
"**/*.o": true,
|
||||||
|
"**/*.mod": true,
|
||||||
|
"**/android-wuwa.mod.c": true,
|
||||||
|
"**/android-wuwa.lds": true,
|
||||||
|
"**/.*.*.cmd": true,
|
||||||
|
"**/.*.d": true,
|
||||||
|
"**/.*.S": true
|
||||||
|
},
|
||||||
|
"[c]": {
|
||||||
|
"editor.detectIndentation": false,
|
||||||
|
"editor.tabSize": 4,
|
||||||
|
"editor.insertSpaces": true,
|
||||||
|
"editor.rulers": [80,100]
|
||||||
|
},
|
||||||
|
"files.associations": {
|
||||||
|
"*.h": "c",
|
||||||
|
"ratio": "c",
|
||||||
|
"array": "c",
|
||||||
|
"string_view": "c",
|
||||||
|
"initializer_list": "c",
|
||||||
|
"random": "cpp"
|
||||||
|
},
|
||||||
|
"editor.indentSize": 4,
|
||||||
|
"editor.insertSpaces": true,
|
||||||
|
"editor.detectIndentation": false,
|
||||||
|
"clangd.path": "/opt/ddk/clang/clang-r450784e/bin/clangd"
|
||||||
|
}
|
||||||
16
kernel/.vscode/tasks.json
vendored
Normal file
16
kernel/.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
|
// for the documentation about the tasks.json format
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Generate compile_commands.json",
|
||||||
|
"type": "process",
|
||||||
|
"command": "python",
|
||||||
|
"args": [
|
||||||
|
"${workspaceRoot}/.vscode/generate_compdb.py"
|
||||||
|
],
|
||||||
|
"problemMatcher": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -36,6 +36,12 @@ ifeq ($(CONFIG_KSU),m)
|
|||||||
ccflags-y += -DKSU_MODULE
|
ccflags-y += -DKSU_MODULE
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
KDIR := $(KDIR)
|
||||||
|
MDIR := $(realpath $(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
|
||||||
|
|
||||||
|
$(info -- KDIR: $(KDIR))
|
||||||
|
$(info -- MDIR: $(MDIR))
|
||||||
|
|
||||||
|
|
||||||
REPO_OWNER := SukiSU-Ultra
|
REPO_OWNER := SukiSU-Ultra
|
||||||
REPO_NAME := SukiSU-Ultra
|
REPO_NAME := SukiSU-Ultra
|
||||||
@@ -48,6 +54,13 @@ CURL_BIN := /usr/bin/env PATH="$$PATH":/usr/bin:/usr/local/bin curl
|
|||||||
KSU_GITHUB_VERSION := $(shell $(CURL_BIN) -s "https://api.github.com/repos/$(REPO_OWNER)/$(REPO_NAME)/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
|
KSU_GITHUB_VERSION := $(shell $(CURL_BIN) -s "https://api.github.com/repos/$(REPO_OWNER)/$(REPO_NAME)/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
|
||||||
KSU_GITHUB_VERSION_COMMIT := $(shell $(CURL_BIN) -sI "https://api.github.com/repos/$(REPO_OWNER)/$(REPO_NAME)/commits?sha=$(REPO_BRANCH)&per_page=1" | grep -i "link:" | sed -n 's/.*page=\([0-9]*\)>; rel="last".*/\1/p')
|
KSU_GITHUB_VERSION_COMMIT := $(shell $(CURL_BIN) -sI "https://api.github.com/repos/$(REPO_OWNER)/$(REPO_NAME)/commits?sha=$(REPO_BRANCH)&per_page=1" | grep -i "link:" | sed -n 's/.*page=\([0-9]*\)>; rel="last".*/\1/p')
|
||||||
|
|
||||||
|
ifdef CI_KSU_VERSION
|
||||||
|
KSU_VERSION := $(CI_KSU_VERSION)
|
||||||
|
KSU_VERSION_FULL := $(CI_KSU_VERSION_FULL)
|
||||||
|
$(info -- $(REPO_NAME) version (CI override): $(KSU_VERSION))
|
||||||
|
$(info -- $(REPO_NAME) full version (CI override): $(KSU_VERSION_FULL))
|
||||||
|
else
|
||||||
|
|
||||||
ifeq ($(findstring $(srctree),$(src)),$(srctree))
|
ifeq ($(findstring $(srctree),$(src)),$(srctree))
|
||||||
KSU_SRC := $(src)
|
KSU_SRC := $(src)
|
||||||
else
|
else
|
||||||
@@ -90,6 +103,7 @@ else
|
|||||||
KSU_VERSION_FULL := $(call get_ksu_version_full,$(KSU_GITHUB_VERSION))
|
KSU_VERSION_FULL := $(call get_ksu_version_full,$(KSU_GITHUB_VERSION))
|
||||||
$(info -- $(REPO_NAME) version (Github): $(KSU_VERSION_FULL))
|
$(info -- $(REPO_NAME) version (Github): $(KSU_VERSION_FULL))
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ccflags-y += -DKSU_VERSION=$(KSU_VERSION)
|
ccflags-y += -DKSU_VERSION=$(KSU_VERSION)
|
||||||
ccflags-y += -DKSU_VERSION_FULL=\"$(KSU_VERSION_FULL)\"
|
ccflags-y += -DKSU_VERSION_FULL=\"$(KSU_VERSION_FULL)\"
|
||||||
@@ -121,15 +135,19 @@ $(info -- SukiSU: CONFIG_KSU_MANUAL_HOOK)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
KERNEL_VERSION := $(VERSION).$(PATCHLEVEL)
|
KERNEL_VERSION := $(VERSION).$(PATCHLEVEL)
|
||||||
KERNEL_TYPE := Non-GKI
|
VERSION := $(or $(VERSION),0)
|
||||||
|
PATCHLEVEL := $(or $(PATCHLEVEL),0)
|
||||||
|
|
||||||
# Check for GKI 2.0 (5.10+ or 6.x+)
|
# Check for GKI 2.0 (5.10+ or 6.x+)
|
||||||
ifneq ($(shell test \( $(VERSION) -ge 5 -a $(PATCHLEVEL) -ge 10 \) -o $(VERSION) -ge 6; echo $$?),0)
|
ifeq ($(shell \
|
||||||
# Check for GKI 1.0 (5.4)
|
[ "$(VERSION)" -gt 5 ] || { [ "$(VERSION)" -eq 5 ] && [ "$(PATCHLEVEL)" -ge 10 ]; } || \
|
||||||
ifeq ($(shell test $(VERSION)-$(PATCHLEVEL) = 5-4; echo $$?),0)
|
[ "$(VERSION)" -ge 6 ]; echo $$?),0)
|
||||||
KERNEL_TYPE := GKI 1.0
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
KERNEL_TYPE := GKI 2.0
|
KERNEL_TYPE := GKI 2.0
|
||||||
|
# Check for GKI 1.0 (5.4)
|
||||||
|
else ifeq ($(VERSION)-$(PATCHLEVEL),5-4)
|
||||||
|
KERNEL_TYPE := GKI 1.0
|
||||||
|
else
|
||||||
|
KERNEL_TYPE := Non-GKI
|
||||||
endif
|
endif
|
||||||
$(info -- KERNEL_VERSION: $(KERNEL_VERSION))
|
$(info -- KERNEL_VERSION: $(KERNEL_VERSION))
|
||||||
$(info -- KERNEL_TYPE: $(KERNEL_TYPE))
|
$(info -- KERNEL_TYPE: $(KERNEL_TYPE))
|
||||||
@@ -154,4 +172,12 @@ endif
|
|||||||
ccflags-y += -Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-int-conversion -Wno-gcc-compat
|
ccflags-y += -Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-int-conversion -Wno-gcc-compat
|
||||||
ccflags-y += -Wno-declaration-after-statement -Wno-unused-function
|
ccflags-y += -Wno-declaration-after-statement -Wno-unused-function
|
||||||
|
|
||||||
|
|
||||||
|
all:
|
||||||
|
make -C $(KDIR) M=$(MDIR) modules
|
||||||
|
compdb:
|
||||||
|
python3 $(MDIR)/.vscode/generate_compdb.py -O $(KDIR) $(MDIR)
|
||||||
|
clean:
|
||||||
|
make -C $(KDIR) M=$(MDIR) clean
|
||||||
|
|
||||||
# Keep a new line here!! Because someone may append config
|
# Keep a new line here!! Because someone may append config
|
||||||
|
|||||||
@@ -420,9 +420,9 @@ static void sulog_prctl_cmd(uid_t uid, unsigned long cmd)
|
|||||||
int ksu_handle_prctl(int option, unsigned long arg2, unsigned long arg3,
|
int ksu_handle_prctl(int option, unsigned long arg2, unsigned long arg3,
|
||||||
unsigned long arg4, unsigned long arg5)
|
unsigned long arg4, unsigned long arg5)
|
||||||
{
|
{
|
||||||
// if success, we modify the arg5 as result!
|
// if success, we modify the arg5 as result!
|
||||||
u32 *result = (u32 *)arg5;
|
__maybe_unused u32 *result = (u32 *)arg5;
|
||||||
u32 reply_ok = KERNEL_SU_OPTION;
|
__maybe_unused u32 reply_ok = KERNEL_SU_OPTION;
|
||||||
|
|
||||||
if (likely(ksu_is_current_proc_umounted()))
|
if (likely(ksu_is_current_proc_umounted()))
|
||||||
return 0; // prevent side channel attack in ksu side
|
return 0; // prevent side channel attack in ksu side
|
||||||
|
|||||||
Reference in New Issue
Block a user