exported-components

Detect unguarded exported Android IPC components and generate adb and Drozer test commands.

48|27|Updated Jul 30, 2026
One-click install
npx skills add https://github.com/abisheikM1/Tribunal --skill exported-components-abisheikm1
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: exported-components
Source: https://github.com/abisheikM1/Tribunal/tree/main/legacy-harness/skills/exported-components
Command: npx skills add https://github.com/abisheikM1/Tribunal --skill exported-components-abisheikm1

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Android apps often expose Activities, Services, Broadcast Receivers, and Content Providers to any installed app through missing or weak export guards, creating auth bypass, data theft, and privilege escalation risks that are tedious to enumerate manually from a manifest. ## Core Features & Use Cases - Automated export enumeration: Parses manifest.json to list components reachable by any app (explicit exported="true" or implicit intent-filter exports), filtering out signature-guarded components and flagging weak normal/dangerous permission guards. - Ready-to-run test commands: Generates per-component adb shell am start/broadcast and Drozer commands for human-run dynamic confirmation on an authorized device. - TTP catalog and chaining playbook: Documents eight attack techniques (provider SQLi, path traversal, intent redirection, _display_name traversal, task hijacking) with disclosed-report citations and MASVS/MASTG mappings. - Use Case: During an authorized bug bounty assessment, point the detector at a decompiled target's manifest to instantly surface an exported provider with no permission guard, then confirm SQL injection with the generated Drozer command. ## Quick Start Run the enumerate_exports script against a target hash to list unguarded exported components and their adb test commands.

Frequently Asked Questions about exported-components

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find exported components in an Android app?

Parse the app's AndroidManifest.xml and flag components with android:exported="true" or an intent-filter with no exported attribute. The bundled enumerate_exports.py script automates this from manifest.json and prints an adb test command per component.

How to test an exported Android content provider for SQL injection?

Query the provider with a crafted selection clause using adb shell content query --uri content://<authority>/ --where "1=1) UNION SELECT ..--", or run Drozer's scanner.provider.injection module. Confirm by checking whether injected columns or schema errors appear in the response.

What is the difference between explicit and implicit exported components?

Explicit export sets android:exported="true" directly, while implicit export happens when a component declares an intent-filter without an exported attribute, which defaults to exported on older targets. Providers also default to exported when minSdk is below 17.

Does a permission-protected exported component block attackers?

Only signature or signatureOrSystem protection levels meaningfully block third-party apps. Components guarded by normal or dangerous permissions remain attacker-obtainable, so the detector still lists them with a warning note.

Can this skill run attacks automatically against a device?

No. It is a detection and methodology aid that generates adb and Drozer commands for a human to review and execute on an authorized device. It requires the target package to be listed in scope/scope.json and refuses out-of-scope testing.