Biometric App Lock

Xposed module that intercepts the launches of a user-defined list of apps at the System Framework level. Those activities are never created until you authenticate via fingerprint or face unlock.

Android 13+ libxposed API 101+ Downloads

Note

Built for AOSP and Pixel. Other Android flavors may work if not heavily modified, such as One UI 8+, but others are untested. If you're on HyperOS, OxygenOS, ColorOS, etc. your device already includes a built-in app lock and you probably don't need this.

About this module

Stock Android never had a native per-app lock, and Private Space (available since Android 15 Beta 2) is a secondary isolated profile where apps run as separate installs with their own data.

This module intercepts activity launches at the system framework level before the target app starts. The Activity is never created until auth succeeds. Tapping a locked app from the recents screen is intercepted too.

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

Releases

v1.5.1

Stable

6/11/2026, 7:17:39 AM

What's Changed

Bug Fixes

  • 2ad25f4 (hook) Stop recents tap relocking resumed app by @hxreborn

    Recents no longer relocks the app being resumed and locked apps now prompt from recents on OneUI.

  • 88ddce0 (hook) Skip uri regrant on stripped ROMs by @hxreborn

    Avoids failing on ROMs where the URI grant methods are absent.

Refactor

  • e14b53e (hook) Extract launch and relock helpers by @hxreborn

    Adds small helpers for maintainability with no behavior change.

Assets

2

v1.5.0

Stable

6/10/2026, 7:05:10 PM

What's Changed

Features

Bug Fixes

Performance Improvements

Refactor

Assets

2

v1.3.0

Stable

6/3/2026, 10:22:08 PM

What's Changed

Features

  • dd9d4d6 (auth) Unlock locked apps with screen lock by @hxreborn

    A locked app now falls back to the device PIN, pattern, or password when biometrics are unavailable, and can optionally require a confirmation tap after face unlock.

  • 7c02081 (hook) Relock when a task is removed by @hxreborn

    Swiping a locked app off the recents screen drops its unlock, so the next launch asks for authentication again.

  • e6af8b5 (ui) Make debug builds obvious at a glance by @hxreborn

    Debug builds now show a marker in the header so they are easy to tell apart.

  • 06e647c (ui) Require biometric to open settings by @hxreborn

    The app can now require fingerprint, face, or device credential before it opens, and shows an error or lockout message when authentication fails.

  • 997c6cc (ui) Add confirm before hiding launcher icon by @hxreborn

    Hiding the app icon now asks you to confirm first.

  • 664a692 (ui) Capture more detail in log export by @hxreborn

    The log header now records build type, ROM, and capture time.

  • fcbaf2a (ui) Save logs to a file by @hxreborn

    Logs can now be saved to the device in addition to sharing.

Bug Fixes

  • 31e8129 (hook) Reopen locked apps on the right screen by @hxreborn

    Locked apps now reopen on the exact screen that was tapped, including deep links and non-exported notification targets, instead of restarting at the launcher.

  • 43c98a7 (hook) Improve OEM and version compatibility by @hxreborn

    Locked apps now prompt more reliably across different Android versions and OEM ROMs.

Refactor

  • 8849922 (auth) Rework the locked-app unlock flow by @hxreborn

    Simplifies the internal flow that reopens a locked app after authentication.

  • 2191252 (ui) Move log export to its own section by @hxreborn

    Moves the log export option into its own Diagnostics section so it is easier to find.

Assets

2

v1.2.1

Stable

6/3/2026, 6:39:47 AM

What's Changed

Features

  • 4537040 Add module-process logcat to log export by @hxreborn

    The export now includes the app process's own logs, so biometric prompt failures show up next to the system hook activity.

Bug Fixes

Performance Improvements

  • ab55240 (prefs) Skip unchanged keys on remote sync by @hxreborn

    Syncing prefs to the hook now writes only changed values, so a routine app launch no longer wakes the hook once per key.

  • 3b58985 (ui) Cache root status in the scope viewmodel by @hxreborn

Refactor

Assets

2

v1.2.0

Stable

6/2/2026, 9:16:45 PM

What's Changed

Features

  • de59f4a (hook) Prevent module uninstall by @hxreborn

    Added a toggle to stop the app from being uninstalled

  • 66bd390 (ui) Add Share logs to About screen by @hxreborn

    Adds Share logs in About → Links to export module logs and diagnose issues. Debug builds produce more verbose output. Restart after updating for new hooks to take effect.

Assets

2

v1.1.0

Stable

6/2/2026, 10:05:16 AM

What's Changed

Features

  • 99cfc1e Re-lock apps when the screen turns off by @hxreborn

    Turning the screen off forces every protected app to re-authenticate on its next launch regardless of its re-lock delay.

Bug Fixes

  • 0c72d63 (hook) Match fingerprints across API levels by @hxreborn

    Improve version compatibility so locked apps prompt below Android 16.

  • 21dc795 (ui) Use LocalWindowInfo for sheet gesture threshold by @hxreborn

    The What's New sheet now sizes itself to the window, not the screen, so it works in split-screen and on foldables

  • c91cc24 (ui) Drop ApplicationInfo from AppItem by @hxreborn

    AppItem no longer carries the full ApplicationInfo object for each row

Refactor

  • b5632b3 (app) Move binder and prefs to Application by @hxreborn

    The service connection now lives on Application so it binds reliably on every process start

Assets

1

v1.0.1

Stable

5/29/2026, 2:51:53 PM

What's Changed

Features

  • e40da71 (ui) Link to the issue tracker from about by @hxreborn

    The About screen now has a direct link to GitHub issues.

  • b3fbdbe (ui) Spin the about screen badge by @hxreborn

    The About screen badge now spins slowly.

Bug Fixes

  • ea6051c (auth) Drop the screen flash after biometric unlock by @hxreborn

    Unlocking no longer flashes the home screen before the app appears.

  • e4ef4c5 (auth) Open the locked app when launching from a notification by @hxreborn

    Tapping a notification for a locked app now opens it after you authenticate.

  • cde7385 (hook) Clear unlock state when a locked app is removed or wiped by @hxreborn

    Uninstalling, updating, or clearing data for a locked app now drops its unlock token so the next launch requires biometric authentication.

Performance Improvements

  • feb81fa (auth) Skip activity recreation on biometric unlock by @hxreborn

    The post-auth relaunch now sends a full MAIN + LAUNCHER intent so Android brings the existing task forward instead of recreating its top activity.

Assets

1