Android CliSAFE
Overview
An agent skill published by android.
4732b4ae9d46OBSERVED · 2026-10-21What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
---
name: android-cli
description: Provides instructions for installing and using the `android` CLI. The
`android` command-line tool is a critical tool for Android development and helps
you create new Android projects, install APKs onto devices and emulators and launch
and run apps on them, manage and interact with Android virtual devices (including
screenshots and UI inspection), manage Android SDK components, look up official
Android documentation, and discover and install official Android skills.
license: Complete terms in LICENSE.txt
metadata:
author: Google LLC
last-updated: '2026-10-16'
keywords:
- android-cli
- sdk
- emulator
- skills
- docs
- knowledge base
- project creation
- screenshots
---
This skill provides instructions for using the `android` CLI tool. The tool
includes various commands for creating projects, running applications,
interacting with devices, and managing the CLI environment.
## Installation
If the android tool is not in the path, install it. To install run the following
command:
- Linux x86-64: curl -fsSL https://dl.google.com/android/cli/latest/linux_x86_64/install.sh \| bash
- Linux ARM64: curl -fsSL https://dl.google.com/android/cli/latest/linux_arm64/install.sh \| bash
- Mac Arm: curl -fsSL https://dl.google.com/android/cli/latest/darwin_arm64/install.sh \| bash
- Mac Intel: curl -fsSL https://dl.google.com/android/cli/latest/darwin_x86_64/install.sh \| bash
- Windows: curl -fsSL https://dl.google.com/android/cli/latest/windows_x86_64/install.cmd -o "%TEMP%\\i.cmd" \&\& "%TEMP%\\i.cmd"
## SDK management
To manage the installation of Android SDKs and tools, use the `sdk` command.
For example:
- `android sdk install <package>[@<version>]...`: Install specific packages. Multiple packages can be specified, separated by spaces. `<version>` defaults to latest. For example: `android sdk install platforms/android-30@2
platforms/android-34`
- `android sdk update [<pkg-name>]`: Update a specific package or all packages to the latest version.
- `android sdk remove <pkg-name>`: Remove a package from the local SDK.
- `android sdk list --all`: List installed and available SDK packages.
## Project creation
Create projects from templates using the `create` command.
For example: `android create empty-activity --name="My App" --output=./my-app`
## Interacting with Android devices
Use the `android layout` command to inspect the UI layout of an Android
application in JSON format. Use the `android screen` command to visually inspect
the UI and obtain bounding coordinates for visual regions.
`android layout` dumps the UI as JSON. `android screen capture -o <file path>` saves a PNG.
Both auto-select the device when only one is connected.
### UI Dump
`android layout` returns a JSON tree of the UI elements on screen.
Each JSON object represents a UI element in the Android app. The following properties may be present:
- `text` - any literal text the element contains
- `resource-id` - the Android resource id used to refer to the element
- `content-desc` - a description of a UI element for use by accessibility tools
- `interactions` - the set of user interactions the element supports. May contain one or more of: `CHECKABLE`, `CLICKABLE`, `FOCUSABLE`, `SCROLLABLE`, `LONG-CLICKABLE`, `PASSWORD`
- `state` - the set of states the element is in. May contain one or more of `CHECKED`, `FOCUSED`, `SELECTED`
- `bounds` - the screen coordinates of the bounding rectangle of the element, in the format `[min X,min Y][max X, max Y]`
- `center` - the screen coordinates of the center of the element, in the format `[x,y]`
- `off-screen` - if true, the element is in the UI hierarchy but not within the bounds of the screen; it may require scrolling to view.
- `hidden` - if true, the element is in the UI hierarchy but not visible or interactive on screen.
Use `layout` as a primary means of examining an Android app.
By default, `layout` only returns elements that have content or are interactive:
- elements with non-empty `text` or `contentDesc` properties
- elements with non-empty `interactions` or `state`
To return all elements, use the `--full` flag
If `layout` continues to fail, use `android screen capture --annotate` to inspect the app.
### Screenshot
`android screen capture -o <file path>` saves a PNG of the current device screen to `<file path>`
Use `screen capture` as a secondary means of examining an Android app
Examples:
- Understanding the content of an on-screen image
- Looking at a `WebView` (web content does not always appear in the ui dump)
- Trying to find a UI element by its visual appearance
**IMPORTANT** : Always *VISUALLY* examine the PNG image returned from `android screen` BEFORE doing anything else.
### Annotated Screenshot
`android screen capture --annotate -o <file path>`
`android screen resolve --screenshot <path> --string <string>`
The `--annotate` command adds numerical labels and bounding boxes around UI elements. Use this command to locate UI elements that cannot
be located in the `layout` output.
**IMPORTANT** : When using `android screen capture --annotate`, always *VISUALLY* examine the resulting PNG file.
To refer to these labels in input commands, use `screen resolve` to convert labels into coordinates:
`android screen resolve --screenshot <file path> --string "#3"` returns `<x coord of region 3> <y coord of region 3>`
To save turns, you can combine shell commands:
`adb shell input $(android screen resolve --screenshot screen.png --string "tap #34")`
This command taps on region #34 from `screen.png`
### Input
Use `adb shell input` for interacting with Android devices.
Refer to the `"interactions"` property of an element for what interactions can be performed on a particular element.
Interact with UI elements with their `center` coordinate or their `bounds` coordinates:
`json
{
"key": -248568265,
"class": "android.widget.Button",
"bounds": "[138,9][167,38]",
"center": "[152,23]"
}`
To tap on this buttonTrust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (4)
- Linux x86-64: curl -fsSL https://dl.google.com/android/cli/latest/linux_x86_64/install.sh \| bash
- Linux ARM64: curl -fsSL https://dl.google.com/android/cli/latest/linux_arm64/install.sh \| bash
- Mac Arm: curl -fsSL https://dl.google.com/android/cli/latest/darwin_arm64/install.sh \| bash
- Mac Intel: curl -fsSL https://dl.google.com/android/cli/latest/darwin_x86_64/install.sh \| bash
Gates applied: no_behavioural_pass.
4732b4ae9d46full audit observations/trust-audit/skill/android__android-cli.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-21 | 4732b4ae9d46 | SAFE | B | 89 | first audit |
Questions
Is android-cli — android/skills safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can android-cli — android/skills access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (4732b4ae9d46), read on 2026-10-21. The repository is watched, and a new audit runs when it changes — this is the first audit.
Add this badge to your README
Shows this page's audit result and links back to it. It updates when the audit does.
[](https://modelsatlas.com/skills/android/android-cli/)
Not your listing, or something out of date? Claim or update your listing.