vpnhide/docs
okhsunrog 3954bf9375 feat(lsposed): support Android 9 (API 28)
Lower minSdk from 29 to 28 so the LSPosed module and picker app install and
run on Android 9. The Java/LSPosed hiding layer attaches and hides the VPN on
API 28; verified on a rooted x86_64 API-28 emulator (see docs).

- build.gradle.kts: minSdk 29 -> 28; cargo-ndk -P 29 -> 28
- add API-level compat guards for members that only exist on API 29+:
  FileObserver(String) instead of FileObserver(File); gate
  NetworkCapabilities.getTransportInfo() (VpnTransportInfo) behind SDK_INT >= Q
- stop logging ERROR for hook targets absent on the running API: the redacted
  ConnectivityService per-package methods (API 31) and getInstallSourceInfo
  (API 30) log at INFO on older Android where the method cannot exist
- add opt-in x86_64 native/APK build behind -PvpnhideEmulatorX86 for emulator
  testing; release and normal dev builds stay arm64-only
- docs/avd-magisk-testing.md: how to root an x86_64 AVD (incl. Android 9) with
  Magisk + Zygisk + LSPosed to test the Java layer
2026-08-19 01:45:02 +03:00
..
adb-root-debugging.md Upgrade diagnostic captures (#227) 2026-07-02 16:25:53 +03:00
avd-magisk-testing.md feat(lsposed): support Android 9 (API 28) 2026-08-19 01:45:02 +03:00
changelog.md fix(scripts): CHANGELOG.md at release time + Markdown fragments 2026-04-19 21:57:34 +03:00
detection-vectors.md feat(zygisk): hide RTM_GETRULE policy rules and getdents64 dir listings 2026-08-15 19:47:29 +03:00
development.md Upgrade diagnostic captures (#227) 2026-07-02 16:25:53 +03:00
diagnostics.md feat(lsposed): stop flagging uncoverable detection vectors as errors 2026-08-15 19:40:36 +03:00
limits.md feat(kpm): add optional filesystem path hiding 2026-08-13 16:24:07 +03:00
lsposed-hook-debugging.md docs: hook binder.javaClass directly (name-resolution can hit a parent-loader copy) 2026-07-05 14:53:32 +03:00
protocol.md feat(zygisk): add best-effort filesystem path hiding 2026-08-13 22:53:05 +03:00
releasing.md build: align native cdylib on 16 KiB; unify kmod/zygisk build scripts 2026-04-26 23:26:30 +03:00
ROADMAP.md Upgrade diagnostic captures (#227) 2026-07-02 16:25:53 +03:00
state.md feat(zygisk): add best-effort filesystem path hiding 2026-08-13 22:53:05 +03:00
storage.md feat(zygisk): add best-effort filesystem path hiding 2026-08-13 22:53:05 +03:00