2026-04-06 06:58:30 +08:00

63 lines
1.9 KiB
YAML

name: Build Android SO and Injector
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
abi: [arm64-v8a, armeabi-v7a] # 编译两种主流架构
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Setup NDK
run: |
echo "y" | sudo ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install "ndk;25.1.8937393"
# ========== 1. 编译 libmodmenu.so ==========
- name: Configure CMake for ${{ matrix.abi }}
run: |
cmake -B build_so \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.1.8937393/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=${{ matrix.abi }} \
-DANDROID_PLATFORM=android-24 \
-DCMAKE_BUILD_TYPE=Release
- name: Build libmodmenu.so for ${{ matrix.abi }}
run: cmake --build build_so --config Release
# ========== 2. 编译注入器 xinjector ==========
- name: Build xinjector for ${{ matrix.abi }}
run: |
mkdir -p build_injector && cd build_injector
cmake -DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.1.8937393/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=${{ matrix.abi }} \
-DANDROID_PLATFORM=android-24 \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_INJECTOR=ON .. # 新增标识,用于区分注入器与 so 的编译
cmake --build . --config Release
# ========== 3. 上传所有编译产物 ==========
- name: Upload artifacts for ${{ matrix.abi }}
uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.abi }}
path: |
build_so/libmodmenu.so
build_injector/xinjector