v2.0
OpenSignLabs/OpenSignv2.0Apr 5, 2026by AzeemIdrisi
AI Summary
Major refactor introducing a modular package structure, Rich-based console UX, and expanded ADB and network scanning features.
Key Highlights
- Refactored monolithic entry point into a modular package layout.
- Implemented Rich-based console UX with tables, panels, and spinners.
- Expanded menu to five pages with 62 numbered actions.
- Added Nmap-driven LAN scanning with ADB-oriented summaries.
Breaking Changes
- Refactored monolithic entry point into a modular package
- Removed `modules/release.py`
New Features
- Modular package architecture
- Rich-based console UX (tables, panels, spinners)
- Nmap-driven LAN scanning
- Expanded ADB utilities (port forwarding, WiFi utilities, root heuristics)
- Five-page menu structure
Full Release Notes
This release refactors the monolithic entry point into a **modular package**, adds **configurable resolution of external tools** (ADB, Metasploit, scrcpy, Nmap), **Rich-based console UX** (tables, panels, spinners, themed messages), **Nmap-driven LAN scanning** via **python-nmap** with ADB-oriented summaries, **new ADB-focused features** (port forwarding, WiFi utilities, root heuristics, app lifecycle, permissions, split APKs, logcat, etc.), expands the **menu to five pages (62 numbered actions + update)**, bumps the project to **`v2.0`**, updates **dependencies**, and **rewrites the README** with a table of contents and refreshed screenshots. --- ## Commits (oldest → newest) | Commit | Description | |--------|-------------| | `ba43278` | **feat:** Refactor code into modules for readability and maintainability. | | `457c97d` | Improve console prompts, task status, file management; readability refactors. | | `d703aa8` | ADB/tool handling: resolve paths for ADB, Metasploit, scrcpy, Nmap; startup checks. | | `20b1ac7` | New modules: port forwarding, root checks, WiFi utilities; menu updates. | | `60d6a92` | Menu structure and paging; clearer prompts; comment cleanup. | | `65bc2c1` | ADB port scanning/sorting; Nmap-based network scan; host summaries and hints. | | `ab32c6d` | README: structure, TOC, features list, screenshots. | --- ## Architecture & code organization - **`phonesploitpro.py`** is a thin launcher that calls **`modules.cli.run()`**. - New **`modules/`** layout: **`cli.py`** (startup, menus, dispatch), **`config.py`** (`AppConfig` with resolved tool paths), **`tools.py`** (PATH / Windows-local resolution), **`console.py`** (Rich UI helpers, ADB subprocess helpers), **`banner.py`** (**v2.0**, five-page menus), **`connection.py`** (connect/disconnect, list devices, Nmap scan), plus focused modules for device, files, media, apps, WiFi, root, security, extras, port forwarding, etc. - **`modules/release.py`** removed as part of the refactor. - **`.gitignore`**: adds **`.cursor/`**. --- ## Feature & behavior additions (high level) ### Tooling & startup - **`resolve_external_tools()`** fills **`adb_path`**, **`msfvenom_path`**, **`msfconsole_path`**, **`scrcpy_path`**, **`nmap_path`** on `AppConfig`. - **`check_packages()`** lists missing tools in a **Rich Panel** and allows optional continue (**Y/N**). - **`set_adb_executable()`** so ADB calls use the resolved binary consistently. ### Network scanning - **python-nmap** drives the system **Nmap** binary (with optional **`nmap_search_path`** matching startup resolution). - **Host discovery** on local `/24`, then **targeted scan** of **5554/5555** with TCP connect and light **`-sV`** probing; IPv4 hosts **sorted**; per-host **ADB line** and **“Android?”** hint derived from parsed results—not raw Nmap dump. - **`PortScannerError`** handled so failures return to the menu flow cleanly. ### Menu expansion - **5 pages** of numbered actions through **61**, plus **62** (update). New/expanded areas include **TCP port forward / reverse**, **WiFi** (status, dumps, toggle, ping, saved networks, etc.), **root heuristics**, **split APKs**, **developer settings**, **locale**, **screen stay-on**, **permissions**, **logcat** (snippet + live), **app lifecycle** (restart, force-stop, clear data), **network snapshot**, and more—alongside existing connect, shell, media, and Metasploit flows. Full list lives in **`modules/banner.py`**. ### User experience (non-library) - **`Downloaded-Files`** created at startup; multi-device sessions can pick a default serial when several devices are connected. --- ## Dependencies & how they improve UX ### **`rich` (`rich>=14.0.0`)** - **`Console` + `Theme`** — Semantic styles (`info`, `success`, `warning`, `error`, `prompt`, etc.) so messages are **consistent and scannable**. - **`console.status(..., spinner="dots")` (`task_status`)** — Long operations (ADB restart/connect, device fetch, network discovery, port probe, root checks) show a **spinner line that updates in place** instead of a silent hang. - **`Table`** — Structured output for **connected devices**, **network scan results** (IP, ADB ports, Android hint), **multi-device picker**, **root/build heuristics**, and similar flows in WiFi, apps, files, and extras—replacing hard-to-read raw command output. - **`Panel`** — Bordered blocks for **missing dependencies** at startup and the **root assessment** verdict after heuristics. - **Styled `console.input`** — Clear prompts for paths, IPs, and **Y/N** confirmations. Overall, Rich turns CLI output into **tables, panels, and progress feedback** appropriate for a menu-driven tool. ### **`python-nmap` (`python-nmap==0.7.1`)** - Binds the **system `nmap` executable** (still required; PyPI package does not replace installing Nmap). Uses the **same resolved path** as `config.nmap_path` when set. - **Orchestrates** discovery + ADB-port scans from Python, **parses** results, and feeds them into **Rich tables** with summaries and hints—better UX than pasting full Nmap text. --- **Full Changelog**: https://github.com/AzeemIdrisi/PhoneSploit-Pro/compare/v1.61...v2.0