Skip to content

Repository files navigation

Biometric App Lock

Xposed module that locks apps you choose behind fingerprint or face unlock. It intercepts launches at the System Framework level, so a locked app's activities are never created until you authenticate.

Android 13+ libxposed API 101+ Downloads

Note

Built for AOSP and Pixel. Lightly modified flavors like One UI 8+ may work but are untested. HyperOS, OxygenOS, and ColorOS already ship a built-in app lock, so you probably don't need this there.

About this module

Stock Android has no native per-app lock. This module adds one. A locked app opens normally once you authenticate, including when you tap it from the recents screen.

Enabling the module needs one reboot so it loads at boot. After that, if your framework supports hot reload, app updates apply with no reboot. If not, you still reboot after each update. Changing which apps are locked is always instant.

Requirements

  • Android 13+ with an enrolled biometric
  • Xposed manager with libxposed API 101 or newer (102 enables hot reload)

Install

  1. Install APK from Releases
  2. Enable module in your Xposed manager with System Framework scope
  3. Reboot
  4. Select apps to lock in the Apps tab

Prevent uninstall

Toggle in Settings → Privacy & stealth. While on, the module blocks every attempt to uninstall itself, including adb uninstall and pm uninstall, since it's enforced in the system framework.

Important

To remove the module with the toggle on:

  1. Turn it off in the app, then uninstall. No reboot needed.
  2. If for some reason you can't open the app to disable the toggle, either disable the module in your Xposed manager and reboot or boot to safe mode where Xposed is off and uninstall.

Block screenshots

Toggle it globally in Settings or per app in its detail screen. Changes apply immediately, no reboot or hot reload. While on, an unlocked locked app's screenshots, screen recording, and recents preview are blocked. The per-app setting overrides the global one, so an app can stay blocked with the global toggle off. It cannot beat modules that force FLAG_SECURE off, like Disable Flag Secure by aviraxp.

After you turn the block off, that app's recents card can stay blank since the system cached it while the block was on. Swipe it off recents and reopen the app for a fresh preview.

Reporting issues

Settings → About → Export logs saves the module's log lines to a text file and opens a share sheet, so you can attach them to a GitHub issue, send them by email, or share via Telegram. Reproduce the issue first, then export.

Reading the LSPosed logs needs root. Only this module's own log lines are exported, so they're safe to attach to a public issue. Debug builds help me most.

License

GPL-3.0-only