Skip to content

Android 7 Support

Android 7 Support #58

Workflow file for this run

name: RotatingartLauncher πŸš€
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: πŸ”Ž Checkout Source Code
uses: actions/checkout@v4
with:
lfs: false
submodules: false
- name: 🚫 Disable Global Git LFS
run: |
git config --global filter.lfs.smudge "git-lfs smudge --skip -- %f"
git config --global filter.lfs.process "git-lfs filter-process --skip"
- name: πŸ” Force Update Broken Submodules
run: |
git submodule update --remote --init --recursive || true
- name: β˜• Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: πŸ§ͺ Inject Heavy LFS Payloads
run: |
mkdir -p app/src/main/assets/
cd app/src/main/assets/
rm -f MonoMod.zip runtime_libs.tar.xz dotnet.tar.xz
wget -q -O MonoMod.zip "https://github.com/WinterWolfVN/RotatingartLauncher/raw/refs/heads/main/app/src/main/assets/MonoMod.zip"
wget -q -O runtime_libs.tar.xz "https://github.com/WinterWolfVN/RotatingartLauncher/raw/refs/heads/main/app/src/main/assets/runtime_libs.tar.xz"
wget -q -O dotnet.tar.xz "https://github.com/WinterWolfVN/RotatingartLauncher/raw/refs/heads/main/app/src/main/assets/dotnet.tar.xz"
- name: πŸ’‰ Inject C++ Source (For Local CMake Build)
run: |
wget -q -O src.zip "https://github.com/WinterWolfVN/RotatingartLauncher/archive/refs/heads/main.zip"
unzip -q src.zip
cp -arf RotatingartLauncher-main/app/src/main/cpp/* app/src/main/cpp/
rm -rf RotatingartLauncher-main src.zip
- name: 🧬 The Great JNI Heist (Steal Pre-compiled .so files)
run: |
mkdir -p app/src/main/jniLibs/arm64-v8a/
cd app/src/main/jniLibs/arm64-v8a/
rm -f *.so
SO_FILES=(
"libEGL_angle.so"
"libGLESv2_angle.so"
"libOSMBridge.so"
"libOSMesa.so"
"libSkiaSharp.so"
"libc++_shared.so"
"libeasytier_android_jni.so"
"libfmod.so"
"libfmodL.so"
"libfmodstudio.so"
"libfmodstudioL.so"
"libhardware.so"
"liblua54.so"
"liblwjgl_lz4.so"
"libmobileglues.so"
"libopenal32.so"
"libspirv-cross-c-shared.so"
"libsync.so"
"libtheorafile.so"
"libvulkan_freedreno.so"
)
for FILE in "${SO_FILES[@]}"; do
wget -q -O "$FILE" "https://github.com/WinterWolfVN/RotatingartLauncher/raw/refs/heads/main/app/src/main/jniLibs/arm64-v8a/$FILE"
done
- name: πŸ—οΈ Forge Dummy Keystore
run: |
keytool -genkeypair -v -keystore app/dummy.keystore -alias ralaunch -keyalg RSA -keysize 2048 -validity 10000 -storepass 123456 -keypass 123456 -dname "CN=Hacker, OU=Dev, O=RaLaunch, C=VN"
- name: βš’οΈ Build Release APK (With CMake Active)
run: |
chmod +x gradlew
./gradlew clean assembleRelease --no-daemon
- name: πŸ›‘οΈ Optimize and Sign APK
run: |
APK_PATH=$(find app/build/outputs/apk/release -name "*.apk" | head -n 1)
BUILD_TOOLS_PATH="$ANDROID_HOME/build-tools/34.0.0"
$BUILD_TOOLS_PATH/zipalign -v -p 4 $APK_PATH app/build/outputs/apk/release/aligned.apk
$BUILD_TOOLS_PATH/apksigner sign --ks app/dummy.keystore --ks-pass pass:123456 --ks-key-alias ralaunch --key-pass pass:123456 --v1-signing-enabled true --v2-signing-enabled true --v3-signing-enabled true --out app/build/outputs/apk/release/RAL_release.apk app/build/outputs/apk/release/aligned.apk
- name: πŸŽ‰ Upload Final Artifact
uses: actions/upload-artifact@v4
with:
name: RAL_release
path: app/build/outputs/apk/release/RAL_release.apk