vpnhide/.github/workflows/lsposed.yml
okhsunrog 12daca5c1a monorepo: combine vpnhide-zygisk, vpnhide (lsposed), and vpnhide-kmod
Unified repository for the complete Android VPN-hiding stack:
- zygisk/ — Rust Zygisk module (inline libc hooks via shadowhook)
- lsposed/ — Kotlin LSPosed module (Java API + system_server hooks)
- kmod/ — C kernel module (kretprobe hooks, invisible to anti-tamper)

CI workflows use path filters to build only the changed component.
2026-04-11 15:01:49 +03:00

79 lines
1.8 KiB
YAML

name: LSPosed
on:
push:
paths:
- 'lsposed/**'
- '.github/workflows/lsposed.yml'
pull_request:
paths:
- 'lsposed/**'
- '.github/workflows/lsposed.yml'
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Build debug APK
run: cd lsposed && ./gradlew --no-daemon assembleDebug
- name: Rename artifact
id: rename
run: |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
tag="${GITHUB_REF##*/}"
else
tag="$(git rev-parse --short HEAD)"
fi
out="vpnhide-lsposed-${tag}.apk"
cp lsposed/app/build/outputs/apk/debug/app-debug.apk "$out"
echo "name=$out" >> "$GITHUB_OUTPUT"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: vpnhide-lsposed
path: ${{ steps.rename.outputs.name }}
if-no-files-found: error
release:
needs: build
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: vpnhide-lsposed
path: dist/
- name: Generate sha256
run: |
cd dist
for f in *.apk; do sha256sum "$f" > "${f}.sha256"; done
- name: Upload release assets
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
files: |
dist/*.apk
dist/*.sha256
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}