TurboADB

Drive Android over ADB + scrcpy from one pip package — a Python API, a full CLI, and a desktop GUI. Built for Android Automotive / IVI head units and regular phones alike.

Bundled GUI executable — no Python needed. Or pip install turboadb for the CLI, API, and GUI together.

TurboADB wraps adb and scrcpy so you don't have to remember their flags. The same engine powers all three front-ends, so anything you can click in the GUI you can script in Python or run as a one-line command. It bundles its own tools (downloaded on first run), works against devices on another machine's adb server over RDP, and knows the quirks of Android Automotive head units.

What's new

v1.0.8 Remote webcam & polish

  • Webcam → Remote source — view a camera on another Windows / RDP machine over WinRM (no SSH), streamed back over TCP.
  • Tabbed Settings — a proper preferences window (Appearance · Tools · scrcpy · Logcat · Startup).
  • Dropdown arrows fixed — real chevrons instead of a "dot", app-wide.

v1.0.7 Host webcam

  • 📹 Webcam tab — view a USB / laptop camera on the machine running TurboADB, beside the scrcpy mirror. Point it at the physical head unit or bench.
  • Works locally and over RDP — local DirectShow capture sees whatever camera the RDP session exposes.
  • Snapshot, record (H.264 MP4), pause, rotate / mirror, Fill·Fit·Stretch.

v1.0.6 Quick wins

  • 📷 Device-camera mirror — mirror the phone's own camera (scrcpy --video-source camera), front or back.
  • Logcat keyword highlighting — mark error|anr|crash in-line without hiding the rest.
  • One-click dark / light toggle, and a Stop sharing & remove auto-start control. Nothing auto-starts on connect.

Full history in the changelog.

Everything it does

🖥

Interactive shell

A real adb shell terminal: history, tab-completion, copy/paste, columnised ls, and a Stop button that actually kills a runaway command like logcat — even over a remote adb server.

📜

Live logcat

Filter by level, tag, or live regex; highlight keywords like error|anr|crash in-line; pause and clear. Under a flood the view stays responsive and nothing is lost — every line is archived to disk, so a save is the complete log.

📁

Files & apps

Browse the device filesystem and push/pull files. List, install (incl. split APKs), uninstall, clear data, and start/stop packages.

🎛

Device controls

One click for system keys, media, Wi-Fi / Bluetooth / airplane / hotspot, screen on/off, brightness, app launchers, and an on-screen keyboard. Every one is also a CLI command.

📱

Mirroring & capture

scrcpy in a window or embedded, with a compatibility mode for stubborn IVI units. Mirror all displays at once, a side-by-side Control + Mirror view, or the device camera. Screenshots and recording that work over RDP.

📹

Host webcam

View a USB / laptop camera beside the mirror — point it at the physical head unit. Works locally and over RDP, or drive a remote machine's camera over WinRM (no SSH); snapshot, record, rotate / flip.

📞

Telephony

Dial, place / answer / end calls, read the call log, list SMS, and compose a message — handy on IVI units with telephony.

🌐

Remote devices

No need to plug the device into your own machine. Point TurboADB at another PC's adb server and drive whatever is connected there — exactly what you want for a lab unit reached over RDP.

📡

Serve & deploy

Share this PC's devices with one command, or push serve onto remote Windows hosts from your machine over WinRM — one host or a whole fleet, with a pre-flight test. One click to stop sharing & remove auto-start again.

🔧

Root & mount

root / unroot, remount, mount -o remount,rw /, and disable/enable verity (with the required reboot handled) for engineering builds.

Bundled & self-updating

adb and scrcpy download themselves on first run. The Upgrade button updates TurboADB from PyPI, refreshes the tools, and restarts.

Install

Windows app (no Python)

Download the standalone GUI and double-click it. It downloads adb and scrcpy on first run.

⤓ Download turboadb-gui.exe

With pip (CLI + API + GUI)

pip install turboadb

Then run turboadb-gui, or use turboadb on the command line, or import turboadb in Python.

Three ways to use it

GUI

turboadb-gui

A desktop + Start-menu shortcut is created on first launch.

CLI

turboadb devices
turboadb -s SERIAL \
  shell -- getprop ro.product.model
turboadb -s SERIAL screenshot shot.png

Python

from turboadb import ADBHandler, ADBConfig

dev = ADBHandler(ADBConfig(serial="SERIAL"))
dev.connect()
dev.install("app.apk", grant_perms=True)

Remote & lab setups

Drive a device on another PC

turboadb devices --adb-host lab-pc-01
turboadb --adb-host lab-pc-01 -s DEVICE \
  shell -- pm list packages

The lab machine just needs to share its adb server.

Share / deploy that sharing

# on the host with the device:
turboadb serve --startup-task

# or push it to remote hosts from here:
turboadb deploy-serve lab-pc-01 lab-pc-02 \
  -u "DOMAIN\user"

Deploy uses WinRM (NTLM); each target needs WinRM on and admin rights.