← Projects

Squirrel Detective

Offline Android privacy auditor: what apps declare and what is turned on right now

Problem

Apps quietly observe what else is installed on the phone and how it is used. And an accessibility service, keyboard or notification listener, once turned on, sees the screen, every keystroke and SMS codes.

What I built

A fully offline Android app: parses the components apps actually declare, checks which accessibility services, device admins, keyboards and notification listeners are turned on right now, and explains every finding in plain language. Scans are diffed: a banner shows new findings and added/removed permissions per app, and stays until you expand it. The whitelist trusts only system apps and installs from trusted stores.

Result

Release 2.0.0, open source under MIT. No INTERNET permission, no analytics, no signature feeds. An enabled service is its own HIGH-risk finding; a merely declared one is MEDIUM. Targets Android 17, 91 JUnit tests, and R8 shrank the APK from ~14 MB to ~2.5 MB.

Home: quick audit or inspect a single app
Scan results: the expanded changes banner with a new finding, and the risk level of every app
Per-app report: a notification listener that is declared (MEDIUM) and turned on right now (HIGH)
Permission wiki: what each Android permission actually grants