Atlas / Skills / android / Android Cli

Android CliSAFE

skills/android/android-cli
Verdict
SAFE
Grade
B
Trust score
89 /100
Version
—
Hosts
—
License
Apache-2.0
Stars
9,111
01

Overview

An agent skill published by android.

Read from source at commit 4732b4ae9d46OBSERVED · 2026-10-21
Advertisement
02

What 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 button
03

Trust 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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeNA
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (4)

INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
SKILL.md:33
- Linux x86-64: curl -fsSL https://dl.google.com/android/cli/latest/linux_x86_64/install.sh \| bash
INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
SKILL.md:34
- Linux ARM64: curl -fsSL https://dl.google.com/android/cli/latest/linux_arm64/install.sh \| bash
INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
SKILL.md:35
- Mac Arm: curl -fsSL https://dl.google.com/android/cli/latest/darwin_arm64/install.sh \| bash
INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
SKILL.md:36
- Mac Intel: curl -fsSL https://dl.google.com/android/cli/latest/darwin_x86_64/install.sh \| bash

Gates applied: no_behavioural_pass.

Audited 2026-10-21 · audit v0.4.1 · source sha 4732b4ae9d46full audit observations/trust-audit/skill/android__android-cli.json · Report an issue / request a re-scan
04

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-214732b4ae9d46SAFEB89first audit
05

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.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Android Cli](https://modelsatlas.com/skills/android/android-cli/badge.svg)](https://modelsatlas.com/skills/android/android-cli/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement