Skip to content

Repository files navigation

ZeroDroid — Hardware Security Toolkit

ZeroDroid

The all-in-one Android hardware toolkit.
Turn your phone into a portable RF lab, network analyzer, and security auditor — 29 tools in one app.

Replaces Termux + a dozen single-purpose scanner apps with one native, offline, permission-scoped toolkit.

Kotlin Jetpack Compose Android 8.0+ Material 3 License: MIT

Release CI Stars Forks Issues Last commit Code size Tools

⬇️ Download  ·  🧰 Features  ·  📖 Full Tool Guide  ·  📸 Screenshots  ·  ❓ FAQ  ·  🤝 Contributing

Download latest release

ZeroDroid demo — WiFi Analyzer, BLE Scanner, and Sensor Dashboard scanning real nearby networks and devices (SSIDs/MAC addresses redacted)


⚡ At a Glance

ZeroDroid exposes every radio, sensor, and port your phone has — WiFi, Bluetooth, BLE, NFC, IR, UWB, USB, GPS, cellular, magnetometer, barometer, microphone — through 29 specialized tools wrapped in a terminal-hacker UI.

🧰 29 tools Across 5 categories: Wireless · RF & Signals · Sensors · Network · Security
📡 Every radio WiFi, BLE, Classic BT, NFC, IR, UWB, SDR, cellular, GPS
🔋 Zero idle battery No auto-start scanning, everything auto-stops, all services lazy-loaded
🔒 Privacy-first Runs 100% on-device · no account · permissions requested only when needed
📱 Android 8.0+ Min SDK 26, target SDK 36 · works best on Android 12+
🆓 Open source MIT licensed · Kotlin · Jetpack Compose · Material 3

Built for penetration testers, security researchers, RF engineers — and anyone curious about the invisible wireless world around them.


📸 Screenshots

Dashboard Toolkit Navigation drawer
📊 Dashboard
Device & hardware grid
🧰 Toolkit
29 tools by category
🧭 Navigation
Terminal-styled drawer

🎯 The Problem

Your phone sits in a sea of invisible signals. Right now, within ~30 meters of you:

  • 📷 Hidden cameras may be streaming over WiFi or BLE — invisible to you.
  • 🏷️ AirTags / SmartTags could be tracking your location without your knowledge.
  • 🎭 Rogue WiFi hotspots (evil twins) mimic real networks to steal credentials.
  • 📶 IMSI catchers (Stingrays) force your phone to 2G to intercept calls & texts.
  • 🔊 Ultrasonic beacons (18–24 kHz) track you across devices through your mic.
  • 🚫 Deauth attacks kick you off WiFi — disguised as "bad signal".
  • 🔌 BadUSB devices pretend to be keyboards to type malicious commands.

No single app detects all of these. Security pros carry a bag of separate gadgets; regular users have nothing. ZeroDroid puts them all in one place.


🧰 Features

Every tool solves a specific, real problem. Full step-by-step docs live in the 📖 Complete Tool Guide →.

📡 Wireless
Tool What it does
WiFi Analyzer Scans networks, finds channel congestion, flags weak security (OPEN/WEP/WPA)
BLE Scanner Discovers BLE devices with full GATT explorer, distance estimates, JSON dumps
NFC Tools Reads NDEF, dumps MIFARE Classic sectors, emulates tags via HCE
Bluetooth Classic Discovery, SDP service listing, SPP serial connections
Wi-Fi Aware NAN device-to-device discovery without a router
Wi-Fi Direct Peer discovery, group formation, direct P2P file transfer
📻 RF & Signals
Tool What it does
IR Remote Pre-built Samsung/LG/Sony remotes, custom protocols, Flipper Zero .ir import
UWB Radar FiRa compliance & capability check (ranging, AoA, ToF)
SDR Radio Detects RTL-SDR, HackRF, AirSpy dongles via USB OTG
Ultrasonic Analyzer FFT spectrum of 18–24 kHz to flag possible ultrasonic tracking beacons
🎚️ Sensors
Tool What it does
Sensor Dashboard Accelerometer, gyroscope, magnetometer, barometer, compass, level, metal detector
QR Scanner Scans + analyzes codes for phishing URLs & suspicious TLDs before opening
USB Camera UVC camera detection with resolution & capability listing
GPS Tracker Live position, GNSS satellite list, raw NMEA log
EMF Mapper Magnetometer field mapping with baseline deviation & hotspots
🌐 Network
Tool What it does
USB Devices Full USB inspection + BadUSB (HID + Mass Storage) detection
Cell Tower Analyzer Monitors towers; flags possible IMSI catchers (indicators: LAC change, signal spike, 2G downgrade)
Wardriving Background GPS+WiFi logging with WiGLE CSV export
🛡️ Security
Tool What it does
Hidden Camera Detector 5 methods: WiFi OUI, SSID, BLE, magnetometer, port scan
GPS Spoof Detector 7 cross-validation checks (GPS vs cell/WiFi/barometer/accelerometer)
Tracker Scanner Flags devices matching known AirTag, SmartTag, Tile, Chipolo, Pebblebee signatures
Rogue AP Detector 6 algorithms: evil twin, SSID spoofing, karma, open impersonator
Network Scanner Subnet-wide port scan, banner grabbing, vulnerability assessment
RF Bug Sweeper BLE module + ultrasonic + magnetic anomaly sweep
Proximity Radar Visual radar plotting devices by estimated distance & signal
Privacy Score 16+ checks across WiFi, Bluetooth, device, network & physical security
Deauth Detector Flags possible deauth floods, jamming, AP disappearance, channel hopping
Signal Logger Continuous WiFi+BLE timeline with arrival/departure tracking
Alert Center Unified, persisted feed of every threat raised by the other Security tools

⬇️ Download & Build

📦 Prebuilt APK releases are on the Releases page. To build from source:

📲 Install via Obtainium

Obtainium tracks ZeroDroid's GitHub Releases directly on your device and notifies you of new versions — no app store needed.

  1. Install Obtainium (F-Droid or its own GitHub Releases).
  2. Tap Add App and paste: https://github.com/theabhishekchandra/ZeroDroid
  3. Obtainium detects the GitHub source automatically and pulls the latest release APK.
  4. Enable auto-updates or check manually — Obtainium will flag when a new release is out.

Prerequisites

  • Android Studio Ladybug (2025.1+) or newer
  • JDK 17+, Android SDK 36
  • A physical Android device (many features need real hardware)

Build & install

git clone https://github.com/theabhishekchandra/ZeroDroid.git
cd ZeroDroid
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
Requirement Minimum
Android version 8.0 (API 26)
Target SDK 36
Recommended Android 12+ for full BLE/WiFi features

🗺️ Roadmap

Planned improvements — ideas and PRs welcome!

  • Signed APK releases + F-Droid distribution
  • GitHub Actions CI (build + lint on every PR)
  • Unified Alert Center — persisted, cross-tool threat feed (shipped instead of the originally-planned per-scan JSON/PDF export; export may still come later)
  • Optional light theme
  • Expanded SDR & tracker signature databases
  • Localization / translations
  • Unit test coverage for domain/util logic (109 tests) — instrumentation tests still open

❓ FAQ

Is ZeroDroid legal to use?

The app is legal. How you use it is your responsibility. Only scan, probe, or test networks and devices you own or have written permission to assess. See the Disclaimer and the in-app Ethical Use Agreement.

Does it require root?

No. ZeroDroid uses only standard Android APIs and runtime permissions — no root, no custom ROM.

Why does it ask for location permission?

Android requires location permission to return WiFi and Bluetooth scan results — it's a platform rule, not a data grab. Permissions are requested only when you open a feature that needs them.

Will every tool work on my phone?

No — tools depend on your hardware (IR blaster, UWB, barometer, etc. aren't on every device). The Dashboard shows exactly which capabilities your device has so you know what will work. See Hardware Compatibility.

Does it drain my battery?

No. Nothing scans until you tap start, every scanner auto-stops after a timeout, and all services are lazy-loaded. The home screen costs effectively zero battery. See Battery Optimization.

Is my data collected?

Everything runs on-device. There's no login and no account. Permissions are requested only when a specific feature needs them.


🏗️ Architecture

MVVM (Screen → @HiltViewModel → Domain → Hardware), Hilt DI, all services lazy-initialized, no auto-start scanning. Full design decisions and directory layout: 📖 Architecture Guide →


🔋 Battery Optimization

Zero idle battery: no auto-start scanning, 5Hz sensor polling, SCAN_MODE_LOW_POWER BLE, everything auto-stops and lazy-loads. Full before/after breakdown: 📖 Battery Optimization →


🔐 Permissions

ZeroDroid requests permissions only when you open a feature that needs them — nothing at startup. Full permission-by-permission breakdown: 📖 Permissions →


📱 Hardware Compatibility

Not all phones have all hardware. The Dashboard shows which capabilities your device has. Full hardware → feature matrix: 📖 Hardware Compatibility →


🛠️ Tech Stack

Kotlin Jetpack Compose Material 3 Room CameraX ML Kit Gradle Android Studio

Architecture: MVVM (ViewModel + StateFlow + Compose) · Hilt DI · Room (auto-migration) · Dark Material 3 theme with JetBrains Mono

Full dependency versions
Layer Technology
Language Kotlin 2.2.0
UI Framework Jetpack Compose (BOM 2026.06.01)
Design System Material 3 (dark theme, JetBrains Mono, CutCornerShape)
Architecture MVVM (ViewModel + StateFlow + Compose)
Navigation Jetpack Navigation Compose 2.9.8
DI Hilt 2.60.1
Database Room 2.8.4 (5 entities, auto-migration)
Camera CameraX 1.6.1
Barcode ML Kit Barcode 17.3.0 + ZXing 3.5.3
Location Play Services Location 21.4.0
Ranging Jetpack Core UWB 1.0.0
Permissions Accompanist Permissions
Build Gradle 9.7.0, AGP 9.3.1
Min / Target SDK 26 (Android 8.0) / 37

⚖️ Ethical Use

ZeroDroid shows an Ethical Use Agreement on first launch that cannot be dismissed. Users must accept:

  • ✅ Use only on networks and devices you own or are authorized to test
  • ✅ Comply with all local laws on wireless scanning and network analysis
  • 🚫 No unauthorized surveillance, tracking, or network attacks
  • 🛡️ Report vulnerabilities responsibly through proper channels

Declining the agreement exits the app.


🌳 Branching & Workflow

ZeroDroid uses a two-branch model — no one pushes directly to a protected branch, everything goes through a PR with CI passing.

Branch Purpose Protection
develop Default branch — all active work happens here PR + passing build CI required · no force-push/delete
main Stable/release branch — only updated from develop PR + passing build CI required, enforced for everyone including admins · linear history only (squash/rebase) · no force-push/delete

Contributor flow:

git checkout develop
git pull
git checkout -b feature/my-tool develop
# ...make changes...
git push -u origin feature/my-tool
# open a PR into develop
  • New work branches off develop and PRs target develop, not main.
  • main only moves forward via a PR from develop (release cuts), never a direct push or a PR from a feature branch.
  • Every PR must pass the build CI check (lint, unit tests, debug assemble) before it can merge.

🤝 Contributing

Contributions are welcome — bug reports, new tool ideas, hardware compatibility notes, and pull requests. See CONTRIBUTING.md for the full guide (dev setup, project conventions, adding a new tool, testing expectations). Short version:

  1. Fork the repo and create a feature branch off develop: git checkout -b feature/my-tool develop
  2. Follow the existing feature structure (domain/data/ui/viewmodel/) — keep Android UI imports out of domain/.
  3. Match the code style: Kotlin, MVVM, StateFlow, Jetpack Compose, JetBrains Mono terminal aesthetic, Hilt for DI.
  4. Test on a physical device — most features depend on real hardware.
  5. Commit with a clear message and open a pull request into develop describing what changed and how you verified it.

When adding a new tool: register its screen in navigation/ZeroDroidScreen.kt, wire any new service into the relevant core/di/*Module.kt, and document it in docs/TOOLS.md.

This project follows the Contributor Covenant.


💬 Support

  • 🐛 Bugs & feature requests: open an issue
  • 💡 Questions & ideas: start a discussion
  • 🔒 Security disclosures: please report privately via SECURITY.md rather than in a public issue

If ZeroDroid is useful to you, consider starring the repo ⭐ — it helps others discover the project.


⚠️ Disclaimer

ZeroDroid is provided for educational purposes, authorized security research, and defensive use only.

The tools in this app inspect radios, sensors, and networks around you. Using them to access, monitor, disrupt, or attack networks, devices, or people without explicit authorization is illegal in most jurisdictions and is not the intended use of this software.

  • You are solely responsible for how you use ZeroDroid and for complying with all applicable laws.
  • Only scan, probe, or test networks and devices you own or have written permission to assess.
  • Detection features (IMSI catchers, hidden cameras, trackers, rogue APs, etc.) are heuristics and may produce false positives or miss real threats — don't rely on them as your sole security measure.
  • The author(s) and contributors accept no liability for misuse or for any damages arising from use of this software. It is provided "as is", without warranty of any kind.

By building, installing, or using ZeroDroid, you agree to these terms and to the in-app Ethical Use Agreement.


📄 License

Licensed under the MIT License.

Built with ☕ and Kotlin · If you find ZeroDroid useful, drop a ⭐

About

The all-in-one Android hardware toolkit. 29 tools for wireless analysis, sensor monitoring, network scanning, and security auditing.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

33 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages