vpnhide/lsposed/native
okhsunrog 412d78e599 feat: debug logging toggle, off by default
Users installing VPN Hide for stealth didn't want the app, LSPosed
hooks, and zygisk writing per-request lines to logcat that a forensic
analysis with root could read back. Add a single toggle in Diagnostics
that silences all three layers; errors still pass through so hook-
install failures stay diagnosable.

Why each piece:

- VpnHideLog + HookLog wrap Log.i/d/w and XposedBridge.log respectively,
  gated by @Volatile flags. i/d/w only; e always prints.
- SharedPreferences is the source of truth for the app process;
  system_server hooks read /data/system/vpnhide_debug_logging (inotify-
  watched, same pattern as vpnhide_uids.txt — flip is live without
  rebooting); zygisk reads debug_logging from its module dir via the
  existing dir fd in on_load, then calls log::set_max_level.
- Default Off matches the project's stealth-first stance. When disabled,
  zygisk stays at LevelFilter::Error so the rare hook-install failure
  is still visible.
- Zygisk-hooked apps need a restart for the change to take effect
  (flag is read at on_load). App and system_server hooks pick it up
  immediately. Documented in the toggle's description.

Also aligns lsposed/native/Cargo.lock with Cargo.toml (0.6.1 → 0.6.2)
— same stale-lock fix surfaced by the gradle build as in the previous PR.
2026-04-17 19:09:07 +03:00
..
src Fix unsafe block in netlink_recv for Rust 2024 edition 2026-04-14 16:45:43 +03:00
Cargo.lock feat: debug logging toggle, off by default 2026-04-17 19:09:07 +03:00
Cargo.toml chore: release v0.6.2 2026-04-17 16:24:53 +03:00