- Real release build type: R8 shrinking + shrunk resources, with a keep rule for VeilHook specifically — LSPosed finds it by exact class name via the plaintext xposed_init asset, which R8 can't see, so obfuscating it would silently break module loading with no build error to point at why. - Signing config that reads keystore.properties if present (gitignored, generated via scripts/generate-keystore.sh), falling back to debug signing otherwise so assembleRelease always produces something installable. - scripts/release.sh builds and copies a version-stamped APK into dist/. - GitHub Actions workflow building and publishing a release on any tag matching *.*.* (bare semver, e.g. 1.2.0 — no v prefix required), optionally using repo secrets for real release signing in CI. - README covering setup, the feature table, and the DenyList gotcha. No native code in this module, so a single APK already covers every architecture — no per-ABI splitting needed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
6 lines
374 B
Prolog
6 lines
374 B
Prolog
# LSPosed discovers the module entry point by fully-qualified class name via the plaintext
|
|
# assets/xposed_init file, not through anything R8 can see (no manifest reference, no
|
|
# reflection call it can trace) — keep this class and its members intact or the module
|
|
# silently stops loading with no build error to point at why.
|
|
-keep class space.bdeshi.veil.VeilHook { *; }
|