← 返回 Skills 市场
cwener

Android Adb

作者 cwener · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ suspicious
97
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install android-adb-2
功能描述
Execute Android ADB (Android Debug Bridge) commands for device management, app management, debugging, and automation. Use when the user requests any ADB-rela...
使用说明 (SKILL.md)

Android ADB

Execute ADB commands via natural language or direct command input, with multi-device support, safety guardrails, and sandboxed ADB installation.

Workflow

  1. List devices: Directly run adb devices -l. If the command fails (command not found), go to ADB Resolution to find or install adb, then retry.
  2. Select device: If multiple devices connected, list them and ask user to choose. Prepend -s \x3Cserial> to all subsequent commands.
  3. Translate request to ADB command(s): Map the user's intent to appropriate ADB commands. See references/adb-commands.md for the full command reference.
  4. Safety check: If the command is destructive (see Dangerous Operations), show the command and ask for confirmation before executing.
  5. Execute and report: Run the command, parse output, and present results clearly.

ADB Resolution

When adb is not found, resolve using scripts/adb_env.sh which checks in order: system PATH → common SDK paths (~/Library/Android/sdk/, ~/Android/Sdk/) → sandbox local (\x3Cskill_dir>/tools/platform-tools/adb).

If none found, ask the user: "ADB 未安装,是否需要我帮你安装到 skill 本地目录?(不影响系统配置)"

If agreed, run bash \x3Cskill_dir>/scripts/install_adb.sh (no sudo, no PATH modification, uninstall via rm -rf \x3Cskill_dir>/tools/).

Multi-Device Handling

When adb devices -l returns multiple devices:

  1. Display a numbered list with serial, model, and Android version
  2. Ask the user to pick one (or "all" for broadcast)
  3. Store the chosen serial and use -s \x3Cserial> for all commands in the session
  4. Run bash scripts/device_check.sh in the skill directory for a quick overview

Safety Levels

Level Behavior Examples
Safe Execute directly adb devices, logcat, screencap, getprop, pull, file listing
Moderate Show command, then execute install, push, am start, input tap, pm grant
Dangerous Show command, explain risk, require explicit "yes" pm clear, uninstall, factory reset, flash, wipe, reboot

Quick Tasks

Device Info

bash \x3Cskill_dir>/scripts/device_check.sh

Screenshot

bash \x3Cskill_dir>/scripts/screenshot.sh [output_dir] [serial]

Logcat Capture

bash \x3Cskill_dir>/scripts/logcat_capture.sh all [output_file] [serial]
bash \x3Cskill_dir>/scripts/logcat_capture.sh crash [output_file] [serial]
bash \x3Cskill_dir>/scripts/logcat_capture.sh app \x3Cpackage> [output_file] [serial]
bash \x3Cskill_dir>/scripts/logcat_capture.sh tag \x3CTAG> [output_file] [serial]

Long Output Rule

When the user requests any long-running or verbose log output (logcat streaming, dropbox dump, dumpsys, large trace output, etc.), unless the user explicitly specifies an output file, always open a new system terminal window to display the output. This gives the user a scrollable, stoppable, dedicated view without blocking the conversation.

Only write to file when the user explicitly says "保存到文件" / "输出到 xxx.txt" / provides a file path.

macOS

osascript -e 'tell app "Terminal" to do script "\x3Cadb_logcat_command>"'

Linux (common DEs)

# GNOME
gnome-terminal -- bash -c '\x3Cadb_logcat_command>; exec bash'
# KDE
konsole -e bash -c '\x3Cadb_logcat_command>; exec bash'
# Fallback
x-terminal-emulator -e bash -c '\x3Cadb_logcat_command>; exec bash'

Replace \x3Cadb_logcat_command> with the actual command, e.g.:

  • adb logcat — all logs
  • adb logcat | grep -i "redirect" --line-buffered — filter by keyword
  • adb logcat -s MyTag:D — filter by tag
  • adb logcat --pid=$(adb shell pidof com.example.app) — filter by app

zsh compatibility

zsh treats * as a glob wildcard. When the command contains * (e.g. Tag:*), escape it in the osascript string:

# Wrong — zsh expands *
osascript -e 'tell app "Terminal" to do script "adb logcat -s MyTag:*"'
# Correct — escape the *
osascript -e 'tell app "Terminal" to do script "adb logcat -s MyTag:\\*"'

After launching, report to the user that the terminal window has been opened and what command is running.

Common Scenarios

"Install this APK"

adb install -r \x3Cpath.apk>

If install fails, check: device storage (adb shell df -h), existing app version, test package flag (-t).

"Show me crash logs"

Two-level fallback:

  1. logcat crash buffer (first try):
adb logcat -b crash -d | grep \x3Cpackage>
  1. dropbox (fallback if crash buffer is empty):

⚠️ 强制规则:严禁主动挑选 dropbox 条目。必须先列出所有条目,等用户选择后再输出内容。绝不允许跳过用户选择步骤。

Step 1 — 列出 dropbox 中所有 crash/anr 条目及其时间戳,供用户选择:

adb shell dumpsys dropbox | grep -E "^[0-9].*(_crash|_anr)" 

输出示例:

2026-04-09 11:04:34  data_app_anr (compressed text, 23807 bytes)
    Process: com.netease.cloudmusic:play/PID: 2553 ...
2026-04-09 10:23:45  data_app_crash (text, 1234 bytes)
    Process: com.example.app/PID: 1234 ...

Step 2 — 将列表完整呈现给用户(包含完整日期时间、类型、进程信息),然后必须等待用户明确选择要查看哪一条。严禁自行判断、自动选择最近一条或任何一条。

Step 3 — 用户选择后,打开新终端窗口展示对应条目:

# 使用用户选择的条目的时间戳
adb shell dumpsys dropbox --print '\x3Ctag>' --since \x3Ctimestamp_ms>

"Dump UI hierarchy"

Two-level fallback:

  1. uiautomator dump (first try):
adb shell uiautomator dump /sdcard/ui_dump.xml
adb pull /sdcard/ui_dump.xml \x3Clocal_path>
adb shell rm /sdcard/ui_dump.xml
  1. dumpsys activity top (fallback — some devices like Huawei may report could not get idle state):
adb shell dumpsys activity top -a > \x3Clocal_path>

This outputs a text-based View Hierarchy instead of XML, but contains equivalent structural info.

"Screen recording"

adb shell screenrecord /sdcard/recording.mp4              # default max 180s
adb shell screenrecord --time-limit 30 /sdcard/recording.mp4  # limit to 30s
# Ctrl+C to stop, then pull:
adb pull /sdcard/recording.mp4 \x3Clocal_path>
adb shell rm /sdcard/recording.mp4

"Which app is in the foreground?"

adb shell dumpsys activity activities | grep mResumedActivity

"App performance check"

adb shell dumpsys meminfo \x3Cpackage>
adb shell dumpsys gfxinfo \x3Cpackage>
adb shell dumpsys cpuinfo | grep \x3Cpackage>

"Connect via WiFi"

adb tcpip 5555
# Note the device IP from:
adb shell ip route | grep wlan
adb connect \x3Cip>:5555

Dangerous Operations

Always confirm before executing any of:

  • pm clear — wipes app data permanently
  • uninstall — removes app
  • rm -rf — deletes files/directories
  • reboot / reboot recovery / reboot bootloader
  • factory reset / wipe_data
  • fastboot flash — overwrites partitions
  • pm disable-user — disables system apps
  • settings put — modifies system/secure/global settings
  • setprop — changes system properties
  • su / adb root — elevates to root privileges
  • sideload — flashes OTA packages
  • Any command with --user 0 on system packages

Present the exact command and a one-line risk description, then wait for explicit confirmation.

Troubleshooting

Issue Fix
device not found Check USB cable, enable USB debugging in Developer Options
device unauthorized Accept RSA key prompt on device, or adb kill-server && adb start-server
multiple devices Use -s \x3Cserial>
INSTALL_FAILED_* Check error suffix — common: ALREADY_EXISTS (use -r), INSUFFICIENT_STORAGE, OLDER_SDK
Permission denied Try adb root or run-as \x3Cpackage>
Command hangs Ctrl+C, then adb kill-server && adb start-server

Reference

For the full ADB command cheat sheet organized by category, see references/adb-commands.md.

安全使用建议
This skill appears coherent for running ADB commands. Before installing or running it, note: (1) it can download and extract Android platform-tools into the skill's tools/ directory (from dl.google.com); review or refuse that install if you prefer to use a system adb. (2) ADB can perform destructive operations (factory reset, uninstall, pm clear, fastboot/flash); the skill requires explicit confirmation for flagged dangerous commands, but you should still confirm each destructive action. (3) The skill may open local terminal windows to display long-running logs—this requires GUI access and may behave oddly on headless servers. If you need stricter isolation, run commands manually or ensure the skill uses only your preinstalled adb binary.
功能分析
Type: OpenClaw Skill Name: android-adb-2 Version: 0.1.0 The skill is classified as suspicious due to high-risk execution patterns that create a significant surface for host-side command injection. Specifically, SKILL.md instructs the agent to spawn new terminal windows using osascript (macOS) or gnome-terminal/konsole (Linux) to display logs, which involves executing shell commands on the host that could be manipulated by user input. Additionally, scripts/logcat_capture.sh uses 'eval' to execute constructed command strings, further increasing the risk of arbitrary code execution on the host machine if input is not perfectly sanitized by the AI agent.
能力标签
crypto
能力评估
Purpose & Capability
Name/description match observed behavior: all required actions (device listing, install/uninstall, logcat, screenshots, push/pull, etc.) are implemented in the included reference and scripts. No unrelated credentials, binaries, or config paths are requested.
Instruction Scope
Instructions map user intents to concrete ADB commands and included scripts; dangerous ADB operations are flagged and require explicit confirmation. Notable behavior: the runtime rules instruct opening new system terminal windows for long outputs (macOS/Linux commands provided), which is within purpose but interacts with the user's GUI environment and may be surprising in headless contexts.
Install Mechanism
The skill includes an install_adb.sh that downloads platform-tools from dl.google.com and extracts them into the skill's tools/ directory (no sudo, no PATH modification). The download source is the official Google host (expected), but the installer writes extracted binaries into disk under the skill directory—this is reasonable for an ADB helper but is a non-trivial filesystem action to be aware of.
Credentials
The skill requests no environment variables or external credentials. Scripts only seek local adb binaries (system SDK locations or the skill-local sandbox). There are no requests for unrelated secrets or config paths.
Persistence & Privilege
always is false and the skill does not modify system PATH or other skills' configurations. It can install platform-tools under the skill directory (user-removable) and open terminal windows to show output—both are scoped to this skill and justified by its purpose.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install android-adb-2
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /android-adb-2 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
- Initial release of android-adb skill for managing and debugging Android devices via ADB commands. - Supports natural language and direct command input for device/app management, debugging, automation, file transfer, performance profiling, and more. - Automatic ADB installation and resolution if not found, with safe sandboxing that does not alter system configurations. - Multi-device support with interactive device selection and session handling. - Implements safety guardrails with command risk levels (safe, moderate, dangerous) and explicit confirmation for risky operations. - Handles verbose log output by launching a new terminal window, ensuring non-blocking user experience. - Includes quick tasks, fallback strategies for common troubleshooting (crash log, UI dump), and robust command mapping.
元数据
Slug android-adb-2
版本 0.1.0
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Android Adb 是什么?

Execute Android ADB (Android Debug Bridge) commands for device management, app management, debugging, and automation. Use when the user requests any ADB-rela... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 97 次。

如何安装 Android Adb?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install android-adb-2」即可一键安装,无需额外配置。

Android Adb 是免费的吗?

是的,Android Adb 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Android Adb 支持哪些平台?

Android Adb 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Android Adb?

由 cwener(@cwener)开发并维护,当前版本 v0.1.0。

💬 留言讨论