Releases: theabhishekchandra/ZeroDroid
Release list
v1.2.1
chore: bump version to 1.2.1 (#22) * docs: document the develop/main branching workflow (#12) Explains the new branch protection setup — develop as the default working branch, main as the protected release branch reachable only via PR from develop with passing CI. * docs: split README reference sections into docs/ (#13) Moves Architecture, Project Structure, Battery Optimization, Permissions, and Hardware Compatibility out of the README into their own docs/ files, mirroring the existing docs/TOOLS.md pattern. The README keeps a short summary + link for each so it stays a fast on-ramp instead of the single source of truth for implementation detail. Updates the FAQ cross-references and the bug report template to point at the new files. * docs: soften detection claims, add download CTA and Obtainium install (#14) - Feature tables now say "flags possible X" instead of "detects X" for heuristic security checks (IMSI catcher, tracker, deauth, hidden camera, RF bug sweeper) — these can false-positive/miss, and the disclaimer already says so; the feature copy should match. - Adds a prominent "Download Latest Release" button under the badges. - Adds Obtainium install instructions to Download & Build. * docs: add demo GIF with SSIDs/MAC addresses redacted (#17) Real live scan of WiFi Analyzer, BLE Scanner, and Sensor Dashboard, but the network/device list regions are blurred throughout — the first version of this exposed real neighbor SSIDs and router MAC addresses (one SSID contained what looked like a real person's name) and was removed from develop's history. This version keeps the real functionality (network counts, channel chart, live sensor readings) visible while redacting anything identifying. * Release: branching docs, README split, promotion fixes, demo GIF (#18) (#19) * docs: document the develop/main branching workflow (#12) Explains the new branch protection setup — develop as the default working branch, main as the protected release branch reachable only via PR from develop with passing CI. * docs: split README reference sections into docs/ (#13) Moves Architecture, Project Structure, Battery Optimization, Permissions, and Hardware Compatibility out of the README into their own docs/ files, mirroring the existing docs/TOOLS.md pattern. The README keeps a short summary + link for each so it stays a fast on-ramp instead of the single source of truth for implementation detail. Updates the FAQ cross-references and the bug report template to point at the new files. * docs: soften detection claims, add download CTA and Obtainium install (#14) - Feature tables now say "flags possible X" instead of "detects X" for heuristic security checks (IMSI catcher, tracker, deauth, hidden camera, RF bug sweeper) — these can false-positive/miss, and the disclaimer already says so; the feature copy should match. - Adds a prominent "Download Latest Release" button under the badges. - Adds Obtainium install instructions to Download & Build. * docs: add demo GIF with SSIDs/MAC addresses redacted (#17) Real live scan of WiFi Analyzer, BLE Scanner, and Sensor Dashboard, but the network/device list regions are blurred throughout — the first version of this exposed real neighbor SSIDs and router MAC addresses (one SSID contained what looked like a real person's name) and was removed from develop's history. This version keeps the real functionality (network counts, channel chart, live sensor readings) visible while redacting anything identifying. * Release: branching docs, README split, promotion fixes, demo GIF (#18) (#20) * docs: document the develop/main branching workflow (#12) Explains the new branch protection setup — develop as the default working branch, main as the protected release branch reachable only via PR from develop with passing CI. * docs: split README reference sections into docs/ (#13) Moves Architecture, Project Structure, Battery Optimization, Permissions, and Hardware Compatibility out of the README into their own docs/ files, mirroring the existing docs/TOOLS.md pattern. The README keeps a short summary + link for each so it stays a fast on-ramp instead of the single source of truth for implementation detail. Updates the FAQ cross-references and the bug report template to point at the new files. * docs: soften detection claims, add download CTA and Obtainium install (#14) - Feature tables now say "flags possible X" instead of "detects X" for heuristic security checks (IMSI catcher, tracker, deauth, hidden camera, RF bug sweeper) — these can false-positive/miss, and the disclaimer already says so; the feature copy should match. - Adds a prominent "Download Latest Release" button under the badges. - Adds Obtainium install instructions to Download & Build. * docs: add demo GIF with SSIDs/MAC addresses redacted (#17) Real live scan of WiFi Analyzer, BLE Scanner, and Sensor Dashboard, but the network/device list regions are blurred throughout — the first version of this exposed real neighbor SSIDs and router MAC addresses (one SSID contained what looked like a real person's name) and was removed from develop's history. This version keeps the real functionality (network counts, channel chart, live sensor readings) visible while redacting anything identifying. * fix: audit and repair core tools across the app BLE Scanner: - show real device names via scanRecord (not just paired-device cache) - fix bookmark toggle not reflecting in UI during/after scan - redesign device list layout to stop character-by-character text wrap GPS Tracker: - sort satellites by fix usage then signal strength - add real satellite name lookup (GPS/Galileo/QZSS/IRNSS) and carrier frequency/band display - fix list layout wrap issues IR Remote: - hide interactive remote UI entirely when no IR hardware is present Permission gating: - add missing PermissionGate to UWB, Wi-Fi Aware, and USB Camera screens USB device access: - add UsbConnectionManager for proper requestPermission/openDevice/claimInterface flow - wire Connect/Disconnect UI into SDR and USB Camera screens Wardriving: - move scan collection into the foreground service so it survives in-app navigation - fix CSV export failing on large sessions via FileProvider + EXTRA_STREAM - redesign record list to lead with geo/time data instead of duplicating WiFi Analyzer's fields Cell Tower Monitor: - reset analyzer state on each new monitoring session (was carrying stale baseline across restarts) - filter 3GPP "unavailable" sentinel values out of LAC/CID - add PCI, RSRQ, SNR, timing-advance distance estimate, bandwidth, and carrier name (MCC/MNC lookup table) - redesign screen with neighbor cell list and signal timeline chart GPS Spoof Detector: - read altitude/speed/satellite count from structured fields instead of regex-parsing check text Network Scanner: - widen host discovery from 5 probe ports to the full scan port set (was missing most non-server devices) Signal Logger: - fix RSSI text wrapping character-by-character down the screen edge EMF Mapper: - add gauge overflow indicator for readings above the 200uT dial max - smooth baseline calibration over ~10 samples instead of locking to a single first reading - add visible labels to reset/clear icon buttons * fix: sign release builds with a stable keystore instead of shipping debug APKs GitHub Releases were shipping renamed assembleDebug output, since the release buildType had isMinifyEnabled but no signingConfig at all. Android Studio's debug keystore is machine-specific and regenerates on reset, so any two debug builds can carry different signing identities -- installing one over an existing install (or a fresh download hitting a stale prior install) fails with "package conflicts with an existing package". - add a release signingConfig sourced from keystore.properties (local, gitignored) or RELEASE_* environment variables (CI secrets), applied only when configured so assembleDebug/lint/test and unconfigured assembleRelease builds are unaffected - gitignore keystore.properties and *.jks/*.keystore - add RELEASING.md documenting keystore generation and both local and CI signing - add a release workflow that builds, signs, and uploads a proper *-release.apk to GitHub Releases on version tags, replacing the manual debug-APK upload process Verified end-to-end with a throwaway local keystore: assembleRelease produces an APK signed with the configured identity (confirmed via apksigner), and assembleDebug/test still pass with no keystore configured. * chore: bump version to 1.2.0 (versionCode 3) * fix: fail release CI clearly when the keystore secret is bad The v1.2.0 release run failed deep inside packageRelease with a cryptic KeytoolException because RELEASE_STORE_FILE_BASE64 decoded to a corrupted keystore. Verify the decoded keystore right after decoding so a bad secret fails fast with an actionable message instead of a Gradle stack trace. * fix: guard CellIdentityLte#getBandwidth behind API 28 check getBandwidth() was added in API 28 but minSdk is 26, so lint correctly flagged this as a NewApi violation blocking the required CI build check. * chore: bump version to 1.2.1 (versionCode 4) v1.2.0's release build never succeeded (broken keystore secret), so re-cutting as 1.2.1 rather than reusing/moving the existing v1.2.0 tag.
ZeroDroid v1.1.0
ZeroDroid v1.1.0 🛡️
A major internals upgrade: modern DI, real UWB ranging, a fully audited codebase, unit test coverage, and a new Unified Alert Center — plus the toolchain and CI groundwork to keep the project healthy going forward.
✨ What's new since v1.0.0
- 29 tools now, up from 27 — new Alert Center aggregates threats from Rogue AP, Deauth Detector, GPS Spoof, Hidden Camera, and Tracker Scanner into one persisted, deduplicated feed
- Hilt dependency injection — replaced the manual
AppContainerwith a proper Hilt-based DI graph across every ViewModel and service - Real UWB ranging —
UwbViewModel/UwbServicenow do actual controller/controlee ranging via Jetpack Core UWB instead of a placeholder - Correctness audit — fixed previously-swallowed exceptions across 9 domain classes, cleaned up the manifest, added the
UWB_RANGINGpermission - 109 unit tests added for pure domain/util logic (distance estimation, QR threat analysis, channel analysis, privacy scoring, and more)
- Toolchain upgrade: Kotlin 2.4.10, AGP 9.3.1, Gradle 9.7.0, Room 2.8.4, Compose BOM 2026.06.01, CameraX 1.6.1, Hilt 2.60.1, KSP 2.3.11, compileSdk 37
- CI: GitHub Actions now runs lint + unit tests + assembleDebug on every push/PR; 15 real lint errors were fixed in the process, including a regression where
List.removeLast()silently resolved to a Java 21 API requiring Android 15+ instead of the intended Kotlin stdlib extension - Open-source scaffolding: issue/PR templates,
CONTRIBUTING.md,CODE_OF_CONDUCT.md,SECURITY.md
📲 Install
- Download
ZeroDroid-v1.1.0-debug.apkbelow. - On your device, enable Install unknown apps for your browser/file manager.
- Open the APK to install (or
adb install -rover an existing v1.0.0 install — your data is preserved).
⚠️ This is a debug build for easy sideloading — it is larger and unoptimized compared to a production release. A signed release build is still on the Roadmap.
📋 Requirements
- Android 8.0 (API 26) or newer — Android 12+ recommended for full BLE/WiFi features
- Many tools depend on device hardware (IR blaster, UWB, barometer, etc.); the in-app Dashboard shows what your device supports
📖 Docs
⚖️ Responsible use
ZeroDroid is for education, authorized security research, and defensive use only. Only scan or test networks and devices you own or have written permission to assess. See the Disclaimer.
Full Changelog: v1.0.0...v1.1.0
ZeroDroid v1.0.0
ZeroDroid v1.0.0 🛡️
The first public release of ZeroDroid — the all-in-one Android hardware toolkit. Turn your phone into a portable RF lab, network analyzer, and security auditor with 27 specialized tools in one app.
✨ Highlights
- 27 tools across 5 categories: Wireless · RF & Signals · Sensors · Network · Security
- Every radio exposed: WiFi, BLE, Classic Bluetooth, NFC, IR, UWB, SDR, cellular, GPS
- Security detectors: hidden cameras, AirTag/SmartTag trackers, IMSI catchers, rogue APs, deauth attacks, GPS spoofing, BadUSB
- 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
- Terminal-hacker UI (Material 3 dark theme, JetBrains Mono)
📲 Install
- Download
ZeroDroid-v1.0.0-debug.apkbelow. - On your device, enable Install unknown apps for your browser/file manager.
- Open the APK to install.
⚠️ This is a debug build for easy sideloading — it is larger and unoptimized compared to a production release. A signed release build is planned (see the Roadmap).
📋 Requirements
- Android 8.0 (API 26) or newer — Android 12+ recommended for full BLE/WiFi features
- Many tools depend on device hardware (IR blaster, UWB, barometer, etc.); the in-app Dashboard shows what your device supports.
📖 Docs
⚖️ Responsible use
ZeroDroid is for education, authorized security research, and defensive use only. Only scan or test networks and devices you own or have written permission to assess. See the Disclaimer.
Full Changelog: initial release.