Skill detail

developer-device-platform-basics

>- Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP). Use when reserving remote Android devices, establishing connection tunnels, checking session status, or extending/cancelling leases. Don't use for iOS or local device/hardware inquiries.

Why we recommend it: Guides managing remote Android devices on Google's Developer Device Platform: reserving devices, connection tunnels, session status, and lease management.

MatchPossibleRecommended for Developers
Sourcegoogle/​skillsExternal source
Reported installsNot reportedPopularity signal only

Inspect before use

Read the source instructions and check the requirements before you install this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.

---
name: developer-device-platform-basics
description: >-
  Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP).
  Use when reserving remote Android devices, establishing connection tunnels, checking session status, or extending/cancelling leases.
  Don't use for iOS or local device/hardware inquiries.
metadata:
  category: CloudInfrastructureAndServices
---

# Developer Device Platform

Developer Device Platform (DDP) is a Google fully managed, global infrastructure
providing access to a wide variety of physical and virtual devices.

> [!WARNING] Developer Device Platform (DDP) is currently at Preview.

> [!IMPORTANT] For all devicerun and devicestreaming API operations (reserving,
> status checking, stopping/canceling, updating, or listing a session), always
> verify and use the exact instructions and curl commands provided in the linked
> reference `.md` files.

## Authentication & Setup

**CRITICAL**: Before running any requests, you MUST ensure the environment is
correctly initialized by following these steps:

Before running any requests, verify if the `gcloud` executable is present. If
missing, refer to the official
[Google Cloud CLI Installation Guide](https://docs.cloud.google.com/sdk/docs/install-sdk.md.txt)
to install it on the current platform (Linux, macOS, Windows, etc.).

1.  **Google Cloud Authentication**: Authenticate with your Google Cloud
    credentials and configure active Application Default Credentials (ADC) for
    the Developer Device Platform:

    ```bash
    gcloud auth login --no-browser
    gcloud auth application-default login --no-browser
    ```

2.  **Enable APIs** (if not already enabled):

    ```bash
    gcloud services enable devicerun.googleapis.com devicestreaming.googleapis.com testing.googleapis.com --quiet
    ```

> [!NOTE] Cloud Testing API is needed for Device Streaming API during Preview.

3.  **Enable gcloud beta component**:

    ```bash
    gcloud components install beta
    ```

4.  **Setup Environment Variables**: Set up the required project variable and
    access token:

    ```bash
    export PROJECT_ID=$(gcloud config get project)
    export ACCESS_TOKEN=$(gcloud auth application-default print-access-token 2>/dev/null)
    ```

5.  **Python Environment**: For instructions on setting up the python virtual
    environment, see [start_adb_forwarder.md].

## Listing Available Devices

To find the correct `modelCode` and `osVersion` to use when starting a session,
you can list the available devices:

1.  **List Models**: Run the following command to list available Android device
    models:

    ```bash
    gcloud beta device-run devices list
    ```

    Use the `ID` column to find the value for the `CATALOG_ID` parameter to
    describe a specific device (e.g., `shiba-36`).

2.  **Describe a Model**: Run the API request to get more details about a
    specific model (e.g., supportedProducts, resolution). Always rely on the
    exact curl command and instructions provided in [describe_device.md].

## Starting a Device Session

When the user asks to reserve or connect to a device:

1.  **Check Device Availability**:

    Look up `CATALOG_ID` of the device using `Listing Available Devices`
    instructions. Check the device availability of the `CATALOG_ID` by using the
    exact curl command and instructions provided in [describe_device.md]. The
    device MUST contain "deviceStreaming" in "supportedProducts" to be reserved.

    If no specific device is specified, use `CATALOG_ID=shiba-34` (Pixel 8 on
    SDK 34).

    If `OS_VERSION` was not specified by the user, ask the user to select a
    version from the device list (preferring the version with the highest
    availability {"available": "AVAILABILITY_HIGH" }).

    If `OS_VERSION` is unavailable for `deviceStreaming`, do not reserve one.
    Prompt the user for an alternative `OS_VERSION`.

2.  **Extract Parameters**:

    *   `model_id`: `modelCode` from device details. Req
Read the full source on GitHub (opens external page)
Context

Related work