Android 7 Support #64
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |