dab-cli 0.5.0

Android package manager CLI tool
<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