droidkraft 1.2.0

DroidKraft — Android device monitor GUI: live logs, one-click commands, flash/root toolkit, and screen mirroring (Zed GPUI)
Documentation

droidkraft

The DroidKraft desktop GUI — an Android device monitor built with Zed GPUI, on top of the shared droidkraft-core library.

Features

  • Dashboard — live device status: model, Android version, battery, RAM, CPU load, and a list of all attached devices with online/authorised indicators.
  • Live Logs — realtime logcat streaming (via the core LogcatStream engine) with a log-level filter, start/stop, and clear.
  • Commands — one-click device commands grouped by category (Device, System, Packages, Screen, Power); output is shown in a scrollable pane.
  • Flash & Root — reboot targets (system / bootloader / recovery / sideload / fastbootd), root detection, remount, and fastboot operations (unlock / lock / wipe / reboot / getvar) with destructive-action styling.
  • Screen — live screen mirroring: a background thread captures screencap PNG frames which are rendered in the window, with an fps / frame counter.
  • Custom ROM flasher — device-aware ROM catalog (LineageOS live API + seed catalog for others), verified downloads (SHA-256, progress), and a consent-gated flash orchestrator (unlock → wipe → flash recovery → sideload → reboot). Destructive steps require an explicit "⚠ Confirm & run" click.

All device I/O runs on background threads (a command worker + the logcat and screen capture threads), so the UI thread never blocks.

Install

cargo install droidkraft

Build prerequisites. GPUI renders with the GPU, so building requires the platform graphics toolchain:

  • macOS — the full Xcode toolchain with the Metal compiler (xcodebuild -downloadComponent MetalToolchain), not just the Command Line Tools.
  • Linux — the usual GPUI system libraries (Wayland/X11, libxkbcommon, Vulkan, fontconfig, …).

The GUI is an opt-in workspace member, so the repo's default cargo build / cargo test (core + TUI) don't require this toolchain.

Run

droidkraft

Architecture

Module Responsibility
app The root gpui Render view, panels, and per-tick data pump
worker Background thread owning an AdbManager; request/response channels
screen Background screen-capture backend (framework-free, unit-tested)
commands Framework-free catalogue of button commands (unit-tested)
theme Colour palette (log-level / tag colours shared via droidkraft-core)

commands and screen have no gpui dependency and are covered by unit tests; worker depends only on droidkraft-core.

License

MIT