feat: diagnose wrong-variant kmod installs end-to-end

Users routinely installed the wrong GKI variant of the kmod zip and
saw no signal beyond "installed, inactive". This adds a full chain
from build to diagnostics so the wrong-variant case is both obvious
to the user and fully captured in bug reports.

Why each piece exists:

- CI stamps `gkiVariant=<kmi>` into each variant's `module.prop`
  so the app can identify what was installed without guessing.
- `post-fs-data.sh` records `/data/adb/vpnhide_kmod/load_status`
  (boot_id, uname -r, gki_variant, insmod exit+stderr, kprobes,
  root manager) and `load_dmesg` at every boot — this survives
  reboots and is the only record of insmod failures by the time
  the user opens the app.
- Dashboard reads both, always computes the kernel-based
  recommendation, and emits targeted issues: wrong-variant,
  unknown-variant (pre-stamp zip that also failed to load),
  kmod-on-unsupported-kernel, kprobes-missing, or generic
  load-failed with the captured stderr.
- Diagnostics screen adds a "Kmod load trace" card so bug
  reports can come in as a screenshot, and the debug zip
  includes load_status + load_dmesg for deeper analysis.

Also aligns `lsposed/native/Cargo.lock` with Cargo.toml (0.6.1
→ 0.6.2) — a real stale-lock fix surfaced by the gradle build.
This commit is contained in:
okhsunrog 2026-04-17 17:41:56 +03:00
parent 9570dec03c
commit b09f05ce60
9 changed files with 396 additions and 53 deletions

View file

@ -92,9 +92,10 @@ jobs:
apt-get update -qq && apt-get install -y -qq zip git >/dev/null
git config --global --add safe.directory "$GITHUB_WORKSPACE"
BUILD_VERSION=$(./scripts/build-version.sh)
echo "Stamping kmod module.prop version=v${BUILD_VERSION}"
echo "Stamping kmod module.prop version=v${BUILD_VERSION} gkiVariant=${{ matrix.kmi }}"
cp kmod/vpnhide_kmod.ko kmod/module/
sed -i "s|^version=.*|version=v${BUILD_VERSION}|" kmod/module/module.prop
echo "gkiVariant=${{ matrix.kmi }}" >> kmod/module/module.prop
echo "updateJson=https://raw.githubusercontent.com/okhsunrog/vpnhide/main/update-json/update-kmod-${{ matrix.kmi }}.json" >> kmod/module/module.prop
(cd kmod/module && zip -qr "$GITHUB_WORKSPACE/vpnhide-kmod-${{ matrix.kmi }}.zip" .)