USSDShield is an open-source Android security application built in Kotlin that prevents shoulder-surfing during M-Pesa USSD payment sessions.
Using Android's AccessibilityService, USSDShield detects active system USSD dialogs from Safaricom and M-Pesa and overlays a secure input layer, masking sensitive PIN digits as you type.
Key engineering features:
- Zero network permission: runs entirely offline, on-device
- High-precision dialog overlay matched to Safaricom USSD view hierarchies
- Lightweight AccessibilityService lifecycle with no background polling
- Open-source Kotlin codebase on GitHub
Try it out or inspect the source: https://github.com/kiragu-maina/USSDShield
Built with