<div align="center">
# dab - Droid Automation Box ๐ฆ๐ค
<p>
<a href="https://crates.io/crates/dab-cli"><img src="https://img.shields.io/crates/v/dab-cli.svg" alt="crates.io version" /></a>
<a href="https://crates.io/crates/dab-cli"><img src="https://img.shields.io/crates/d/dab-cli.svg" alt="crates.io downloads" /></a>
<a href="https://crates.io/crates/dab-cli"><img src="https://img.shields.io/crates/l/dab-cli.svg" alt="license" /></a>
</p>
<p>
A fast, interactive command-line tool for automating and managing your Android device from your computer.
</p>
<img src="extras/t-rec.gif" alt="demo" width="100%" />
</div>
## Features
- ๐ **Open** installed apps
- ๐๏ธ **Uninstall** apps you don't need
- ๐งน **Clear** app data and cache
- ๐ **Force kill** stubborn apps
- ๐ฆ **Download APK** files
- ๐ฒ **Install APK/XAPK/APKM** files from your computer
- ๐ **Show app info** (version, use `--all` for permissions)
- ๐ **Analyze local APK/XAPK/APKM** files without installation
- ๐ก๏ธ **Grant or revoke app permissions** (multi-select from known permissions)
- ๐ค **Show device info** (model, Android version, etc)
- ๐ **Show network info** (IP, WiFi, etc)
- ๐ฉบ **Device Health Check** (battery, storage, RAM, network)
- ๐ถ **Enable ADB over Wi-Fi** (connect wirelessly to your device)
- ๐ **Switch ADB back to USB mode** (revert to cable connection)
- ๐ธ **Take screenshots**
- ๐ฅ **Record screen**
- ๐ **Searchable app selection** (find your app in a snap)
- ๐ **Launch** URLs or deep links in your Android device (open YouTube, browser, or any app via deep link)
## Usage
Run the interactive UI:
```bash
dab
```
Or use direct commands:
```bash
# ๐ Open an app
dab open
# ๐๏ธ Uninstall an app
dab uninstall
# ๐งน Clear app data
dab clear
# ๐ Force kill an app
dab force-kill
# ๐ฆ Download APK (optionally specify output path)
dab download
dab download --output /path/to/save.apk
# ๐ฒ Install APK, XAPK, or APKM file
dab install /path/to/app.apk
dab install /path/to/app.xapk
dab install /path/to/app.apkm
# ๐ Analyze local APK, XAPK, or APKM file (no device needed)
dab info /path/to/app.apk
dab info /path/to/app.xapk
dab info /path/to/app.apkm
# ๐ Show app info
dab app-info
dab app-info --all # include permissions (-a)
# ๐ก๏ธ Grant permissions to an app (multi-select)
dab grant
# ๐ก๏ธ Revoke permissions from an app (multi-select)
dab revoke
# ๐ค Show device info
dab device
# ๐ Show network info
dab network
# ๐ธ Take a screenshot
dab screenshot --output /path/to/screen.png
# ๐ฅ Record the screen
dab record --output /path/to/demo.mp4
# ๐ถ Enable ADB over Wi-Fi (no more cables!)
dab wifi
# ๐ Switch ADB back to USB mode
dab usb
# ๐ฉบ Device Health Check (battery, storage, RAM, network)
dab health
# ๐ Launch a URL or deep link
dab launch <URL>
```
Example:
```sh
$ dab launch https://cesarferreira.com # URL that opens in your default browser
$ dab launch recipes://recipe/12345 # DEEP LINK to the "recipes app"
$ dab launch https://www.youtube.com/watch?v=dQw4w9WgXcQ # opens youtube
$ dab launch wathever you want # urls that deep link, apps, wathever
```
## Requirements
- [Rust](https://www.rust-lang.org/tools/install) (1.70+ recommended)
- [ADB (Android Debug Bridge)](https://developer.android.com/tools/adb) in your PATH
- An Android device or emulator with USB debugging enabled
## Installation ๐ฅ
### From crates.io
```bash
cargo install dab-cli
```
### From Source
```bash
# Clone the repository
git clone https://github.com/cesarferreira/dab.git
cd dab
# Build and install
cargo install --path .
```
## License
MIT