Skip to main content
Glama

DeepADB

Build npm License Official MCP Registry

MCP-Server (Model Context Protocol) für KI-Agenten, die Android-Geräte über ADB inspizieren, steuern, testen und diagnostizieren müssen – oder direkt auf dem Gerät über Termux.

204 Tools, 5 Ressourcen und 4 Prompts in 45 Modulen – von UI-Automatisierung und Anwendungsverwaltung bis hin zu Protokollen, Netzwerkerfassung, Basisband, Firmware, Sicherheit und Hardware-Diagnose.

Get started

DeepADB läuft als lokaler MCP-Server. Es verwendet standardmäßig ADB und wechselt automatisch zur direkten Ausführung, wenn es Termux auf einem Android-Gerät erkennt.

git clone https://github.com/fullread/DeepADB.git
cd DeepADB
npm ci
npm run build
npm start

Fügen Sie build/index.js zu Ihrer MCP-Client-Konfiguration hinzu und beginnen Sie dann mit diesen Workflows:

Ziel

Beginnen Sie mit

Toolchain und verbundenes Gerät bestätigen

adb_health_check, dann adb_devices

Aktuelle Android-Benutzeroberfläche untersuchen

adb_screen_state, dann adb_ui_dump

Gerät oder App diagnostizieren

adb_device_info, adb_logcat und adb_dumpsys

Für eine geführte lokale Verbindung siehe Claude Code Configuration. Lesen Sie SECURITY.md, bevor Sie HTTP-, WebSocket- oder GraphQL-Transports über Loopback hinaus freigeben.

Related MCP server: android-mcp-server

Architecture

┌──────────────────────────────────────────────────┐
│                   MCP Client                     │
│             (Claude Code / claude.ai)            │
└──────────────────────┬───────────────────────────┘
                       │ stdio (JSON-RPC) or HTTP/SSE or WebSocket
┌──────────────────────▼───────────────────────────┐
│               DeepADB Server                     │
│                                                  │
│  ┌─────────────────────────────────────────────┐ │
│  │           Tool Modules (45)                 │ │
│  │  device │ shell │ packages │ files │ logs   │ │
│  │  diagnostics │ ui │ build │ health          │ │
│  │  wireless │ control │ logcat-watch          │ │
│  │  forwarding │ screen-record │ emulator      │ │
│  │  testing │ multi-device │ snapshot          │ │
│  │  network-capture │ ci │ plugins │ baseband  │ │
│  │  accessibility │ regression                 │ │
│  │  device-farm │ registry │ at-commands       │ │
│  │  screenshot-diff │ workflow │ sensors       │ │
│  │  split-apk │ mirroring │ test-gen           │ │
│  │  ota-monitor │ ril-intercept                │ │
│  │  device-profiles │ firmware-analysis        │ │
│  │  workflow-market │ selinux-audit            │ │
│  │  thermal-power │ network-discovery          │ │
│  │  input-gestures │ wireless-firmware         │ │
│  ├─────────────────────────────────────────────┤ │
│  │  Resources (5) │ Prompts (4)                │ │
│  └───────────────────┬─────────────────────────┘ │
│                      │                           │
│  ┌───────────────────▼─────────────────────────┐ │
│  │          ToolContext (unified DI)           │ │
│  │  server │ bridge │ deviceManager            │ │
│  │  logger │ security │ config                 │ │
│  └───────────────────┬─────────────────────────┘ │
│                      │                           │
│  ┌───────────────────▼─────────────────────────┐ │
│  │           Middleware Layer                  │ │
│  │  OutputProcessor │ SecurityMiddleware       │ │
│  │  InputSanitizer │ Logger (stderr-safe)      │ │
│  └───────────────────┬─────────────────────────┘ │
│                      │                           │
│  ┌───────────────────▼─────────────────────────┐ │
│  │         Bridge Layer (auto-detect)          │ │
│  │                                             │ │
│  │  ┌─────────────┐    ┌────────────────────┐  │ │
│  │  │  ADB Bridge  │ OR │  Local Bridge      │ │ │
│  │  │  (PC mode)   │    │  (on-device mode)  │ │ │
│  │  │  via adb.exe │    │  via sh/su direct  │ │ │
│  │  └──────┬───────┘    └────────┬───────────┘ │ │
│  │         │                     │             │ │
│  │  Retry │ Timeout │ Cache │ Serial routing   │ │
│  └─────────┼─────────────────────┼─────────────┘ │
└────────────┼─────────────────────┼───────────────┘
             │                     │
     ┌───────▼───────┐    ┌───────▼───────┐
     │  ADB Binary   │    │   sh / su     │
     │  (USB/WiFi)   │    │   (local)     │
     └───────┬───────┘    └───────┬───────┘
             │                    │
       ┌─────▼────────────────────▼─────┐
       │          Android Device        │
       └────────────────────────────────┘

Dual-Mode Architecture

DeepADB arbeitet in zwei Modi, die beim Start automatisch erkannt werden:

ADB Mode (default) — PC-side bridge

AI Agent (PC) ←→ MCP ←→ DeepADB (PC) ←→ ADB (USB) ←→ Android Device

Standardmodus: DeepADB läuft auf einem PC/Mac/Linux-Host und kommuniziert über USB mit dem Gerät über ADB. Alle 204 Tools arbeiten über die ADB-Brücke mit automatischem Wiederholungsversuch bei vorübergehenden Fehlern.

On-Device Mode — direct local execution

AI Agent (Termux) ←→ MCP (stdio/HTTP) ←→ DeepADB (Termux) ←→ sh/su (local)

Wenn DeepADB direkt auf dem Android-Gerät läuft (z. B. in Termux), erkennt es die Umgebung automatisch und wechselt zu LocalBridge. Befehle werden direkt über sh/su ausgeführt – kein ADB-Server, kein USB, kein Serialisierungs-Overhead. Alle 204 Tools funktionieren identisch, mit deutlich geringerer Latenz.

Auf Hardware validiert (Pixel 6a, Android 16, Termux + Magisk + QEMU 10.2.1) über eine Vier-Zellen-Testmatrix – Host (ADB) und On-Device (LocalBridge), jeweils mit und ohne Geräte-PIN – mit 0 Fehlern in jeder Zelle. Die vollständige Suite umfasst 577 Tests in der Host/ADB-Konfiguration und 613 auf dem Gerät; der Unterschied sind die QEMU-Virtualisierungs- und Alpine-VM-Boot-Suiten, die nur auf dem Gerät ausgeführt werden:

  • ADB-Modus, ohne PIN: 556 bestanden / 0 fehlgeschlagen / 21 übersprungen (577 gesamt). Übersprungen: 5 QEMU (nur auf dem Gerät), 7 gracefulKill-Unit-Tests (erfordern POSIX-Signale, auf dem Windows-Host übersprungen), 3 tcpdump-Sanitisierung (tcpdump ist nur mit Root verfügbar und über eine Nicht-Root-ADB-Shell nicht erreichbar), 2 Host-Shell-Roundtrips (erfordern eine POSIX-/bin/sh), 4 Screen-State (erfordern DA_TEST_PIN).

  • ADB-Modus, mit PIN: 560 bestanden / 0 fehlgeschlagen / 17 übersprungen (577 gesamt). Die 4 Screen-State-Tests entsperren und laufen.

  • On-Device-Modus, ohne PIN: 606 bestanden / 0 fehlgeschlagen / 7 übersprungen (613 gesamt). Alle QEMU-Tests laufen, einschließlich Alpine-Linux-VM-Boot mit KVM-Beschleunigung, big.LITTLE-CPU-Topologie-Erkennung, Fehlerbehandlung bei Gast-ADB-Konnektivität und sauberem VM-Herunterfahren; die tcpdump- und gracefulKill-Suiten laufen ebenfalls hier (Root + POSIX). Übersprungen: 3 QEMU-Einrichtungsschritte, die nichts tun, wenn Alpine-Kernel/initrd/Disk bereits zwischengespeichert sind, 4 Screen-State (erfordern PIN).

  • On-Device-Modus, mit PIN: 610 bestanden / 0 fehlgeschlagen / 3 übersprungen (613 gesamt). Jeder durch die Umgebung aktivierte Test läuft; die 3 Überspringungen sind die zwischengespeicherten VM-Einrichtungsschritte.

Rechteerweiterung: Im ADB-Modus laufen alle Shell-Befehle als uid=2000 (der shell-Benutzer), der Systemberechtigungen hat. In Termux laufen Befehle als normaler App-Benutzer. LocalBridge erhöht privilegierte Befehle automatisch über su, wenn Root (Magisk) verfügbar ist:

  • Befehls-Allowlist: 16 Systembefehle (settings, dumpsys, am, input, screencap, screenrecord, uiautomator, app_process, getenforce, setenforce, cmd, pm, wm, svc, ip, ifconfig) werden über su -c geleitet, um das Verhalten des ADB-Modus zu erreichen.

  • Pfadbasierte Erweiterung: Befehle, die auf /sdcard, /storage oder /system/-Pfade verweisen, werden erhöht, um die Android-Scoped-Storage-Einschränkungen zu umgehen.

  • Root-Erkennung: Wird nach einer einzelnen su -c id-Sonde bei der ersten Verwendung zwischengespeichert. Sanfte Degradierung, wenn Root nicht verfügbar ist.

  • Die Erweiterungs-Allowlist ist eingefroren (ReadonlySet + Object.freeze) – nicht über Umgebungsvariablen oder die Laufzeit-API konfigurierbar.

Automatische Erkennung: Prüft auf /system/build.prop (auf allen Android-Geräten vorhanden, nie auf Hosts). Überschreiben mit DA_LOCAL=true oder DA_LOCAL=false.

On-Device-Einrichtung (Termux):

pkg install nodejs-lts git
git clone <deepadb-repo> && cd deepadb
npm install && npm run build
npm start                              # stdio — for local AI agents (Claude Code, OpenCode)
DA_HTTP_PORT=3000 npm start            # HTTP/SSE — for remote AI access over WiFi

Claude Code Configuration

{
  "mcpServers": {
    "deepadb": {
      "command": "node",
      "args": ["/path/to/DeepADB/build/index.js"]
    }
  }
}

Available Tools (204)

Beginnen Sie mit dem Funktionsbereich, der zu Ihrer Aufgabe passt; die vollständige Referenz finden Sie weiter unten.

Complete tool reference

Health (1 tool)

  • adb_health_check – Umfassende Toolchain-Validierung: ADB-Binärdatei, Server, Geräteverbindung, Autorisierung, Root-Zugriff und Schreibbarkeit des Speichers

Device (3 tools)

  • adb_devices – Alle verbundenen Geräte mit Status, Modell und Produktinformationen auflisten

  • adb_device_info – Detaillierte Geräteeigenschaften (Modell, OS, SDK, Build, Sicherheitspatch, ABI)

  • adb_getprop – Eine bestimmte Systemeigenschaft lesen oder alle Eigenschaften ausgeben

Shell (2 tools)

  • adb_shell – Beliebige Shell-Befehle mit konfigurierbarem Timeout ausführen (sicherheitsgeprüft)

  • adb_root_shell – Befehle als Root über su ausführen (erfordert gerootetes Gerät, sicherheitsgeprüft)

Packages (12 tools)

  • adb_install – APK mit Ersetzen/Downgrade-Optionen installieren

  • adb_uninstall – Paket mit optionaler Datenaufbewahrung entfernen

  • adb_list_packages – Pakete nach Name oder Typ gefiltert auflisten (alle/System/Drittanbieter)

  • adb_package_info – Detaillierte Paketinformationen (Version, Berechtigungen, Pfade)

  • adb_clear_data – Alle App-Daten und den Cache löschen

  • adb_grant_permission – Eine Laufzeitberechtigung für ein Paket erteilen

  • adb_revoke_permission – Eine Laufzeitberechtigung von einem Paket entziehen (Berechtigungsstatus für Tests von Verweigerungsabläufen zurücksetzen)

  • adb_list_permissions – Alle deklarierten und erteilten Berechtigungen für ein Paket auflisten, filterbar nach erteilt/verweigert

  • adb_force_stop – Eine App sofort erzwingen stoppen

  • adb_start_app – Eine App anhand des Paketnamens starten (löst Launcher-Aktivität auf)

  • adb_restart_app – Erzwingen stoppen und dann in einem Aufruf neu starten (konfigurierbare Verzögerung)

  • adb_resolve_intents – Registrierte Aktivitäten, Dienste und Empfänger mit Intent-Filtern entdecken

Files (18 tools)

  • adb_push – Lokale Datei auf das Gerät übertragen (hart blockierte Kernel-Pfade, Dateisystemtyp-Bewusstsein, Speicherberichterstattung)

  • adb_pull – Datei vom Gerät in das lokale Dateisystem übertragen

  • adb_ls – Inhalte des Geräteverzeichnisses auflisten (einfach oder detailliert)

  • adb_cat – Textdatei vom Gerät lesen, optional mit Zeilenlimit

  • adb_file_write – Textdateien per Heredoc erstellen oder überschreiben (Pufferlimit-Warnung, dateisystembewusst, Nachprüfung)

  • adb_find – Dateien nach Name/Muster suchen mit Tiefenkontrolle und Ergebnisbegrenzung

  • adb_file_stat – Dateimetadaten: Größe, Berechtigungen, Zeitstempel, Eigentümer, SELinux-Kontext

  • adb_file_checksum – SHA-256/SHA-1/MD5-Hash mit größenbasierter Timeout-Schätzung

  • adb_mkdir – Verzeichnisse mit Eltern-Erstellung (-p) erstellen, hart blockierte Kernel-Pfade

  • adb_rm – Dateien/Verzeichnisse löschen mit tiefenbasierter rekursiver Schutz und Symlink-Auflösung

  • adb_file_move – Verschieben/Umbenennen mit Quell-Tiefenschutz und Nachprüfung

  • adb_file_copy – Kopieren mit Vorab-Größen-+Platz-Prüfung und Nachprüfung der Größenübereinstimmung

  • adb_file_chmod – Berechtigungen ändern (Zod-validierter Oktalmodus, tiefenbasierter rekursiver Schutz)

  • adb_file_touch – Leere Dateien erstellen oder Zeitstempel aktualisieren (explizite Zeitstempelunterstützung)

  • adb_file_fsinfo – Dateisystembericht: Typ, Mount, Kapazität, Fähigkeiten, SELinux, Einschränkungen

  • adb_file_chown – Eigentümer ändern (Root erforderlich, tiefenbasierter rekursiver Schutz)

  • adb_grep – Dateiinhalte durchsuchen mit Fixed-String-Standard, rekursiver Tiefenkontrolle, Ergebnisbegrenzung

  • adb_file_replace – Text in Dateien suchen/ersetzen (sed-basiert, korrektes Escaping, Sicherungsoption)

Logs — Snapshots (3 tools)

  • adb_logcat – Gefilterter Logcat-Snapshot mit Tag, Priorität, grep und Pufferauswahl

  • adb_logcat_clear – Alle Logcat-Puffer löschen

  • adb_logcat_crash – Crash-Puffer-Protokoll-Snapshot

Logs — Persistent Watchers (4 tools)

  • adb_logcat_start – Einen Hintergrund-Logcat-Watcher mit Ringpuffer-Akkumulation starten

  • adb_logcat_poll – Neue Zeilen seit der letzten Abfrage von einem laufenden Watcher abrufen

  • adb_logcat_stop – Eine Watcher-Sitzung (oder alle Sitzungen) beenden

  • adb_logcat_sessions – Alle aktiven Watcher-Sitzungen mit Statistiken auflisten

Diagnostics (9 tools)

  • adb_dumpsys – dumpsys für einen beliebigen Dienst ausführen (oder alle Dienste auflisten)

  • adb_telephony – Zellinformationen, Signalstärke und Netzwerkregistrierung (parallele Abfrage)

  • adb_battery – Akkustatus, Ladestand, Temperatur und Ladeinformationen

  • adb_network – WLAN, Mobilfunk und IP-Konnektivität (parallele Abfrage)

  • adb_top – CPU- und Speichernutzungs-Snapshot

  • adb_perf_snapshot – Parallele Speicher-, Frame-Statistiken und CPU-Profilerstellung für ein Paket

  • adb_bugreport – Vollständigen Bugreport-ZIP erfassen (Gerätestatus, Protokolle, Systeminformationen)

  • adb_crash_logs – ANR-Traces und Tombstone-Crash-Dumps aus /data/anr/ und /data/tombstones/

  • adb_heap_dump – Heap-Dump (.hprof) von einem laufenden Prozess für die Speicheranalyse erfassen

UI (10 tools)

  • adb_screencap — Erstellt einen Screenshot mit Dateinamen-Bereinigung und speichert ihn lokal

  • adb_screencap_annotated — Screenshot mit Boundingboxen der UI-Elemente und nummerierten Beschriftungen, die auf das PNG komponiert werden. Gibt den Pfad des annotierten Bildes sowie eine Textlegende zurück. Ideal für LLM-Workflows, die Elemente per Nummer referenzieren

  • adb_current_activity — Ruft die fokussierte Activity und den obersten Fensterstapel ab

  • adb_input — Sendet Tipp-, Wisch-, Text- oder Keyevent-Eingaben

  • adb_start_activity — Startet Activities per Intent oder Komponentennamen

  • adb_ui_dump — Gibt die vollständige UI-Hierarchie aus. Unterstützt drei Ausgabeformate: text (Standard, menschenlesbar), tsv (kompakt, tabulatorgetrennt, für token-effiziente Automationsschleifen), xml (rohes uiautomator-XML)

  • adb_ui_find — Durchsucht die UI-Hierarchie nach Text, resource-id oder content-description (liefert Tippkoordinaten)

  • adb_screen_state — Kombinierter Bildschirmzustand in einem Aufruf: Vordergrund-Activity, Bildschirmabmessungen und -dichte, Ausrichtung, Akkustand und eine TSV-Liste interaktiver Elemente. Ersetzt 3–4 separate Tool-Aufrufe

  • adb_screenrecord_start — Startet die Aufnahme des Gerätebildschirms (1–180 s, wird auf dem Gerät gespeichert)

  • adb_screenrecord_stop — Stoppt die Aufnahme und überträgt die mp4-Videodatei lokal

Gerätesteuerung (9 Tools)

  • adb_airplane_mode — Schaltet den Flugmodus per Broadcast um und verifiziert ihn

  • adb_airplane_cycle — Schaltet den Flugmodus aus/ein, um die erneute Mobilfunkregistrierung zu erzwingen

  • adb_wifi — Aktiviert oder deaktiviert WiFi

  • adb_mobile_data — Aktiviert oder deaktiviert mobile Daten

  • adb_location — Setzt den Standortmodus (off/sensors/battery/high)

  • adb_screen — Weckt den Bildschirm auf, versetzt ihn in den Ruhezustand, schaltet ihn um, sperrt oder entsperrt ihn. Beim Sperren wird der Zustand der Bildschirmsperre über dumpsys window geprüft. Beim Entsperren wird wm dismiss-keyguard verwendet (funktioniert bei Wisch-Sperrbildschirmen); bei Angabe von pin wird die vollständige PIN-Eingabesequenz ausgeführt: Bildschirm aufwecken, Wischen nach oben zum Einblenden der Tastatur, PIN eingeben, bestätigen und verifizieren, dass das Sleep-Token der Bildschirmsperre freigegeben wurde

  • adb_settings_get — Liest jede beliebige Android-Einstellung aus dem system/secure/global-Namespace

  • adb_settings_put — Schreibt jede beliebige Android-Einstellung mit Rücklese-Verifikation

  • adb_reboot — Startet das Gerät neu (Normal-, Recovery- oder Bootloader-Modus)

Drahtloses Debugging (4 Tools)

  • adb_pair — Koppelt das Gerät über WiFi mit dem Kopplungscode

  • adb_connect — Verbindet mit dem Gerät über WiFi/TCP

  • adb_disconnect — Trennt drahtlose Geräte von der Verbindung

  • adb_tcpip — Wechselt das USB-Gerät in den TCP/IP-Modus (erkennt die Geräte-IP automatisch)

Port-Weiterleitung (8 Tools)

  • adb_forward — Leitet einen lokalen Port an einen Geräteport weiter (Host → Gerät)

  • adb_reverse — Leitet einen Geräteport in umgekehrter Richtung an den Host weiter (Gerät → Host)

  • adb_forward_list — Listet alle aktiven Vorwärts- und Rückwärts-Portzuordnungen auf

  • adb_forward_remove — Entfernt eine Portweiterleitung oder alle Weiterleitungen

  • adb_reverse_remove — Entfernt eine umgekehrte Weiterleitung oder alle umgekehrten Weiterleitungen

  • adb_tunnel_open — Öffnet einen verwalteten Tunnel mit opaker ID. Wenn keine Angabe erfolgt, wird automatisch ein freier Host-Port für die Vorwärtsrichtung gewählt; registriert eine Aufräumfunktion, damit der Tunnel beim Beenden des Servers entfernt wird

  • adb_tunnel_list — Listet aktive verwaltete Tunnel auf (solche, die über adb_tunnel_open geöffnet wurden). Optionaler Gerätefilter; zeigt ID, Richtung, Endpunkte und Alter an

  • adb_tunnel_close — Schließt einen verwalteten Tunnel anhand der ID oder schließt mit id="all" alle auf einmal

Emulatorverwaltung (3 Tools)

  • adb_avd_list — Listet verfügbare AVDs auf (PC-Modus) oder erkennt KVM-/QEMU-Virtualisierungsfunktionen (Gerätemodus)

  • adb_emulator_start — Startet ein AVD mit headless, Kaltstart- und GPU-Optionen (PC-Modus) oder meldet die QEMU-Alternative (Gerätemodus)

  • adb_emulator_stop — Fährt einen laufenden Emulator sauber herunter

QEMU/KVM-Virtualisierung (8 Tools)

  • adb_qemu_setup — Prüft und installiert QEMU für die On-Device-Virtualisierung. Verifiziert KVM, meldet Host-CPU/RAM und installiert über Termux pkg

  • adb_qemu_images — Verwaltet VM-Datenträger-Images: Auflisten, Erstellen (qcow2/raw), Löschen. Verhindert durch Verzeichnisbegrenzung Pfad-Traversal

  • adb_qemu_start — Bootet eine KVM-beschleunigte VM mit dynamischer Ressourcenzuweisung. Erkennt automatisch die optimale CPU-Anzahl (Gesamtzahl minus 1, eine für den Host) und den Speicher (65 % des physischen RAMs). Unterstützt kernel/initrd/append für den Android-Boot sowie ADB-Portweiterleitung

  • adb_qemu_stop — Stoppt eine laufende VM (sauberes SIGTERM oder erzwungenes SIGKILL). Trennt automatisch die Gast-ADB-Verbindung, bevor sie beendet wird. Meldet bei fehlendem Namen laufende VMs

  • adb_qemu_status — Vollständiger Status: KVM/QEMU-Verfügbarkeit, Host-Ressourcenbudget, laufende VMs mit PID/Ressourcen/Uptime/Ports/ADB-Verbindungszustand sowie Image-Inventar

  • adb_qemu_connect — Verbindet mit dem Gast-ADB-Dienst einer laufenden VM. Auf localhost beschränkt – der Port wird aus dem Zustand der laufenden VM abgeleitet, nie aus Benutzereingaben. Ermöglicht Multi-Geräte-Tools auf Gast-VMs

  • adb_qemu_disconnect — Trennt die Verbindung zum ADB-Dienst einer Gast-VM. Löscht den Verbindungsstatus und entfernt den Gast aus der Geräteliste

  • adb_qemu_guest_shell — Führt per ADB Shell-Befehle auf einer Gast-VM aus. Unterliegt der Sicherheits-Middleware. Die Gast-Seriennummer wird intern abgeleitet – keine benutzereigene Host/IP erreicht das ADB-Binary

Testsitzungen (3 Tools)

  • adb_test_session_start — Startet eine benannte Testsitzung mit strukturiertem Ausgabeverzeichnis

  • adb_input

  • adb_test_step — Erfasst in der Sitzung einen nummerierten Schritt mit Screenshot und Logcat

  • adb_test_session_end — Beendet die Sitzung, schreibt das Summary-Manifest und gibt den Verzeichnispfad zurück

Multi-Geräte-Orchestrierung (4 Tools)

  • adb_multi_shell — Führt einen Befehl auf allen/ausgewählten Geräten parallel aus (sicherheitsgeprüft)

  • adb_multi_install — Installiert eine APK gleichzeitig über mehrere Geräte

  • adb_multi_compare — Führt einen Befehl auf allen Geräten aus und hebt Ausgabeunterschiede hervor

  • adb_multi_test — Vergleichender Test-Workflow: führt vorkonfigurierte Diagnoseprofile (firmware/security/network/identity/full) oder benutzerdefinierte Befehlslisten auf allen Geräten einschließlich QEMU-Gästen aus, gleicht pro Prüfung ab und meldet Übereinstimmungen sowie Unterschiede

Eingabegesten & UI-Automatisierung (15 Tools)

  • adb_input_drag — Drag from Punkt A to Punkt B (verwendet draganddrop mit Wisch-Fallback bei älterem Android)

  • adb_input_fling — Hochgeschwindigkeits-Fling-Geste für Momentum-Scrolling durch Listen und umgeblätterte Ansichten (konfigurierbare Dauer 20–200 ms)

  • adb_input_long_press — Langes Drücken an Koordinaten mit konfigurierbarer Haltezeit

  • adb_input_double_tap — Doppeltippen mit konfigurierbarem Intervall zwischen den Tipps

  • adb_input_text — Spezielle Texteingabe mit Verarbeitung von Leer- und Sonderzeichen

  • adb_open_url — Öffnet über einen VIEW-Intent eine URL auf dem Gerät

  • adb_orientation — Ermittelt oder setzt die Bildschirmorientierung (auto/portrait/landscape/reverse)

  • adb_clipboard — Liest oder schreibt die Geräte-Zwischenablage

  • adb_input_pinch — Multi-Touch-Pinch (Zoom out) oder Spread (Zoom in). Zwei Finger bewegen sich symmetrisch um einen Mittelpunkt. Die Injektion erfolgt mehrschichtig: paralleles input swipe (universell, kein Root) oder rohes sendevent-MT-Typ-B-Protokoll (echtes Multi-Touch, Root erforderlich). Touchscreen-Gerät und Fähigkeiten werden über getevent -p automatisch erkannt. Konfigurierbar sind Mittelpunkt, Radius, Dauer, Winkel und Interpolationsschritte

  • adb_tap_element — Findet Elemente nach Text/Ressourcen-ID/content-description und tippt deren Mittelpunkt an

  • adb_wait_element — Pollt die UI-Hierarchie, bis ein Element erscheint oder verschwindet (konfigurierbares Timeout/Poll-Intervall)

  • adb_wait_stable — Pollt, bis aufeinanderfolgende UI-Dumps übereinstimmen (Bildschirmstabilisierung nach Übergängen)

  • adb_scroll_until — Scrollt wiederholt, bis das Zielelement gefunden wird, wobei ein Auto-Tipp optional ist

  • adb_screenshot_compressed — Erstellt einen Screenshot mit Größen-/Qualitätsmetadaten für token-effiziente Arbeitsabläufe

  • adb_batch_actions — Führt mehrere Eingabeaktionen (tap/swipe/fling/long_press/double_tap/keyevent/text/drag/pinch/back/home/sleep) in einem einzigen Tool-Aufruf mit Sicherheitsprüfung aus

Geräteinformationen (3 Tools)

  • adb_screen_size — Bildschirmauflösung, Anzeigedichte (DPI), Seitenverhältnis und DP-Breite in einem Aufruf

  • adb_device_state — Kombinierter Schnappschuss: Akkulastand/-status/-temperatur, Netzwerktyp, WiFi-Zustand, Bildschirm an/aus, Ausrichtung, im Vordergrund befindliche Activity

  • adb_notifications — Parst aktive Benachrichtigungen mit Paket, Titel, Text, Wichtigkeit, Kanal, Flags und Timestamp (filterbar nach Paket)

Snapshot/Wiederherstellung (3 Tools)

  • adb_snapshot_capture — Speichert den umfassenden Gerätezustand (Pakete, Einstellungen, Eigenschaften) als JSON

  • adb_snapshot_compare — Vergleicht den aktuellen Stand mit einem gespeicherten Snapshot (hinzugefügte/entfernte Pakete, geänderte Einstellungen)

  • adb_snapshot_restore_settings — Stellt global/secure-Einstellungen aus einem gespeicherten Snapshot wieder her

Netzwerk-Erfassung (3 Tools)

  • adb_tcpdump_start — Startet eine Hintergrund-Paketerfassung über tcpdump (erforderlich)

  • adb_tcpdump_stop — Stoppt die Erfassung und zieht die pcap-Datei für Wireshark-Analysen lokal

  • adb_network_connections — Zeigt aktive TCP/UDP-Verbindungen (ss/netstat mit Fallback auf /proc/net)

CI/CD-Integration (3 Tools)

  • adb_ci_wait_boot — Wartet mit konfigurierbarem Timeout auf den vollständigen Boot des Geräts bzw. Emulators

  • adb_ci_device_ready — Strukturierter Pass/Fail-Bereitschaftscheck (Boot, PM, Bildschirm, Netzwerk, Disk)

  • adb_ci_run_tests — Führt instrumentierte Tests über am instrument aus und parst die Ergebnisse als bestanden/nicht bestanden

Basisband/Modem (6 Tools)

  • adb_baseband_info — Modem-Firmware, RIL-Implementierung, Chipsatz, SIM-Konfiguration (Dual-SIM-Erkennung mit Zustand pro Slot), Netzregistrierung. IMEI-Abruf erfolgt ausschließlich optional (includeImei=true)

  • adb_cell_identity — Cell ID (CID), TAC/LAC, EARFCN, PCI, PLMN aus dumpsys phone zur Mobilfunknetzanalyse

  • adb_signal_detail — RSRP, RSRQ, SINR, RSSI, Timing-Advance — rohe Funkmesswerte für die Signalanalyse

  • adb_neighboring_cells — Alle sichtbaren LTE/5G/WCDMA/GSM-Zellen mit Identitäten und Signalstärken

  • adb_carrier_config — Carrier-Konfigurationsdump, Carrier-ID, bevorzugter APN

  • adb_modem_logs — RIL-Funkpuffer, Telefonie-Framework, RILJ/RILC, Kernel dmesg (Root)-Protokolle

Barrierefreiheits-Audit (3 Tools)

  • adb_a11y_audit — Automatisierte WCAG-Prüfung: fehlende Labels, zu kleine Touch-Ziele (<48 Elem), doppelte Beschreibungen, nicht fokussierbare Klick-Elemente

  • adb_a11y_touch_targets — Listet alle interaktiven Elemente mit Touch-Zielmaßen in dp auf und kennzeichnet zu kleine

  • adb_a11y_tree — Barrierefreiheits-fokussierter UI-Baum mit nur Screenreader-relevanten Elementen und Rollen, Labels und State-Informationen

Regressionserkennung (3 Tools)

  • adb_regression_baseline — Erfasst die Leistungsbasislinie (Speicher, CPU, Frame-Statistiken, Akku, Netzwerk) als JSON

  • adb_regression_check — Vergleicht die aktuelle Leistung mit einer gespeicherten Basislinie sowie konfigurierbaren Auslöseschwellen

  • adb_regression_history — Listet alle gespeicherten Basislinien mit Trend auf, optional gefiltert nach Paket

Device Farm (3 Tools)

  • adb_farm_run — Führt instrumentierte Tests auf Firebase Test Lab über mehrere Gerätemodelle und API-Ebenen aus

  • adb_farm_results — Ruft Ergebnisse eines Test-Lab-Laufs ab oder listet aktuelle Test-Matrizen auf

  • adb_farm_matrix_nis — Listet auf Firebase Test Lab verfügbare Gerätemodelle und Android-Versionen auf

Plugin-Registry (3 Tools)

  • adb_registry_search — Durchsucht die Community-Plugin-Registry und zeigt Installationsstatus und verfügbare Updates

  • adb_registry_install — Lädt ein Plugin aus der Registry herunter und installiert es namentlich

  • adb_registry_installed — Listet lokal installierte Plugins mit Version und Update-Verfügbarkeit

Plugins (2 Tools)

  • adb_plugin_list

  • adb_at_detect — Automatische Erkennung des AT-Befehls-Geräteknotens des Modems anhand der Chipsatz-Familie (Shannon, Qualcomm, MediaTek, Unisoc, generisch). Durchsucht bekannte Pfade und gibt den ersten antwortenden Knoten zurück

  • adb_at_send — Sendet einen einzelnen AT-Befehl an das Modem mit Antwort-Erfassung. Automatische Port-Erkennung oder manuelle Überschreibung möglich. Blocklist für gefährliche Befehle mit Force-Überschreibung

  • adb_at_batch — Sendet mehrere AT-Befehle nacheinander mit Ergebnissen pro Befehl. Konfigurierbare Verzögerung zwischen Befehlen

  • adb_at_probe — Führt eine standardmäßige Diagnoseprüfung durch: Modem-ID, Signalqualität, Netzregistrierung, SIM-Status, Betreiber, Funktionsmodus

  • adb_at_cross_validate — Kreuzvalidiert die Basisband-Firmware durch Vergleich der AT-Befehlsantworten (ATI, AT+CGMR, AT+CGMM) mit Systemeigenschaften. Kennzeichnet Abweichungen als mögliche Firmware-Manipulation, unvollständiges OTA oder Property-Spoofing. Shannon-spezifische AT+DEVCONINFO-Unterstützung. Erfordert Root

Screenshot-Diffing (3 Tools)

  • adb_screenshot_baseline — Erfasst und speichert eine benannte Screenshot-Baseline mit Metadaten (Abmessungen, SHA-256, Zeitstempel)

  • adb_screenshot_diff — Vergleicht den aktuellen Bildschirm mit einer gespeicherten Baseline mittels Pixel-genauer PNG-Dekodierung. Meldet Anzahl/Prozentsatz geänderter Pixel, Begrenzungsrahmen des geänderten Bereichs und unterstützt einen Toleranzschwellenwert zur Absorption dynamischer Elemente wie Uhren

  • adb_screenshot_history — Listet alle gespeicherten Screenshot-Baselines mit Metadaten auf

Workflow-Orchestrierung (3 Tools)

  • adb_workflow_run — Führt einen JSON-definierten Workflow aus: sequenzielle Geräteoperationen mit Variablenersetzung, bedingten Schritten, Schleifen und Ergebnis-Erfassung. Aktionen: shell, root_shell, install, screenshot, logcat, getprop, sleep

  • adb_workflow_validate — Validiert die Workflow-Struktur ohne Ausführung. Zeigt den Ausführungsplan

  • adb_workflow_list — Listet gespeicherte Workflow-Dateien im Workflows-Verzeichnis auf

Split-APK-Verwaltung (4 Tools)

  • adb_install_bundle — Installiert Split-APKs (App-Bundles) über install-multiple mit Ersetzungs- und Downgrade-Optionen

  • adb_list_splits — Zeigt alle APK-Split-Pfade für ein Paket mit Klassifizierung (base, config.density, config.language, usw.) und Gesamtgröße

  • adb_extract_apks — Zieht alle Splits für ein Paket in ein lokales Verzeichnis zur Analyse oder Sicherung

  • adb_apex_list — Listet installierte APEX-Module mit Versionsinformationen auf

Gerätespiegelung (3 Tools)

  • adb_mirror_start — Startet Live-Bildschirmspiegelung über scrcpy. Unterstützt Fenster- und Headless-Modi, Aufzeichnung, Bitrate/FPS/Auflösungssteuerung, Wachhalten und Bildschirm-aus

  • adb_mirror_stop — Stoppt die Spiegelung für ein Gerät oder alle Geräte

  • adb_mirror_status — Prüft die scrcpy-Verfügbarkeit und listet aktive Spiegelungssitzungen auf

Automatisierte Testgenerierung (3 Tools)

  • adb_test_gen_from_ui — Analysiert die interaktiven Elemente des aktuellen Bildschirms und generiert einen Workflow, der jedes Element antippt, Screenshots erstellt und auf Abstürze prüft

  • adb_test_gen_from_intents — Analysiert die registrierten Aktivitäten eines Pakets und generiert einen Workflow, der jede exportierte Aktivität mit Absturzerkennung startet

  • adb_test_gen_save — Speichert einen generierten Workflow-JSON im Workflows-Verzeichnis zur späteren Ausführung

OTA-Update-Überwachung (3 Tools)

  • adb_ota_fingerprint — Erfasst den System-Fingerabdruck: Build-ID, Android-Version, Sicherheitspatch, Bootloader, Basisband-Firmware, Kernel, A/B-Slot

  • adb_ota_check — Vergleicht den aktuellen Systemzustand mit einem gespeicherten Fingerabdruck, um OTA-Updates zu erkennen. Identifiziert geänderte Felder und empfiehlt eine neue Baseline-Erstellung

  • adb_ota_history — Listet alle gespeicherten Fingerabdrücke für ein Gerät mit Versionsverlauf über die Zeit auf

RIL-Nachrichten-Erfassung (3 Tools)

  • adb_ril_start — Startet die Erfassung von RIL-Nachrichten aus dem Radio-Logcat-Puffer. Kategorisiert Registrierungs-, Zellinfo-, Signal-, Netzwerk-, Sicherheits-, Handover- und NAS-Ereignisse

  • adb_ril_poll — Ruft erfasste RIL-Nachrichten mit optionaler Kategoriefilterung ab. Zeigt die Kategorieverteilung

  • adb_ril_stop — Stoppt eine RIL-Erfassungssitzung mit Kategoriezusammenfassung

Geräteprofile (3 Tools)

  • adb_profile_detect — Automatische Erkennung und Erstellung eines Geräteprofils: Hardware-ID, Chipsatz-Familie, Modem-Knoten, Root-Status, 5G-Unterstützung, Dual-SIM-Konfiguration. Abgleich mit der integrierten Bibliothek auf bekannte Besonderheiten

  • adb_profile_save — Speichert ein Geräteprofil in der Profilbibliothek

  • adb_profile_list — Listet integrierte und benutzergespeicherte Geräteprofile auf

Modem-Firmware-Analyse (3 Tools)

  • adb_firmware_probe — Umfassende Firmware-Identifizierung: parst Basisband (Shannon/Qualcomm/MediaTek/Unisoc/HiSilicon/Intel), Bootloader und RIL-Implementierung in strukturierte Komponenten. Meldet Kernel, Sicherheitspatch, A/B-Slot, Verified-Boot-Status, VBMeta, Hypervisor und OTA-Partitionsinventar

  • adb_firmware_diff — Vergleicht alle Firmware-Komponenten (Basisband, Bootloader, Kernel, Sicherheitspatch, Build-ID, Android-Version, RIL) zwischen gespeicherten Fingerabdrücken oder dem Live-Gerät. Tiefgehende geparste Diffs für Basisband und Bootloader bei erkannten Änderungen

  • adb_firmware_history — Verfolgt den Firmware-Verlauf über alle gespeicherten OTA-Fingerabdrücke mit Mehrkomponenten-Änderungserkennung (Basisband, Bootloader, Kernel, Sicherheitspatch, Build-ID, Android-Version) und geparsten Basisband-Diffs

Drahtlose Firmware (4 Tools)

  • adb_wifi_firmware — WiFi-Chipsatz- und Firmware-Identifizierung: Treiberversion, Firmware-Version, unterstützte Bänder (2,4/5/6 GHz), WiFi-Standard-Erkennung (5/6/6E/7), aktuelle Verbindungsinformationen. MAC-Adresse nur mit Opt-in

  • adb_bluetooth_firmware — Bluetooth-Firmware- und Chipsatz-Identifizierung: Firmware-Version, BT-Version (4.0–5.4 aus LMP), Adapterstatus, LE-Fähigkeiten (2M PHY, Coded PHY, erweitertes Advertising), aktive Profile (A2DP/HFP/HID/LE Audio), Anzahl gekoppelter Geräte. MAC/Name nur mit Opt-in

  • adb_nfc_firmware — NFC-Controller-Firmware: Controller-Typ (NXP/Broadcom/Samsung/ST), Firmware-Version, unterstützte Technologien (NFC-A/B/F/V, MIFARE), Secure Element (eSE/UICC), HCE-Unterstützung

  • adb_gps_firmware — GNSS/GPS-Chipsatz- und Firmware-Identifizierung: Hardware-Modell (Hersteller, Chip, Firmware), unterstützte Konstellationen (GPS/GLONASS/Galileo/BeiDou/QZSS/NavIC/SBAS), Signaltypen mit Frequenzen, Dual-Frequenz-Erkennung (L1+L5), Roh-GNSS-Messfähigkeiten, A-GPS-Modi (MSB/MSA), SUPL-Serverkonfiguration, Trägerphasenmessungen

Workflow-Marktplatz (3 Tools)

  • adb_market_search — Durchsucht den Workflow-Marktplatz nach von der Community geteilten Workflow-Definitionen mit Schlüsselwort- und Tag-Filterung. Zeigt den Installationsstatus

  • adb_market_install — Lädt einen Marktplatz-Workflow herunter, validiert (JSON-Struktur + SHA-256-Integrität) und installiert ihn zur sofortigen Verwendung mit adb_workflow_run

  • adb_market_export — Verpackt einen lokalen Workflow mit Marktplatz-Metadaten (Autor, Version, Tags, SHA-256) und generiert einen Registry-Manifesteintrag zum Teilen

SELinux- und Berechtigungsprüfung (3 Tools)

  • adb_selinux_status — SELinux-Erzwingungsmodus, Policy-Version, Shell-Kontext, Anzahl aktueller AVC-Verweigerungen. Root liefert Kernel-dmesg-Verweigerungsstatistiken

  • adb_selinux_denials — Listet aktuelle AVC-Verweigerungsmeldungen mit geparsten Quell-/Zielkontexten, Berechtigungsklassen und verweigerten Operationen auf. Unterstützt Prozessfilterung

  • adb_permission_audit — Prüft Laufzeitberechtigungsvergaben für ein Paket, gruppiert nach gefährlicher Berechtigungskategorie (Kamera, Standort, Telefon, SMS, usw.). Kennzeichnet hochsensible Vergaben

Thermik- und Energieprofilierung (3 Tools)

  • adb_thermal_snapshot — Erfasst alle Thermikzonen-Temperaturen, Pro-CPU-Frequenzen/Governor, Kühlgerätezustände, Batterietemperatur/-strom/-spannung/-leistungsaufnahme. Optionales Speichern als JSON-Baseline

  • adb_thermal_compare — Vergleicht den aktuellen Thermikzustand mit einer gespeicherten Baseline mit Temperaturdeltas pro Zone und Batteriestromänderungen

  • adb_battery_drain — Misst die Batterieentladungsrate über eine konfigurierbare Dauer (3–60 s). Meldet durchschnittlichen mA, mW, geschätzte %/Stunde. Optionale paketspezifische Batterystats

Netzwerkerkennung (3 Tools)

  • adb_network_scan — Scannt das lokale Netzwerk nach ADB-fähigen Geräten über die ARP-Tabelle und optionalen IP-Bereichs-Sweep. Prüft Ports 5555–5558 mit gebündelten parallelen TCP-Probes

  • adb_network_device_ip — Ermittelt die WiFi-IP eines verbundenen Geräts über mehrere Methoden. Zeigt den ADB-TCP-Status und Anweisungen zur drahtlosen Verbindung

  • adb_network_auto_connect — Ein-Schritt-Erkennung + Verbindung: scannt nach ADB-Geräten und führt automatisch adb connect auf jedem gefundenen Listener aus

Hardware-Sensorzugriff (2 Tools)

  • adb_sensor_read — Liest aktuelle Hardware-Sensorwerte über dumpsys sensorservice. Zählt alle Sensoren mit Hersteller, Typ, Modus, Ratenbereich und Wake-Fähigkeit auf. Gibt letzte bekannte Messwerte mit Zeitstempeln und achsenbeschrifteter Formatierung zurück. Kategoriefilter (13 Kategorien) und listOnly-Erkennungsmodus. Kein Root erforderlich

  • adb_iio_read — Liest rohe Hardwaredaten aus dem Linux-IIO-Subsystem. Entdeckt IIO-Geräte automatisch und klassifiziert sie nach Kernel-Treiber. Auf Tensor/Exynos: legt ODPM-Leistungsmonitore pro Schiene offen, die den Echtzeit-Leistungsverbrauch pro SoC-Subsystem zeigen. Generischer IIO-Pfad behandelt Rohkanäle mit kalibrierter Skalierung + Offset. Root erforderlich

Ergebnis-Handles (3 Tools)

  • adb_result_list — Listet aktive Ergebnis-Handles im tempdir-gestützten Cache auf. Zeigt Tool, Name, Größe, Alter und verbleibende TTL für jeden Handle

  • adb_result_get — Ruft den Inhalt eines gespeicherten Handles nach Tool + Name ab. Gibt die ursprünglichen Inhaltsblöcke zurück, wie sie das Quell-Tool erzeugt hat; aktualisiert die letzte Zugriffszeit. Für URI-basierte Abfrage verwenden Sie stattdessen die MCP-Ressource result://{tool}/{name}

  • adb_result_drop — Löscht einen gespeicherten Ergebnis-Handle oder löscht alle Handles im aktuellen Namensraum. Übergeben Sie sowohl tool als auch name, um einen bestimmten Handle zu löschen, oder all: true, um alles zu löschen. Nützlich vor dem Ändern von DA_AUTH_TOKEN (das sonst verwaiste Einträge unter dem alten Token-Hash-Verzeichnis hinterlassen würde)

MCP-Ressourcen (5)

Schreibgeschützte Gerätezustandsflächen, die für MCP-Clients zugänglich sind:

  • device://list — Liste aller verbundenen Geräte mit Status- und Modellinformationen

  • device://info/{serial} — Geräteeigenschaften (Modell, OS, Build, ABI)

  • device://battery/{serial} — Geparster Batteriestatus (Ladestand, Laden, Temperatur, Spannung)

  • device://telephony/{serial} — Telefonie-Registry-Zustand für Zellanalyse

  • result://{tool}/{name} — Gespeicherter Tool-Ergebnis-Handle. Über URI auflösbar; erstellt von Tools, die sich über den Parameter result_handle für die Ergebnis-Handle-Speicherung entscheiden. Aufgelistet von adb_result_list

MCP-Prompts (4)

Vorgefertigte Workflow-Vorlagen für häufige mehrstufige Debugging-Aufgaben:

  • debug-crash — Logcat leeren → App neu starten → auf Reproduktion warten → Absturzpuffer erfassen → analysieren

  • deploy-and-test — Build → installieren → Logcat leeren → Watcher starten → starten → Screenshot → Bericht

  • telephony-snapshot — Telefoniezustand, SIM-/Netzbetreiber, Netztyp erfassen → Anomalien zusammenfassen

  • airplane-cycle-test — Watcher starten → Telefonie-Baseline → Flugmodus durchlaufen → Vorher/Nachher-Zustand vergleichen

Hauptfunktionen

Geräte-Caching

Ergebnisse der Geräteerkennung werden mit einer konfigurierbaren TTL (Standard 5 s) zwischengespeichert, wodurch redundante adb devices-Subprozessaufrufe bei schnellen Tool-Sequenzen entfallen. Der Cache invalidiert automatisch bei Verbindungsfehlern und nach drahtlosen Verbindungs-/Trennungs-/Pairing-Operationen.

Wiederholung bei vorübergehenden Fehlern

Die ADB-Brücke wiederholt automatisch bei vorübergehenden Fehlern (Gerät offline, Verbindungsreset, Protokollfehler) mit konfigurierbarer Wiederholungsanzahl und exponentiellem Backoff. Diagnosebefehle überspringen Wiederholungen, um echte Probleme sofort sichtbar zu machen.

Ausgabeschutz

Die gesamte ADB-Ausgabe durchläuft den OutputProcessor, der Zeilenenden normalisiert, konfigurierbare Zeichenlimits durchsetzt und eine kontextbezogene Kürzung an logischen Grenzen (Zeilenumbrüche, Abschnittstrenner) statt mitten in der Zeile vornimmt. Enthält strukturierte Parser für Batterie-, Meminfo- und getprop-Ausgabe.

Persistentes Logcat-Streaming

Logcat-Hintergrundwächter laufen als separate Hintergrundprozesse mit Ringpuffer-Akkumulation. Jede Abfrage liefert nur neue Zeilen seit dem letzten Lesevorgang zurück. Unterstützt mehrere gleichzeitige Sitzungen (bis zu 10) mit unabhängigen Filtern. Prozess-Cleanup-Handler verhindern verwaiste adb logcat-Prozesse beim Server-Exit.

UI-Hierarchie-Analyse

Erfassung des vollständigen View-Baums über uiautomator dump mit geparster XML-Extraktion. Liefert strukturierte Elementdaten, darunter Text, resource-id, content-description, Klassennamen, Bounds-Koordinaten mit tippbaren Mittelpunkten und Interaktionsflags. Vorkompilierte Regex-Attributextraktion für effizientes Parsing.

Sicherheits-Middleware

Mehrschichtige Sicherheit, aktiviert über DA_SECURITY=true. Bietet Blocklist-/Allowlist-Filterung für Befehle, Ratenbegrenzung (Befehle pro Minute) und Audit-Logging mit automatischer Schwärzung von Zugangsdaten. Die Sicherheitsprüfungen sind in adb_shell, adb_root_shell, adb_multi_shell, adb_multi_compare, adb_input, adb_batch_actions und adb_start_activity integriert. Über Umgebungsvariablen für verschiedene Einsatzszenarien konfigurierbar.

Eingabebereinigung

Alle Tools, die benutzergelieferte Parameter in Shell-Befehlszeichenketten interpolieren, validieren die Eingaben vor der Ausführung gegen Shell-Metazeichen. Paketnamen, Property-Keys, Dienstnamen, Setting-Keys, Testbezeichner, Netzwerkschnittstellennamen und tcpdump-Filter werden über eine zentrale validateShellArg()-Funktion validiert, die ;, |, &, $, Backticks, Klammern und andere Injektionsvektoren ablehnt. Dateipfade verwenden Single-Quoted-Shell-Escaping, um die $()-Befehls substitution zu verhindern. Das adb_input-Tool wendet typspezifische Validierung an: tap/swipe akzeptieren nur numerische Koordinaten, keyevent nur alphanumerische Keycodes und text wird für die wörtliche Zustellung durch Shell-Escaping maskiert. Das adb_batch_actions-Tool erzwingt dieselbe Validierung pro Aktionsstyp (nur Ziffern für Koordinaten, alphanumerisch für Keycodes, Shell-Escaping für Text) und leitet jeden zusammengesetzten Befehl durch die Sicherheits-Middleware. Deserialisiertes JSON aus Snapshot-Dateien wird vor der Shell-Interpolation validiert. Jeder z.number()-Parameter in allen 204 Tools besitzt explizite .min()/.max()-Zod-Grenzen, um eine Ressourcenerschöpfung durch extreme Werte zu verhindern. Der LocalBridge hat explizite Handler für jeden ADB-Unterbefehl, den die Tool-Module verwenden, und verhindert so das unquotierte Durchreichen an den Standard-Shell-Handler. Im On-Device-Modus nutzt die Privilegieneskalation eine eingefrorene 16-Befehle-Allowlist und eine Regex für eingeschränkte Pfade – der Elevationssatz besteht aus ReadonlySet + Object.freeze und ist zur Laufzeit nicht konfigurierbar. Der HTTP/SSE-Transport lehnt Cross-Origin-Anfragen standardmäßig ab (konfigurierbar über DA_HTTP_CORS_ORIGIN), die Plugin-Registry verifiziert SHA-256-Integritätswirbel und verhindert Path Traversal durch Verzeichnis-Containment-Prüfungen, und die Workflow-Engine setzt Begrenzungen für Schrittzahl (200), Schlafdauer (5 Min.) und Wiederholungen (100) durch. Fetch-Helfer erzwingen ein Limit von 5 MB für den Antwort-Body. Das Getprop-Ausgabeparsing verarbeitet Windows-\r\n-Zeilenden über .trim() vor dem Regex-Abgleich, und die Anzahl der Dual-SIM-Slots ist auf 4 begrenzt, um Ressourcenerschöpfung durch beschädigte Geräteeigenschaften zu verhindern.

Multi-Geräte-Orchestrierung

Befehle ausführen, APKs installieren und Ausgaben über mehrere verbundene Geräte hinweg parallel vergleichen. Unverzichtbar für vergleichende Tests über mehrere Android-Versionen und Gerätemodelle hinweg.

Snapshot/Wiederherstellung

Erfasst umfassende Gerätezustands-Snapshots (Pakete, Einstellungen über alle Namespaces, Systemeigenschaften) als JSON-Dateien. Vergleicht den aktuellen Zustand mit gespeicherten Snapshots, um Abweichungen zu erkennen. Stellt Einstellungen aus Snapshots wieder her, um reproduzierbare Testumgebungen zu schaffen.

Netzwerkverkehr-Erfassung

Paketerfassung auf dem Gerät über tcpdump mit pcap-Datei-Abruf für die Wireshark-Analyse. Enthält die Auflistung aktiver Verbindungen über ss/netstat mit /proc/net-Fallback für Geräte ohne diese Tools.

CI/CD-Integration

Speziell für automatisierte Pipelines entwickelte Tools: Warten auf den Geräte-Boot mit Polling, strukturierte Bereitschaftsprüfungen und instrumentierte Testausführung mit geparsten Pass/Fail-Ergebnissen.

Plugin-Architektur

Dynamisches Laden von Tool-Modulen aus einem konfigurierbaren Plugins-Verzeichnis. Plugins sind reguläre JavaScript-ESM-Module, die eine register(ctx)-Funktion exportieren und den vollständigen ToolContext erhalten. Werden beim Serverstart geladen und ermöglichen Community-Brträge ohne Änderungen am Kerncode.

Community-Plugin-Registry

Plugins aus einer konfigurierbaren Registry-URL suchen, installieren und verwalten. Zeigt Installationsstatus, Versionsvergleich und verfügbare Updates an. Lädt Plugin-Dateien mit Begleit-Informationen Metadaten in das Plugins-Verzeichnis, damit sie beim nächsten Neustart geladen werden. Zu den Sicherheitsfunktionen gehören die SHA-256-Integritätsprüfung (sofern im Registry-Manifest angegeben), Path-Traversal-Schutz und eine Plausibilitätsprüfung des register()-Exports.

Basisband-/Modem-Integration

Tools zur tiefgehenden zellularen Funkdigitaleinsübung für fortgeschrittene Android-Entwicklung und -Forschung. Extrahiert Modem-Firmware-Identifikation, Zellidentitätsparameter (CID, TAC, EARFCN, PCI), rohe Signalmessungen (RSRP, RSRQ, SINR), Nachbarzellen-Erkundungen, Konfiguration des Betreibers und Modem-Protokolle aus mehreren Quellen (RIL-Radiopuffer, Telekommunikations-Framework, Kernel-Dmesg). Unterstützt Shannon/Exynos-, Qualcomm-, MediaTek- und Unisoc-Chipsatzfamilien über die standardmäßigen Android-Telefonie-APIs. Enthält Google-Tensor-SoC-Erkennung (gs101/gs201/zuma/zumapro) für das automatische Shannon-Modem-Pfadrouting auf Pixel-6–9-Geräten. Die Dual-SIM-Erkennung meldet pro Slot SIM-Zustand, Betreiber, Netzwerktyp und Land für DSDS-, DSDA- und TSTS-Konfigurationen.

Barrierefreiheits-Auditierung

Automatisierte WCAG-Barrierefreiheitsprüfungen an der LiveerUI-Hierarchie. Erkennt fehlende Labels auf interaktiven Elementen, zu kleine Touch-Ziele unterhalb der 48-dp-Richtlinie (densitätsbewusst), Bilder ohne content-description, klickbare Elemente ohne Rücksetzbarkeit und doppelte content-descriptions. Generiert strukturierte Berichte mit Schweregraden. Enthält eine dedikierte Barrierefreiheits-Baumanansicht für Screenreader- Debugging.

Regressionserkennung

Erfasst Performance-Baselines (Speicher, CPU, Frame-Statistik, Akku, Netzwerkzustand) und vergleicht unterschiedliche nachfolgendeäufe damit. Konfigurierbare Regressionsschwellen für Speicher (+20 %), CPU (+50 %) und Jank-Rate (+25 %). Hält eine Historie der Baselines für die Trendanalyse über Versionen hinweg bereit.

Device-Farm-Integration

Cloud-basierte Testausführung über Firebase Test Lab per gcloud-CLI. Führen Sie instrumente Tests auf mehreren Gerätemodellen und API-Leveln aus, rufen Sie strukturierte Ergebnisse ab und listen Sie die verfügbereitungen Test-Matrix-Konfigurationen auf. Saubere Fallback-Lösung mit Einrichtungsanweisungen, falls gcloud nicht verfügbar ist.

HTTP/SSE-Transport

Alternative zu stdio für browserbasierte MCP-Clients. Setzen Sie DA_HTTP_PORT, um einem HTTP-Server mit SSE-Streaming zu starten. Stellt /sse (Client-Abonnement), /message (JSON-RPC) und /health-Endpunkte bereit. Cross-Origin-Anfragen werden standardmäßig abgewiesen – setzen Sie DA_HTTP_CORS_ORIGIN, um einen bestimmten Absender explizit zuzulassen.

Test-Sitzungsverwaltung

Strukturierte Tests Workflows mit nummerierten Schritten. Jeder Schritt erfasst einen Screenshot und einen Logcat-Snapshot in einem organisierten Verzeichnis mit einem Markdown-Manifest. Konzipiert für die reproduzierbare Dokumentation der Tests.

AT-Befehlsschnittstelle

Direkter AT-Befehlspassthrough zum Modem über Root-Zugriff und ermöglicht Abfragen jenseits des Android-Telekommunikations-Frameworks. Multi-Chipset-Unterstützung erkennt automatisch Geräteknoten für Samsung Shannon/Exynos, Qualcomm Snapdragon, MediaTek, Unisoc/Spreadtrum und generische USB-Modems. Die Eingabevalidierung lehnt Shell-Metazeichen aus AT-Befehlszeichenfolgen und Geräteknotenpfaden ab, bevor sie auf eine Root-Shell übertragen werden. Eine Sicherheitsblocklist verhindert unbeabsichtigte Ausführung gefährlicher Befehle (AT+CFUN=0, AT+EGMR usw.) mit einem expliziten Force-Override.

Screenshot-Diffing

Echte Pixel-genaue optische Regressionserkennung. Erfasst benannte Screenshot-Baselines und vergleicht den aktuellen Bildschirmzustand, indem sie PNG-Pixeldaten dekodiert (IHDR-Parsing, IDAT-Dekompression, alle 5 PNG-Filtertypen) und die tatsächlichen RGB-Werte vergleicht. Meldet die Anzahl und der Prozentsatz geänderter Pixel, den umgebenden Rahmen der geänderten Region mit vertikaler Bildschirmposition sowie Dimensions-/Größen-Änderungenänderungen. Unterstützt einen tolerancePercent-Parameter (0–100), der kleine dynamische Änderungen wie Uhranzeigen perfekt oder Benachrichtigungsabzeichen abfängt – eine Toleranz von 1 % st auffällig Uhränderungen der Navigationsleiste (~0,5 % der Pixel) absorbiert und trotzdem jede echte UI-Regression erkennt. SHA-256-Schnellpfad für exakte Übernstimmungen. Keine externen Abhängigkeiten.

Workflow-Orchestrierung

Deklarative JSON-basierte Arbeitsablauf-Engine für wiederholbare Multi-Step-Geräteoperationen. Unterstützt Variablenersetzung ({{pkg}}), Bedingungsschritte (if-Ausdrücke mit ==, !=, contains), Schleifen (repeat, bis 100 Iterationen) und die Erfassungen von Ergebnissen in Variablen für nachfolgende Schritte. Aktionen bilden direkt auf ADB-Bridge-Operationen ab, mit vollständiger Einhaltung der Sicherheits-Middleware. Die Workflow-Validierung erzwingt ein Maximum von 200 Schritten und ein Schlaf-Limit von 5 Minuten pro Schritt, um Ressourcenerschöpfung durch bösartigeoder fehlerhafte Workflow-Definitionen zu vermeiden.

Split-APK-Verwaltung

Unterstützung für moderne Android-Versandformate. Installiert App-Bundles über install-multiple, untersucht die Split-APKStruktur (Basis- und Konfigurations-Splits für Sprache, Dichte, ABI), extrahiert alle Splits zur lokalen Analyse und listet APEX-Module auf.

Geräte-Mirroring

Live-Screen-Mirroring über scrcpy-Integration. Unterstützt Fenster Modus für visuelles Feedback sowie Headless-Modus für rein Aufnahme-Workflows. Die Sitzungsverfolgung pro Gerät ermöglicht gleichzeitiges Spiegel mehrere verbundener Geräte. Prozessauflösungs-Handlerprozess verhindern verwaiste scrcpy-Prozesse.

Automatisierte Testgenerierung

Analysiert die Live-UI-Hierarchie und Paket-Intent-Registrierungen, um automatisch Test-Workflow-JSON zu generieren, das mit der Workflow-Orchestrierungs-Engine kompatibel ist. Die UI-basierte Generierung tippt jedes interaktive Element an, protokolliert Screenshots und prüft auf Abbrüche. Die Intent-basierte-Variante startet jede exportierte Aktivität mit einer Absturz-Erkennung.

OTA-Update-Überwachung

Erfasst einen umfassenden System-Figuren-Fingerabdruck (Build-ID, Android-Version, Sicherheitspatch-Stand, Bootloader, Basisband-Firmware, Kernel-Version, A/B-Partitions-Slot) über die Sitzungen hinweg. Diese vergleicht aktuelle Gerätesituation mitandenen Fingerabdrücken und sqrt zu erkennen assemblies OTA-Update. Identifiziert genau, welche Attribut geändert haben, und empfiehlt, nach einem Update die Codes für Performance-Metriken und Screenshots neu zu setzen.

RIL-Nachrichten-Erfassung

Erfassung von Radio-Interface-Layer-Nachrichten aus dem Android-Logcat-Ratio-Buffer persistent wiederholt. Startet einen Hintergrundprozess (d)plies in einem Ringpuffer. The buffer is persistiert dData from logcat-Radio, kategorisiert: Abbildung an ® we continue auf Wechsel. Startet einen Hintergrundprozess, der RIL-Nachrichten (ähn) sammelt und nach Registrierung, cell_info, signal, network, security, handover, data, radio_state, sms und NAS-Ereignisse engteilt.". ,-Abfall ist with Abruf per Polling with Kategoriefilter möglich.

session limit5 and cleanup handler prevent res exhaust. handy für passive Beobachtung von-Kommunikation zwischen Basisband undFramework zu Zwecken der Funkdiagnose und der Mobilfunkforschung. Die Sitzungsbegrenzung (5) und Prozessaufräum-Handler verhindern Ressourcenerschöpfung.

Geräteprofil-Bibliothek

Geräteprofilwissen mit Gerätehardwareidentifikation, Chip-Ebene – Chipidentifikation, Bekannte Modem-Knoten, AT-Kompatibilität, Root-Anforderungen, telefonischen Niemals-Nicht, Rufnummer Anforderungen, Doppel-SIM-Steckplatzerieze. Nummer-+ work button breite- Standard – erkennt automatisch von verbundn a propagates aktuellen Gerät software and katalog. Speichern profile Über Streamsop accumulator. Good for Tools such as adb_at_detect. Community-Erweiterung über gespeicherte Profildateien.

WebKit Replace-Transport

Eine Alternative zu stdio und HTTP/SSE für MCP-Clients, die von echter bidirektionaler Übertragung durchgehend profitieren. Niedrigere Latenz im Vergleich zum SSE-Polling bei besser Web-Framework-Kompatibilität. Erfordert das ws npm-Package als optionale Peer-Abhängigkeit. Setzen Sie DA_WS_PORT zum Aktivieren des Modus.

Modem-Firmware-Analyse

Umfassende Multi-Komponenten-Firmware-Identifikation, -Vergleich und -Verlaufsverfolgung. Analysiert Basisband-Versionsstrings für 6 Chipsatz-Familien: Shannon/Exynos (einschließlich Google Pixel/Tensor g5123b-*-Format und klassischem Samsung S5123AP_CL*-Format), Qualcomm MPSS-Zweig/-Version/-Build, MediaTek MOLY-Zweig/-Release/-Meilenstein, Unisoc/Spreadtrum SoC-Modell/-Version, HiSilicon/Kirin-Modell/-Carrier-Code und Intel XMM-Modell/-Zweig. Analysiert außerdem Bootloader-Versionen (Pixel-Codename/-Version/-Build, Samsung-Modell/-Carrier/-Revision) und RIL-Implementierungsstrings (Samsung S.LSI-Anbieter/-ID/-API/-Build-Datum, Qualcomm, MediaTek). Die Firmware-Sonde meldet 8 Abschnitte: Basisband, Bootloader, RIL, Kernel, Sicherheit/Build, Partition/Boot (A/B-Slot, Secure Boot, Verified Boot, Flash-Sperre), VBMeta-Integrität und OTA-Partitionsinventar. Das Diff-Tool vergleicht alle Firmware-Komponenten zwischen gespeicherten Fingerprints oder dem Live-Gerätezustand, mit tiefen geparsten Sub-Diffs für Basisband und Bootloader. Das Verlaufs-Tool verfolgt die Multi-Komponenten-Firmware-Entwicklung über OTA-Fingerprints hinweg.

Workflow-Marketplace

Community-Freigabeebene für die Workflow-Orchestrierungs-Engine. Durchsuchen Sie eine Registry mit von der Community beigesteuerten Test-Workflows, Diagnosesequenzen und Audit-Verfahren. Laden Sie Workflows direkt herunter und installieren Sie sie für die sofortige Ausführung mit adb_workflow_run. Exportieren Sie lokale Workflows mit Marketplace-Metadaten und automatisch generierten Registry-Manifesteinträgen zur Einreichung. SHA-256-Integritätsprüfung beim Download.

GraphQL-API

Optionaler HTTP-Endpunkt, der eine GraphQL-API für zusammengesetzte Geräteabfragen bereitstellt. Ermöglicht Clients, Geräteinformationen, Akku, Netzwerk und beliebige Eigenschaften in einer einzigen Anfrage abzurufen, anstatt mehrerer MCP-Tool-Aufrufe. POST-Anfragetext auf 1 MB begrenzt. Geräteeigenschaften werden einmal pro Auflösung vorab abgerufen, um Subprozess-Aufrufe zu minimieren. Erfordert das graphql-npm-Paket als optionale Peer-Abhängigkeit. Setzen Sie DA_GRAPHQL_PORT, um es zu aktivieren.

SELinux- und Berechtigungs-Audit

Prüft den SELinux-Erzwingungsmodus, fragt AVC-Ablehnungen aus logcat- und Kernel-Audit-Protokollen ab und prüft Laufzeit-Berechtigungserteilungen pro Paket. Gruppiert erteilte Berechtigungen nach gefährlicher Kategorie (Kamera, Standort, Telefon, SMS usw.) und kennzeichnet hochsensible Erteilungen wie Hintergrund-Standort und manage-external-storage. Erweitert die Sicherheits-Audit-Abdeckung auf die OS-Berechtigungsebene.

Thermal- und Strom-Profilierung

Erfasst Thermal-Zonen-Temperaturen aus sysfs, Frequenzskalierungszustände und -Governors pro CPU, Kühlgeräteaktivität und Akku-Entladeraten. Ergänzt die Regressionserkennung mit Thermal-/Strom-Basislinien für Probleme, die sich als Hitze oder Akku-Entladung äußern, anstatt als Frame-Drops. Enthält zeitgesteuerte Entlademessung mit mA/mW/geschätzten-%-pro-Stunde-Berechnungen.

Netzwerk-Geräteerkennung

Scannt das lokale Netzwerk nach ADB-fähigen Geräten über ARP-Tabellenabfragen und optionale IP-Bereichs-Sweeps. Testet gängige ADB-Ports (5555-5558) mit gebündelten parallelen TCP-Verbindungsversuchen. Extrahiert Geräte-WiFi-IPs über mehrere Methoden. Der Auto-Connect-Modus erkennt und verbindet Geräte in einem Schritt. Optimiert drahtlose Debugging-Workflows.

QEMU/KVM-Virtualisierung

Verwaltung virtueller Maschinen auf dem Gerät mit QEMU und KVM-Hardwarebeschleunigung. Ermöglicht das Ausführen von Android-Gast-VMs direkt auf dem physischen Gerät — eine Fähigkeit, die DeepADB einzigartig macht. Die dynamische Ressourcenzuweisung erkennt automatisch Host-CPU-Kerne und physischen RAM und reserviert 1 Kern und 35 % des Speichers für das Host-Betriebssystem, um Verhungern zu verhindern. Multi-VM-Unterstützung verfolgt den Ressourcenverbrauch über gleichzeitige VMs und lehnt neue VMs ab, wenn der Pool erschöpft ist, anstatt die Host-Leistung zu beeinträchtigen. Festplatten-Image-Verwaltung mit qcow2 (sparse, snapshot-fähig) und raw-Formaten. ADB-Portweiterleitung zu Gast-VMs ermöglicht es der vollständigen DeepADB-Tool-Suite, gleichzeitig Host- und Gast-Geräte anzusprechen. Prozesslebenszyklus wird über die zentrale Bereinigungs-Registry mit SIGTERM/SIGKILL-Beendigung verfolgt. Pfad-Containment-Prüfung bei allen Image-Operationen verhindert Directory Traversal.

ToolContext-Architektur

Alle 45 Tool-Module erhalten ein einheitliches ToolContext-Abhängigkeitsbündel, das Server, Bridge, deviceManager, Logger, Sicherheit und Konfiguration enthält. Das Hinzufügen neuer querschnittlicher Abhängigkeiten erfordert keine Änderungen an Modulsignaturen.

Umgebungsvariablen

Variable

Standard

Beschreibung

DA_LOCAL

Automatische Erkennung

Erzwingt den On-Device-Modus (true/false). Automatische Erkennung über /system/build.prop

ADB_PATH

Automatische Erkennung

Pfad zur ADB-Binärdatei (im On-Device-Modus ignoriert)

DA_TIMEOUT

30000

Standard-Befehlstimeout in Millisekunden

DA_MAX_OUTPUT

50000

Maximale Ausgabezeichen vor Kürzung

DA_MAX_LOGCAT

500

Maximale Logcat-Zeilen pro Snapshot

DA_DEVICE

(automatisch)

Standard-Geräteseriennummer (wählt automatisch aus, wenn nur ein Gerät vorhanden ist)

DA_TEMP_DIR

OS-Temp

Temporäres Verzeichnis für Screenshots, gepullte Dateien, Bug-Reports, Testsitzungen und Snapshots

DA_CACHE_TTL

5000

TTL des Gerätelisten-Caches in Millisekunden (0 = deaktiviert)

DA_RETRY_COUNT

1

Anzahl der Wiederholungsversuche bei vorübergehenden ADB-Fehlern

DA_RETRY_DELAY

500

Basis-Wiederholungsverzögerung in ms (verdoppelt sich bei jedem Versuch)

DA_LOG_LEVEL

info

Log-Level: debug, info, warn, error

DA_ASCII_ONLY

(automatische Erkennung)

Auf 1 setzen, um die ASCII-only-Ausgabe im Startwarnbanner zu erzwingen. Standardmäßig automatische Erkennung über WT_SESSION/TERM_PROGRAM/TERM für Unicode-fähige Terminals; fällt auf ASCII bei Legacy-cmd.exe zurück.

DA_RESOURCE_CACHE_TTL_MS

0 (deaktiviert)

MCP-Resource-Cache-TTL in ms. Auf einen positiven Wert setzen, um Ressourcen-Lesezugriffe (device://info, device://battery, usw.) für diese Dauer zu cachen.

DA_RESULT_HANDLE_DIR

{tempDir}/result-handles

Speicherstamm für tempdir-gestützte Tool-Ergebnishandles. Überschreiben, um den Speicher aus dem Standard-Temp-Verzeichnis zu verlagern.

DA_RESULT_HANDLE_TTL

43200 (12h)

TTL pro Handle in Sekunden. Handles, die älter als dieser Wert sind, werden beim Start-Sweep und bei der periodischen Räumung entfernt. Begrenzt auf [60, 7 Tage].

DA_RESULT_HANDLE_MAX_BYTES

5242880 (5 MB)

Größenlimit pro Handle. Tools, die versuchen, einen Inhaltsblock zu speichern, der größer als dieser Wert ist, schlagen mit einem Fehler fehl.

DA_RESULT_HANDLE_TOTAL_BYTES

104857600 (100 MB)

Gesamtgrößenlimit des Ergebnis-Handle-Speichers über alle Handles. Löst bei Überschreitung LRU-Räumung aus.

DA_RESULT_HANDLE_MAX_COUNT

100

Maximale Anzahl aktiver Handles. Löst bei Überschreitung LRU-Räumung aus.

DA_SECURITY

false

Sicherheits-Middleware aktivieren (Befehlsfilterung, Ratenbegrenzung)

DA_BLOCKED_COMMANDS

(keine)

Kommagetrennte Liste blockierter Shell-Befehls-Teilstrings

DA_ALLOWED_COMMANDS

(keine)

Kommagetrennte Zulassungsliste (falls gesetzt, werden nur passende Befehle ausgeführt)

DA_RATE_LIMIT

0

Maximale Befehle pro Minute (0 = unbegrenzt)

DA_CI_PING_TARGET

1.1.1.1

Netzwerkerreichbarkeitsziel, das von adb_ci_device_ready verwendet wird (Netzwerkerreichbarkeit ist einer der Bereitschaftsprüfungen neben Boot-Abschluss, ADB-Autorisierung und Verfügbarkeit des Paketmanagers). Überschreiben, um auf ein internes Ziel zu zeigen, wenn 1.1.1.1 durch eine Firewall blockiert ist.

DA_AUDIT_LOG

true

Protokolliert alle ausgeführten Befehle für die Audit-Trail (auf false setzen, um zu deaktivieren)

DA_PLUGIN_DIR

{tempDir}/plugins

Verzeichnis, das beim Start nach Plugin-.js-Modulen durchsucht wird

DA_REGISTRY_URL

GitHub-Standard

URL des JSON-Manifests der Community-Plugin-Registry

DA_HTTP_PORT

(deaktiviert)

Auf eine Portnummer setzen, um den HTTP/SSE-Transportmodus zu aktivieren

DA_HTTP_HOST

127.0.0.1

Bindungsadresse für HTTP/SSE-, WebSocket- und GraphQL-Server

DA_AUTH_TOKEN

(keine — offen)

Bearer-Token für Netzwerktransporte. Wenn gesetzt, erfordern alle HTTP/SSE/WS/GraphQL-Anfragen den Header Authorization: Bearer <token>. Health-Endpunkte sind ausgenommen.

DA_HTTP_CORS_ORIGIN

(keine — verweigern)

Erlaubte CORS-Origin für HTTP/SSE

DA_WS_PORT

(deaktiviert)

Auf eine Portnummer setzen, um den WebSocket-Transportmodus zu aktivieren (erfordert npm install ws)

DA_WS_CORS_ORIGIN

(keine — verweigern)

Erlaubte CORS-Origin für den WebSocket-Health-Endpunkt

DA_GRAPHQL_PORT

(deaktiviert)

Auf eine Portnummer setzen, um den GraphQL-API-Endpunkt zu aktivieren (erfordert npm install graphql)

DA_GRAPHQL_CORS_ORIGIN

(keine — verweigern)

Erlaubte CORS-Origin für die GraphQL-API

DA_WORKFLOW_REGISTRY_URL

(abgeleitet von DA_REGISTRY_URL)

URL des JSON-Manifests des Workflow-Marktplatzes

DA_TEST_PIN

(keine)

Numerische PIN, die von tests/test-ui-control.mjs verwendet wird, um Bildschirmsperr-/Entsperrtests auszuführen. Ohne sie werden die 4 Sperrzustandstests übersprungen. Format: DA_TEST_PIN=0000 npm test.

Projektstruktur

DeepADB/
├── src/
│   ├── index.ts                # Entry point — stdio, HTTP/SSE, WebSocket, or GraphQL transport
│   ├── server.ts               # MCP server wiring, config, module registration (exports CreateServerResult)
│   ├── http-transport.ts       # HTTP/SSE transport server for browser clients
│   ├── ws-transport.ts         # WebSocket transport (optional `ws` peer dependency)
│   ├── graphql-api.ts          # GraphQL API endpoint (optional `graphql` peer dependency)
│   ├── tool-context.ts         # Unified dependency bundle (ToolContext interface)
│   ├── bridge/
│   │   ├── adb-bridge.ts       # Core ADB subprocess wrapper, retry logic, error types
│   │   ├── local-bridge.ts     # On-device direct execution bridge with privilege escalation (Termux/local mode)
│   │   └── device-manager.ts   # Device discovery, TTL cache, serial routing
│   ├── tools/
│   │   ├── health.ts           # Toolchain health check (1 tool)
│   │   ├── device.ts           # Device info and properties (3 tools)
│   │   ├── shell.ts            # Shell and root command execution (2 tools)
│   │   ├── packages.ts         # App lifecycle, install, permissions, intents (12 tools)
│   │   ├── files.ts            # File operations — push, pull, write, find, grep, replace, stat, checksum, chmod, chown, touch, fsinfo (18 tools)
│   │   ├── logs.ts             # Logcat snapshots — filtered (3 tools)
│   │   ├── logcat-watch.ts     # Persistent logcat with ring buffer and poll (4 tools)
│   │   ├── diagnostics.ts      # dumpsys, telephony, battery, network, perf, bugreport, crash logs, heap dump (9 tools)
│   │   ├── ui.ts               # Screenshots, input, activity, UI hierarchy, annotated screencap, screen state (8 tools)
│   │   ├── input-gestures.ts   # Drag, long press, double tap, text, URL, orientation, clipboard, tap-element, wait-element, wait-stable, scroll-until, compressed screenshot, batch actions, fling, pinch, screen size, device state, notifications (18 tools)
│   │   ├── screen-record.ts    # Screen video recording start/stop (2 tools)
│   │   ├── control.ts          # Airplane, WiFi, data, location, screen, settings, reboot (9 tools)
│   │   ├── wireless.ts         # WiFi pairing, connect, disconnect, TCP/IP (4 tools)
│   │   ├── forwarding.ts       # Port forwarding — forward, reverse, list, remove, managed tunnels with auto-port-pick (8 tools)
│   │   ├── emulator.ts         # AVD list, start, stop with on-device KVM/QEMU detection (3 tools)
│   │   ├── qemu.ts             # QEMU/KVM VM management — setup, images, start, stop, status, guest ADB connect/disconnect/shell (8 tools)
│   │   ├── testing.ts          # Structured test sessions with numbered steps (3 tools)
│   │   ├── multi-device.ts     # Multi-device shell, install, compare, comparative testing (4 tools)
│   │   ├── snapshot.ts         # Device state capture, compare, restore (3 tools)
│   │   ├── network-capture.ts  # tcpdump start/stop, network connections (3 tools)
│   │   ├── ci.ts               # CI wait-boot, device-ready, run-tests (3 tools)
│   │   ├── plugins.ts          # Plugin loader, info, and dynamic tool loading (2 tools)
│   │   ├── baseband.ts         # Modem/baseband inspection and radio diagnostics (6 tools)
│   │   ├── accessibility.ts    # Automated WCAG accessibility auditing (3 tools)
│   │   ├── regression.ts       # Performance baseline and regression detection (3 tools)
│   │   ├── device-farm.ts      # Firebase Test Lab integration via gcloud (3 tools)
│   │   ├── registry.ts         # Community plugin registry search/install (3 tools)
│   │   ├── at-commands.ts      # AT command modem interface, multi-chipset, cross-validation (5 tools)
│   │   ├── screenshot-diff.ts  # Visual regression — screenshot baseline/diff (3 tools)
│   │   ├── workflow.ts         # Declarative workflow orchestration engine (3 tools)
│   │   ├── split-apk.ts        # App bundles, split APKs, APEX modules (4 tools)
│   │   ├── mirroring.ts        # Live screen mirroring via scrcpy (3 tools)
│   │   ├── test-gen.ts         # Automated test workflow generation (3 tools)
│   │   ├── ota-monitor.ts      # OTA update monitoring and fingerprinting (3 tools)
│   │   ├── ril-intercept.ts    # RIL message interception from radio buffer (3 tools)
│   │   ├── device-profiles.ts  # Device profile library with built-in entries (3 tools)
│   │   ├── firmware-analysis.ts # Modem firmware version parsing and diffing (3 tools)
│   │   ├── workflow-market.ts  # Workflow marketplace — search, install, export (3 tools)
│   │   ├── selinux-audit.ts    # SELinux status, AVC denials, permission auditing (3 tools)
│   │   ├── thermal-power.ts    # Thermal zones, CPU frequency, battery drain (3 tools)
│   │   ├── network-discovery.ts # ADB-over-network scanning and auto-connect (3 tools)
│   │   ├── sensors.ts          # Hardware sensor enumeration, IIO power monitor reading (2 tools)
│   │   ├── result-handles.ts   # Tempdir-backed result handle store — list, drop, drop-all (3 tools) + the result://{tool}/{name} resource
│   │   ├── wireless-firmware.ts # WiFi, Bluetooth, NFC, GPS firmware identification (4 tools)
│   │   ├── build.ts            # Gradle build and install (2 tools)
│   │   ├── resources.ts        # MCP Resources — 4 device-state surfaces: device://info|battery|telephony|list (5th, result://, lives in result-handles.ts)
│   │   └── prompts.ts          # MCP Prompts — workflow templates (4 prompts)
│   ├── middleware/
│   │   ├── auth.ts             # Bearer token authentication for network transports (DA_AUTH_TOKEN)
│   │   ├── output-processor.ts # Contextual truncation, structured parsers, settledValue helper
│   │   ├── security.ts         # Command filtering, rate limiting, audit logging with redaction
│   │   ├── sanitize.ts         # Shell injection prevention — validateShellArg/validateShellArgs/shellEscape
│   │   ├── chipset.ts          # Shared chipset family detection, modem path mapping, SIM config detection
│   │   ├── fetch-utils.ts      # Shared HTTP helpers with 5 MB streaming response size limit
│   │   ├── png-utils.ts        # Zero-dependency PNG decode/encode/draw primitives for screenshot annotation and diffing
│   │   ├── ui-dump.ts          # Shared uiautomator XML capture with concurrent-safe paths, on-device /data/local/tmp routing, and cleanup
│   │   ├── cleanup.ts          # Centralized process cleanup registry for SIGINT/SIGTERM/exit
│   │   ├── logger.ts           # stderr-safe logging (MCP-compliant)
│   │   ├── fs-utils.ts         # Filename sanitization, atomic write, private-dir helpers, within-dir containment check
│   │   ├── parse-utils.ts      # Shared parseIntSafe for env-var numeric parsing (single source of truth)
│   │   └── result-handle.ts    # Tempdir-backed tool result content cache with TTL, LRU, and token-hash isolation
│   └── config/
│       └── config.ts           # Configuration, env vars, startup validation
├── package.json
├── tsconfig.json
├── server.json                  # MCP Registry metadata (io.github.fullread/deepadb)
├── .gitignore
├── README.md
├── SECURITY.md                  # Threat model, security architecture, deployment hardening, vulnerability reporting
├── CHANGELOG.md                 # Version history from v0.1.0 to current
├── LICENSE                      # Apache 2.0 license
└── tests/
    ├── run-all.mjs              # Run all test suites sequentially with summary (tracks skipped counts)
    ├── test-hw.mjs              # Hardware core: health, identity, baseband, thermal, profiles, wireless firmware, crash analysis (34 tests)
    ├── test-shell-files.mjs     # Shell, filesystem, packages, diagnostics (24 tests)
    ├── test-ui-control.mjs      # UI hierarchy, screenshots, settings, input gestures, UI automation, device awareness, accessibility, screen lock/unlock, multi-touch (46 tests)
    ├── test-monitoring.mjs      # Logcat watchers, snapshots, OTA, regression, workflows (43 tests)
    ├── test-security.mjs        # Input sanitization, shell injection, AT command safety, QEMU shell escaping, heap-dump validation (116 on-device, 105 host)
    ├── test-lifecycle.mjs       # App lifecycle, file push/pull, input, port forwarding, screen recording, test sessions (24 tests)
    ├── test-analysis.mjs        # Thermal/snapshot/regression comparison, firmware diff, screenshot diff, test gen, RIL intercept, AT cross-validation, permission management (23 tests)
    ├── test-boundaries.mjs      # Zod bounds enforcement, input injection, error paths, sensitive data protection, wireless ADB coverage, multi-device basics, tunnel automation, device-free coverage boundaries (78 tests)
    ├── test-sensors.mjs         # HAL sensors, IIO power monitors, category filters, formatting, wake-up, rate display (30 tests)
    ├── test-files-extended.mjs  # File tool coverage — write, find, stat, checksum, mkdir, rm, move, copy, chmod, touch, fsinfo, chown, grep, replace; push safety; sed-escape regression (95 tests)
    ├── test-result-handles.mjs # Result handle store — listing, retrieval, drop, isolation, eviction (19 tests)
    ├── test-qemu.mjs            # QEMU/KVM setup, image management, VM status, guest connectivity errors (13 on-device tests)
    ├── test-qemu-boot.mjs       # QEMU Alpine VM boot with auto-fetch of kernel/initrd, KVM acceleration, topology detection, guest ADB connectivity (17 on-device tests)
    ├── test-supply-chain.mjs    # Supply-chain hardening checks for fetch and network paths (24 tests)
    ├── test-sanitize-fuzz.mjs   # Property-based fuzzing of shell sanitizers — shellQuote/shellEscape round-trip, validateShellArg rejection (19 tests)
    ├── test-transports.mjs      # Transport smoke — HTTP/SSE + WebSocket MCP round-trip, GraphQL health query (8 tests)
    └── lib/
        └── harness.mjs          # Shared test harness (stdio JSON-RPC transport, assertion primitives)

Tech-Stack

  • Runtime: Node.js ≥22 (ES2024, ESM; Node 22.12+ für Testabdeckung)

  • Sprache: TypeScript 6.0 (Strict-Modus, NodeNext-Modulauflösung)

  • MCP SDK: @modelcontextprotocol/sdk ^1.24.0 (derzeit auf 1.30.0 aufgelöst)

  • Validierung: Zod ^4.4.3

  • Transport: stdio (JSON-RPC), HTTP/SSE, WebSocket (optional ws), GraphQL API (optional graphql)

Lizenz

Apache License 2.0 — siehe LICENSE und NOTICE. Das Release v1.1.2 wurde von MIT zu Apache 2.0 migriert, um die Anforderungen an eine ausdrückliche Patenterteilung und die Namensnennung von Mitwirkenden zu erfüllen; bestehende Forks/Installationen bleiben unter den bisherigen MIT-Bedingungen gültig.

Install Server
A
license - permissive license
B
quality
A
maintenance

Maintenance

Maintainers
Response time
6dRelease cycle
13Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    A MCP server that enables AI assistants to control Android devices via ADB, supporting device info, screen control, input simulation, app management, shell execution, file transfer, and UI parsing.
    20
  • F
    license
    Not graded
    quality
    D
    maintenance
    A powerful MCP server that provides comprehensive Android device automation capabilities through ADB, enabling AI agents to interact with Android devices for testing, automation, and device control tasks.
    1
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that wraps Android ADB functionality into AI assistant tools, enabling device management, shell execution, file operations, app management, media capture, and log analysis via natural language.
    28
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.

  • Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fullread/DeepADB'

If you have feedback or need assistance with the MCP directory API, please join our Discord server