Files
lsposed-veil/scripts/generate-keystore.sh
Claude Sonnet 5 328237d722 Add release/build tooling and README
- 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>
2026-08-06 21:46:16 +06:00

40 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Creates a personal release-signing keystore and keystore.properties. Both are gitignored —
# back them up yourself if you want release builds to keep the same signing identity across
# reinstalls (Android treats a differently-signed update as a different app).
set -euo pipefail
cd "$(dirname "$0")/.."
if [ -f keystore.properties ]; then
echo "keystore.properties already exists — remove it first if you want to regenerate." >&2
exit 1
fi
KEYSTORE_PATH="release.jks"
ALIAS="veil"
read -rsp "New keystore password: " STORE_PASSWORD
echo
read -rsp "Key password (leave blank to reuse the keystore password): " KEY_PASSWORD
echo
KEY_PASSWORD="${KEY_PASSWORD:-$STORE_PASSWORD}"
keytool -genkeypair \
-keystore "$KEYSTORE_PATH" \
-alias "$ALIAS" \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-storepass "$STORE_PASSWORD" \
-keypass "$KEY_PASSWORD" \
-dname "CN=Veil, OU=Personal, O=Personal, L=Unknown, ST=Unknown, C=US"
cat > keystore.properties <<EOF
storeFile=$KEYSTORE_PATH
storePassword=$STORE_PASSWORD
keyAlias=$ALIAS
keyPassword=$KEY_PASSWORD
EOF
echo "Wrote $KEYSTORE_PATH and keystore.properties."