01 Anatomy of Android IPC
Every Android app defines its external boundaries in AndroidManifest.xml. When developers configure android:exported="true" on an Activity or BroadcastReceiver without setting explicit signature-level permissions, any other application on the device can invoke that component with arbitrary Intent extras.
02 Automated Static Audit
We built a lightweight CLI script within the android-security-lab toolkit that parses compiled APK manifests directly on a phone in Termux, isolating exported components and dangerous Intent filters:
04 Runtime Intent Injection
Using ADB shell commands, we verified that any unprivileged app could trigger an internal configuration reset by broadcasting the exposed intent:
05 Defensive Hardening Checklist
- Always set
android:exported="false"unless the component is explicitly designed for external application interaction. - If an intent filter is required, protect the component with a custom permission configured with
android:protectionLevel="signature". - Audit all incoming Intent extras with type-safe deserialization to avoid ClassNotFoundException denial-of-service crashes.