v2.0

nextjs/saas-starterv2.0Apr 5, 2026by AzeemIdrisi

AI Summary

Major version refactor converting the monolithic entry point into a modular package with Rich-based console UX and expanded ADB utilities.

Key Highlights

  • Modular package architecture
  • Rich-based console UI (tables, spinners, panels)
  • Expanded ADB utilities (port forwarding, WiFi, root)
  • Nmap-driven LAN scanning
  • 5-page menu structure

Breaking Changes

  • Monolithic entry point refactored to `modules.cli.run()`
  • Removed `modules/release.py`

New Features

  • Rich UI components
  • ADB port forwarding
  • WiFi utilities
  • Root heuristics
  • Nmap integration
  • Modular code organization

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