Skip to main content

A professional tool to automate attack surface detection in Android applications by parsing Manifest files.

Project description

📲 AndroidManifestExplorer

A high-performance static analysis utility designed to automate the discovery of attack surfaces in Android applications. By parsing decompiled AndroidManifest.xml files, this tool identifies exposed components, security misconfigurations, and deep-link vectors, providing ready-to-use adb payloads for immediate dynamic verification.

🎯 Security Objectives

  • Attack Surface Mapping: Identify all exported Activities, Services, Broadcast Receivers, and Content Providers.
  • Implicit Export Detection: Flag components that are exported by default due to the presence of intent-filters without explicit android:exported="false" attributes.
  • Deep Link Analysis: Extract URI schemes and hosts to facilitate intent-fuzzing and unauthorized navigation testing.
  • Permission Audit: Highlight unprotected components and evaluate the strength of defined custom permissions.
  • Config Analysis: Detect high-risk flags such as debuggable="true", allowBackup="true", and testOnly="true".

🚀 Installation

Prerequisites

  • Python 3.6+
  • apktool (for decompiling binary XML)

Setup

  1. Clone the repository and install the dependencies:
$: git clone https://github.com/mateofumis/AndroidManifestExplorer.git
$: cd AndroidManifestExplorer
$: pip install .
  • Alternatively, install the requirements directly:
$: pip install -r requirements.txt
  1. Using PyPI (Available for pip or pipx)
# with pip/pip3
$: pip install AndroidManifestExplorer
# or pipx
$: pipx install AndroidManifestExplorer

🛠 Usage Workflow

1. Decompile Target APK

The tool operates on the plain-text XML output of apktool.

$: apktool d target_app.apk -o output_dir

2. Execute Scan

Run the explorer against the generated manifest:

$: AndroidManifestExplorer -f output_dir/AndroidManifest.xml

If running the script directly without installation:

$: python3 AndroidManifestExplorer.py -f output_dir/AndroidManifest.xml

📊 Technical Output Overview

The tool categorizes findings by risk and generates specific adb commands:

  • Activities: Generates am start commands.
  • Services: Generates am start-service commands.
  • Receivers: Generates am broadcast commands.
  • Providers: Generates content query commands with a default SQLi test payload (--where "1=1").

Example Result:

[+] ACTIVITY EXPORTED: com.package.name.InternalActivity  
    [!] NO PERMISSION REQUIRED (High Risk)  
    [>] ADB: adb shell am start -n com.package.name/com.package.name.InternalActivity  
    [★] DEEP LINK DETECTED: secret-app://debug_panel  
    [>] Attack: adb shell am start -W -a android.intent.action.VIEW -d "secret-app://debug_panel" com.package.name

⚖️ Disclaimer

This tool is intended for professional security research and authorized penetration testing only. Unauthorized use against systems without prior written consent is strictly prohibited and may violate local and international laws. The developer assumes no liability for misuse or damage caused by this utility.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

androidmanifestexplorer-1.0.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

androidmanifestexplorer-1.0.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file androidmanifestexplorer-1.0.0.tar.gz.

File metadata

  • Download URL: androidmanifestexplorer-1.0.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for androidmanifestexplorer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f4c06c88583c9a21d6c0edfcc62e336be634fcfd9d6ff91090c06c07f21039b2
MD5 e91c07c39153204773d17766cba9a9ca
BLAKE2b-256 fc0b7a58d014e3407c695ea1b2112acadb3f9ce07164b56de4d57fd6dfcdda7c

See more details on using hashes here.

File details

Details for the file androidmanifestexplorer-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for androidmanifestexplorer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f19b2a3b77b4717cdfa1d01c02c876985ba2557002eba2856d553823ddf992a
MD5 8961831f766a68851f1380eaff17d0e0
BLAKE2b-256 1c9238a1f5975af57165c2ef2c9e02fb7631a19db274af9fad4cdd09a6522b69

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page