Metadata-Version: 2.4
Name: lanfear-zenith
Version: 0.4.0
Summary: Zenith Unified — AI-powered USB/ADB tool for Android phone repair, data recovery, diagnostics, and flashing.
Author-email: Lanfear Diagnostics <lanfear@diagnostics.dev>
License: MIT
Project-URL: Homepage, https://github.com/lanfear/zenith-unified
Project-URL: Repository, https://github.com/lanfear/zenith-unified.git
Project-URL: Issues, https://github.com/lanfear/zenith-unified/issues
Project-URL: Documentation, https://github.com/lanfear/zenith-unified#readme
Keywords: android,adb,data-recovery,phone-repair,usb,fastboot,edl,brom,flash,backup,diagnostics,forensics,frp-bypass,qualcomm,mediatek,unisoc,samsung,sony,firehose,sahara
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Utilities
Classifier: Topic :: System :: Recovery Tools
Classifier: Topic :: System :: Hardware
Classifier: Topic :: System :: Archiving :: Backup
Classifier: Environment :: Console
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications :: Qt
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: adbutils>=2.12
Requires-Dist: psutil>=5.9
Requires-Dist: loguru>=0.7
Requires-Dist: PySide6>=6.6
Requires-Dist: qtawesome>=1.3
Requires-Dist: fpdf2>=2.7
Requires-Dist: cryptography>=42
Requires-Dist: zeroconf>=0.131
Requires-Dist: packaging>=24
Requires-Dist: pyyaml>=6.0
Requires-Dist: pyserial>=3.5
Requires-Dist: pyusb>=1.2
Requires-Dist: pydantic>=2.0
Requires-Dist: pydantic-settings>=2.0
Requires-Dist: click>=8.0
Requires-Dist: rich>=13.0
Requires-Dist: fastapi>=0.100
Requires-Dist: uvicorn>=0.22
Requires-Dist: websockets>=11.0
Requires-Dist: requests>=2.31
Requires-Dist: httpx>=0.25
Provides-Extra: ai
Requires-Dist: chromadb==0.4.22; extra == "ai"
Requires-Dist: sentence-transformers==2.2.2; extra == "ai"
Requires-Dist: mistralai==0.4.0; extra == "ai"
Provides-Extra: gui
Requires-Dist: PySide6>=6.6; extra == "gui"
Requires-Dist: qtawesome>=1.3; extra == "gui"
Provides-Extra: server
Requires-Dist: fastapi>=0.100; extra == "server"
Requires-Dist: uvicorn>=0.22; extra == "server"
Requires-Dist: websockets>=11.0; extra == "server"
Provides-Extra: dev
Requires-Dist: pytest>=8.3; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
Requires-Dist: pytest-mock>=3.11; extra == "dev"
Requires-Dist: ruff>=0.6; extra == "dev"
Requires-Dist: mypy>=1.12; extra == "dev"
Requires-Dist: pyinstaller>=6.10; extra == "dev"

# Zenith Unified

**AI-powered USB/ADB tool for Android phone repair, data recovery, diagnostics, and flashing.**

```bash
pip install -e .
zenith discover          # Alla anslutna enheter
zenith diagnose bootloop # Bayesian diagnostik
zenith triage --protocol edl  # Interaktivt felsökningsträd
zenith frp-bypass        # FRP-bypass (EDL/BROM)
zenith gui               # Desktop GUI (PySide6)
```

## Arkitektur

```
zenith/
├── core/          Device ABC, event bus, policy engine, audit log, consent gate, backup manager, discovery
├── adapters/      13 adapters + AdapterRegistry (auto-registration, dispatch)
├── knowledge/     DEEP_ATLAS.md parser, SoC-profiler, 14 YAML playbooks, device profiles, secret codes
├── engines/       Bayesian diagnostics, triage tree (17 nodes), repair engine (10 actions), playbook executor (adapter-aware), flash engine (EDL/BROM pipelines)
├── ai/            Provider abstraction (Ollama / LM Studio / Mistral), intent parser, RAG (ChromaDB), MCP server
├── tools/         Sahara ping, fastboot OEM fuzzer, token hunter, panic injector, VCC matrix, arsenal shell
├── cli/           14 Click commands: discover, ai, diagnose, triage, playbooks, repair, flash, arsenal, audit, server, mcp, gui, version, profiles
├── gui/           PySide6 desktop (Dashboard, Diagnostics, Repair, Arsenal) — Catppuccin Mocha dark theme
└── server/        FastAPI, MCP tool-calling protocol
```

## Installation

```bash
git clone https://github.com/Fahragrim/zenith-unified.git
cd zenith-unified
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -e ".[dev]"
```

### Beroenden

- **Core**: `pydantic`, `click`, `loguru`, `rich`, `pyyaml`, `pyusb`, `pyserial`
- **GUI**: `PySide6`, `qtawesome`
- **AI** (valfritt): `chromadb`, `sentence-transformers`, `ollama`
- **Server**: `fastapi`, `uvicorn`, `websockets`

## Kommandon

| Kommando | Funktion |
|---|---|
| `zenith discover` | Upptäck ADB/Fastboot/USB/serial-enheter |
| `zenith ai "bootloop"` | AI-diagnostik (intent → Bayesian → playbook) |
| `zenith diagnose bootloop` | Bayesian felfinnare |
| `zenith triage --protocol edl` | Interaktivt felsökningsträd |
| `zenith playbooks` | Lista tillgängliga spelböcker |
| `zenith repair frp-bypass` | Kör reparationsspelbok |
| `zenith arsenal` | Bläddra DEEP_ATLAS-kunskapsbas |
| `zenith tool sahara-ping` | Sök Qualcomm EDL (COM-port) |
| `zenith tool token-hunt` | Scanna logcat för JWT/tokens |
| `zenith audit show` | Visa hash-kedjad revisionslogg |
| `zenith server` | Starta FastAPI |
| `zenith mcp` | MCP-server för AI-agenter |
| `zenith gui` | Desktop GUI (PySide6) |

## GUI (PySide6)

### Dashboard
Auto-refresh (5s). Visar ADB/Fastboot/USB-enheter med matchade profiler.

### Diagnostics
Välj symptom → Bayesian diagnos med confidens, orsaker, tester, rekommenderade spelböcker. Triage auto-detect från protocol.

### Repair
Spelboks-väljare med steg-preview. Thread-exekvering (GUI fryser inte). Resultat per steg.

### Arsenal
Trädvy: SoCs → Protocols → Playbooks → Tools → Secret Codes. Sök i hela DEEP_ATLAS. Klicka för detaljer.

## Adapter-översikt

| Adapter | DeviceType | Protokoll |
|---|---|---|
| `ADBAdapter` | ADB, ANDROID | adbutils + subprocess fallback, wireless |
| `FastbootAdapter` | FASTBOOT | OEM fuzzer (15 kommandon), getvar, flash |
| `QualcommEDLAdapter` | QUALCOMM_EDL | Sahara+Firehose (bkerler/edl), safe_firehose_flash |
| `MediaTekBROMAdapter` | MTK_BROM | Payload bypass (mtkclient), dump/flash, multi-erase |
| `UnisocSPRDAdapter` | UNISOC_SPD | Native Python HDLC + Socrates via pyusb, .pac flashing |
| `SamsungOdinAdapter` | SAMSUNG_ODIN | Heimdall wrapper |
| `SonyS1Adapter` | QUALCOMM_EDL | Newflasher wrapper |
| `DiagATAdapter` | DIAG | AT-commands, panic inject, COM port scan |
| `UARTAdapter` | UART | Serial port scanner |
| `AppleDFUAdapter` | APPLE_DFU | libimobiledevice wrapper |
| `RockchipAdapter` | ROCKCHIP_MASKROM | rkdeveloptool wrapper |
| `AllwinnerFELAdapter` | ALLWINNER_FEL | sunxi-fel wrapper |

## Spelböcker (13 st)

Filnamn | Symptom | SoC | Risk
---|---|---|---
`hard-brick---qualcomm.yaml` | hard-brick | qualcomm | high
`hard-brick---mediatek.yaml` | hard-brick | mediatek | high
`soft-brick---bootloop.yaml` | bootloop | any | medium
`frp-bypass.yaml` | frp-lock | any | high
`bootloader-unlock.yaml` | bootloader-locked | any | medium
`apple-dfu-triage.yaml` | dfu-mode | apple | high
`samsung-odin-firmware-rescue.yaml` | firmware-corruption | exynos | high
`mtk-brom-bypass.yaml` | brom-access | mediatek | high
`sony-xz2-frp-adb.yaml` | frp-lock | sony | medium
`sony-xz2-frp-edl.yaml` | frp-lock | sony | high
`sony-xz2-frp-fastboot.yaml` | frp-lock | sony | medium
`sony-xz2-frp-newflasher.yaml` | frp-lock | sony | medium
`nokia-c32-frp-bypass.yaml` | frp-lock | unisoc | high

## PyInstaller (Windows .exe)

```bash
pip install .[dev,gui]
python scripts/build_exe.py          # CLI .exe (dist/zenith.exe)
python scripts/build_exe.py --gui    # GUI .exe (dist/zenith-gui.exe)
```

## Docker

```bash
docker compose -f docker/docker-compose.yml run --rm zenith --help
docker compose -f docker/docker-compose.yml run --rm zenith discover
docker compose -f docker/docker-compose.yml --profile gui up zenith-gui
```

Or build & publish to GHCR:
```bash
docker build -f docker/Dockerfile -t ghcr.io/lanfear/zenith-unified:latest .
docker run --rm -it --device /dev/bus/usb ghcr.io/lanfear/zenith-unified discover
```

## Test

```bash
pytest tests/unit/       # 476 unit tests
ruff check src/          # Linting
mypy src/                # Type check
```

## Licens

MIT
