VD Telemetry Guard v1.0.0
Author: Walaryne
Install dist/VD-Telemetry-Guard-v1.0.0.zip through Magisk, enable Zygisk, and
reboot. Requires ARM64, Android 10+, Magisk 27+, and VD outside the denylist.
Only the main VirtualDesktop.Android and VirtualDesktop.Quest processes are
selected. No firmware or VD-version allowlist is used.
The module prevents the native OSSDK telemetry client from being created and
blocks the runtime event-creation wrapper before allocation, locking and warning
generation. It does not filter Android logs. It leaves system telemetry/privacy
settings unchanged. It contains no tongue model, headset app, Direct tap,
headset identity rewrite or tracking-service patch.
BOLTON PRECEDENCE
Before installing any hook in each new VD process, a root Zygisk companion
checks /data/adb/modules and /data/adb/modules_update. It defers if it finds:
- seacliff_continuous_tongue (the main BoltOn Magisk module),
- bolton_compat or bolton_vd_compat (BoltOn compatibility modules), or
- any other module with compat/vd/telemetry.json (custom module IDs).
Presence wins even when BoltOn is disabled, queued for removal, older than these
fixes, or configured to turn its telemetry guard off. This prevents overriding
BoltOn's configuration. A pending installation also wins. The standalone never
edits, disables, removes, or changes BoltOn. Detection/IPC errors leave this
module inactive. It does not rely on module load order or race for the hook.
The calibration APK alone contains no in-process patch; it is the Magisk module
that owns the fix. Removing BoltOn and rebooting allows standalone protection to
activate automatically; there is no sticky self-disable flag.
Check logcat tag VDTelemetryGuard for selection, deferral and hook results.
Disable/remove this standalone module in Magisk and reboot for rollback.
Installing/changing modules requires the normal reboot; running processes do
not switch owners mid-session.
COMPATIBILITY AND VALIDATION
The exported factory guard uses named OSSDK/linker ABIs. The event-source hook
uses structural ARM64 and ELF unwind checks. An unknown structure keeps factory
OOM protection but may leave the runtime warning. Upstream timing/event-name
preparation may still run. AudioTrack/PlayerBase logging is outside this fix.
The underlying BoltOn guards were observed working in active VD on one headset.
Standalone packaging/ownership selection are separate changes: host checks and
ARM64 compilation do not establish installed-device coexistence or compatibility
with every firmware. See manifest.json in the ZIP for build provenance and local checks performed.
BUILD
This folder is independent of the BoltOn checkout. Source and pinned dependencies
are included. Python 3.12+, Android NDK r27d, and Zig 0.14.1 for host tests:
python test.py --zig PATH_TO_ZIG
python build.py --ndk PATH_TO_ANDROID_NDK
The installable ZIP contains only runtime files and notices. Build tools and
private inputs are excluded using an explicit ZIP file list.
SOURCE REPOSITORY
https://github.com/Walaryne/qp-telemetryfix
Generated ZIPs and local build outputs are not checked into Git. Build the
installable ZIP using the commands above. On a fresh clone, enable the commit
check with:
git config --local core.hooksPath .githooks
python tools/check_repo_safety.py
The check scans the full Git index for excluded files and common credentials.
Review staged changes as well. Its source is retained from BoltOn.