Renamed since the module hides more than accessibility state now — hook class
and app display name become VeilHook/Veil (the module already lived under the
space.bdeshi.veil namespace).
Two new features, same per-app toggle model as everything else:
- Root/manager apps: hides packages in a configurable shared list (default
KernelSU + Magisk) from PackageManager's getPackageInfo/getApplicationInfo/
getInstalledPackages/getInstalledApplications.
- Build tags/type: overwrites Build.TAGS/Build.TYPE to release-keys/user for
the hooked process, hiding the test-keys/userdebug markers apps sometimes
check for.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replaces "hide everything for every scoped app" with per-package, per-feature
toggles, backed by SharedPreferences the hook reads via XSharedPreferences.
A package with no explicit entry still gets every feature hidden, keeping
prior behavior as the default.
Adds a launcher activity so the settings screen is directly reachable.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
LSPosed module that hooks AccessibilityManager and Settings.Secure/Global
(getString/getStringForUser/getInt/getIntForUser) inside whatever app
process LSPosed injects it into, so that process sees no accessibility
services and no adb/wifi-debugging flags enabled. Target apps are chosen
via the module's scope list in LSPosed Manager, not in-app config.
Confirmed working against a real target app on-device; it previously
refused to launch with an accessibility service active and now starts
normally with the module enabled and scoped to it. Required disabling
KernelSU's "umount modules" option for that app, since it otherwise blocks
Zygisk (and therefore LSPosed) from injecting into the process at all.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>