Install
$ agentstack add skill-httprunner-skills-android-adb ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Android ADB
Reference for controlling Android devices with raw adb commands.
Execution Constraints
- Use
adb -swhenever more than one device is connected. - Confirm screen resolution before coordinate actions:
adb -s SERIAL shell wm size. - Ask for missing required inputs before executing (serial, package/activity, coordinates, APK path).
- Surface actionable stderr on failure (authorization, cable/network, tcpip state).
- Prefer ADB Keyboard broadcast for CJK and special character input when ADB Keyboard is installed.
Device And Server
# Start ADB server
adb start-server
# Stop ADB server
adb kill-server
# List devices
adb devices -l
# Target a specific device (use when multiple devices are online)
adb -s SERIAL
Wi-Fi Connection
# Enable tcpip (USB required first)
adb -s SERIAL tcpip 5555
# Get device IP
adb -s SERIAL shell ip route | grep src
# or
adb -s SERIAL shell ip addr show wlan0
# Connect over network
adb connect :5555
# Disconnect
adb disconnect :5555
Device State
# Screen size
adb -s SERIAL shell wm size
# Current foreground app (package/activity from mCurrentFocus)
adb -s SERIAL shell dumpsys window | grep -E 'mCurrentFocus|mFocusedApp'
# Get home launcher package (for back-home detection)
adb -s SERIAL shell cmd package resolve-activity --brief -c android.intent.category.HOME
# Raw shell command
adb -s SERIAL shell
App Lifecycle
# Verify package installed
adb -s SERIAL shell pm list packages | grep
# Launch by package (via monkey)
adb -s SERIAL shell monkey -p -c android.intent.category.LAUNCHER 1
# Launch by activity
adb -s SERIAL shell am start -W -n /
# Launch by URI/scheme
adb -s SERIAL shell am start -W -a android.intent.action.VIEW -d ""
# Force-stop
adb -s SERIAL shell am force-stop
Input Actions
# Tap
adb -s SERIAL shell input tap X Y
# Double tap (two taps with short delay)
adb -s SERIAL shell input tap X Y && sleep 0.1 && adb -s SERIAL shell input tap X Y
# Long press (swipe to same point with duration)
adb -s SERIAL shell input swipe X Y X Y 3000
# Swipe
adb -s SERIAL shell input swipe X1 Y1 X2 Y2 [duration_ms]
# Key event
adb -s SERIAL shell input keyevent KEYCODE_BACK
adb -s SERIAL shell input keyevent KEYCODE_HOME
adb -s SERIAL shell input keyevent KEYCODE_ENTER
# Return to home (press BACK repeatedly, check foreground against home launcher)
for i in $(seq 1 20); do
adb -s SERIAL shell input keyevent KEYCODE_BACK
sleep 0.5
# Check if home reached by comparing current focus to home package
CURRENT=$(adb -s SERIAL shell dumpsys window | grep mCurrentFocus)
echo "Round $i: $CURRENT"
done
Text Input
# Plain text input (ASCII only, spaces escaped as %s)
adb -s SERIAL shell input text "hello%sworld"
# Input via ADB Keyboard (supports CJK and special characters)
# First ensure ADB Keyboard is active:
adb -s SERIAL shell ime set com.android.adbkeyboard/.AdbIME
# Then send text (base64 encoded):
adb -s SERIAL shell am broadcast -a ADB_INPUT_B64 --es msg "$(echo -n 'your text' | base64)"
# Clear text via ADB Keyboard
adb -s SERIAL shell am broadcast -a ADB_CLEAR_TEXT
Screenshot And UI Tree
# Screenshot to local file
adb -s SERIAL exec-out screencap -p > screenshot.png
# Screenshot to device then pull
adb -s SERIAL shell screencap -p /sdcard/screen.png
adb -s SERIAL pull /sdcard/screen.png ./screen.png
# Dump UI hierarchy XML
adb -s SERIAL shell uiautomator dump /sdcard/window_dump.xml
adb -s SERIAL pull /sdcard/window_dump.xml ./window_dump.xml
App Install And Uninstall
# Install APK (replace existing)
adb -s SERIAL install -r /path/to/app.apk
# Uninstall
adb -s SERIAL uninstall
Common Keycodes
| Keycode | Description | |---------|-------------| | KEYCODE_BACK | Back button | | KEYCODE_HOME | Home button | | KEYCODE_ENTER | Enter/confirm | | KEYCODE_DEL | Delete/backspace | | KEYCODE_VOLUME_UP | Volume up | | KEYCODE_VOLUME_DOWN | Volume down | | KEYCODE_POWER | Power button | | KEYCODE_TAB | Tab key | | KEYCODE_ESCAPE | Escape key |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: httprunner
- Source: httprunner/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.