Shipped this project!
Sigil v0.5.0-dev3 — The “Zero-Trust Screen Shield” Update!
[The iOS build is also planned and pretty much guaranteed to come, please do not repete that it is’t on iOS in the feedbacks, thankyouu :D]
As promised, the bleeding-edge dev builds keep coming! This update tackles Roadmap an Issue and fundamentally overhauls how Sigil defends your data while you’re looking at it.
What did I make?
I built a “Zero-Trust Screen Shield” to defend against tapjacking, unauthorized snapshots, and display mirroring.
Anti-Hooking: Instead of relying just on Android’s native FLAG_SECURE (which can be bypassed by Xposed/LSPosed frameworks), Sigil now aggressively re-applies the secure flag whenever window focus is regained.
Visual Defense: A reactive Compose blur protects data when the notification shade is pulled down, and a native FrameLayout overlay blocks the OS Recents menu from capturing app state.
Hardware Defense: The app now actively detects screen recording and hardware capture attempts, clearing the clipboard and notifying the user. It also enforces filterTouchesWhenObscured to automatically drop input events from invisible malicious overlays (Anti-Tapjacking).
(Meta note: Sorry for the tag confusion last time! Just to reassure everyone, all dev builds post-0.4.5 are properly using the 0.5.0-devX base! This build bumps the versionName to 0.5.0-dev3 and versionCode to 453.)
What was challenging?
Dialog rendering was my biggest enemy. The new shielding mechanism conflicted profusely with legitimate in-app dialogs, causing the screen to lock up or render black. I wasted a ton of time trying to fix it by pushing back features and attempting to treat the shield screen itself as a high-precedence dialog. It was incredibly unreliable. I eventually had to rewrite how Sigil handles dialogs globally, creating new SecureAlertDialog wrappers that keep the app safe without breaking the UI.
🔗 Download Link: https://drive.google.com/file/d/15Najuf76L5rUdvZOnmXmAEjW5lk6DSmX/view?usp=sharing