package android.emulation.control

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

service Adb

adb_service.proto:45

The ADB service enables you to interact with the running Adb service inside the emulator. This service is usually not available as it has the ability to retrieve the private adb key from the running image and make adb accessible if and only if: 1. The private key is available to the running emulator. 2. The public key corresponding the private key is embedded in the encrypted partition. This service is usually *ONLY* available to containerized emulators that are running with mutual authentication on the gRPC endpoint (that is SSL is enabled and a valid client certificate is required.).

service EmulatorController

emulator_controller.proto:46

An EmulatorController service lets you control the emulator. Note that this is currently an experimental feature, and that the service definition might change without notice. Use at your own risk! We use the following rough conventions: streamXXX --> streams values XXX (usually for emulator lifetime). Values are updated as soon as they become available. getXXX --> gets a single value XXX setXXX --> sets a single value XXX, does not returning state, these usually have an observable lasting side effect. sendXXX --> send a single event XXX, possibly returning state information. android usually responds to these events.

service Rtc

rtc_service.proto:41

An RTC service lets you interact with the emulator through WebRTC Note that this is currently an experimental feature, and that the service definition might change without notice. Use at your own risk! The following endpoints are needed to establish the webrtc protocol Due to limitiations in Javascript we cannot make use of bidirectional endpoints See this [blog](https://grpc.io/blog/state-of-grpc-web) for details.

service SnapshotService

snapshot_service.proto:56

The SnapshotService enables you to list, insert, store, and retrieve snapshots. Currently there are two types of snapshots: - Local (default): These are snapshots that are created locally. They are stored internally inside qcow2 files and are very efficient. These are the snapshots usually created by interacting with the UI. - Remote: These are snapshots that have been exported at a certain point. an exported snapshot is normalized (completely self contained) and can be imported into an emulator with a similar hardware configuration. Currently the emulator has limited support for importing snapshots: - Once an imported snapshot has been loaded into an emulator it is no longer possible to create new snapshots. - The hardware configuration of the emulator your are pushing a snapshot to must match (or be very similar) to the one you pulled the snapshot from. For example do not expect to be able to restore a snapshot on created on an Intel cpu on an AMD cpu.

service UiController

ui_controller_service.proto:24

message AndroidEvent

emulator_controller.proto:831

The android input event system is a framework for handling input from a variety of devices by generating events that describe changes in the state of the devices and forwarding them to user space applications. An AndroidEvents will be delivered directly to the kernel as is.

Used in: InputEvent

message AudioFormat

emulator_controller.proto:1113

Used as request type in: EmulatorController.streamAudio

Used as field type in: AudioPacket

enum AudioFormat.Channels

emulator_controller.proto:1119

Used in: AudioFormat

enum AudioFormat.DeliveryMode

emulator_controller.proto:1124

Used in: AudioFormat

enum AudioFormat.SampleFormat

emulator_controller.proto:1114

Used in: AudioFormat

message AudioPacket

emulator_controller.proto:1148

Used as request type in: EmulatorController.injectAudio

Used as response type in: EmulatorController.streamAudio

message BatteryState

emulator_controller.proto:891

Used as request type in: EmulatorController.setBattery

Used as response type in: EmulatorController.getBattery

enum BatteryState.BatteryCharger

emulator_controller.proto:900

Used in: BatteryState

enum BatteryState.BatteryHealth

emulator_controller.proto:907

Used in: BatteryState

enum BatteryState.BatteryStatus

emulator_controller.proto:892

Used in: BatteryState

message BootCompletedNotication

emulator_controller.proto:1320

Used in: Notification

message BrightnessValue

emulator_controller.proto:453

A single backlight brightness value.

Used as request type in: EmulatorController.getBrightness, EmulatorController.setBrightness

Used as response type in: EmulatorController.getBrightness

Used as field type in: Notification

enum BrightnessValue.LightType

emulator_controller.proto:454

Used in: BrightnessValue

message CameraNotification

emulator_controller.proto:1328

Fired when the virtual scene camera is activated or deactivated and also in response to the streamNotification call.

Used in: Notification

message ClipData

emulator_controller.proto:574

Representation of a clipped data object on the clipboard.

Used as request type in: EmulatorController.setClipboard

Used as response type in: EmulatorController.getClipboard, EmulatorController.streamClipboard

message DisplayConfiguration

emulator_controller.proto:1186

A DisplayConfiguration describes a primary or secondary display available to the emulator. The screen aspect ratio cannot be longer (or wider) than 21:9 (or 9:21). Screen sizes larger than 4k will be rejected. Common configurations (w x h) are: - 480p (480x720) 142 dpi - 720p (720x1280) 213 dpi - 1080p (1080x1920) 320 dpi - 4K (2160x3840) 320 dpi - 4K (2160x3840) 640 dpi (upscaled) The behavior of the virtual display depends on the flags that are provided to this method. By default, virtual displays are created to be private, non-presentation and unsecure.

Used in: DisplayConfigurations

enum DisplayConfiguration.DisplayFlags

emulator_controller.proto:1189

These are the set of known android flags and their respective values. you can combine the int values to (de)construct the flags field below.

message DisplayConfigurations

emulator_controller.proto:1275

Provides information about all the displays that can be attached to the emulator. The emulator will always have at least one display. The emulator usually has the following display configurations: 0: The default display. 1 - 3: User configurable displays. These can be added/removed. For example the standalone emulator allows you to modify these in the extended controls. 6 - 11: Fixed external displays. For example Android Auto uses fixed displays in this range.

Used as request type in: EmulatorController.setDisplayConfigurations

Used as response type in: EmulatorController.getDisplayConfigurations, EmulatorController.setDisplayConfigurations

Used as field type in: DisplayConfigurationsChangedNotification

message DisplayConfigurationsChangedNotification

emulator_controller.proto:1338

Fired when an update to a display event has been fired through the extended ui. This does not fire events when the display is changed through the console or the gRPC endpoint.

Used in: Notification

message DisplayMode

emulator_controller.proto:476

Used as request type in: EmulatorController.setDisplayMode

Used as response type in: EmulatorController.getDisplayMode

enum DisplayModeValue

emulator_controller.proto:469

in line with android/emulation/resizable_display_config.h

Used in: DisplayMode, ImageFormat

message Entry

emulator_controller.proto:1084

Used in: EntryList

message EntryList

emulator_controller.proto:1089

Used in: EmulatorStatus

message ExtendedControlsStatus

ui_controller_service.proto:61

Used as response type in: UiController.closeExtendedControls, UiController.showExtendedControls

message FoldedDisplay

emulator_controller.proto:948

The aspect ratio (width/height) will be different from the one where the device is unfolded.

Used in: ImageFormat

message GpsState

emulator_controller.proto:857

Used as request type in: EmulatorController.setGps

Used as response type in: EmulatorController.getGps

message Image

emulator_controller.proto:1013

Used as response type in: EmulatorController.getScreenshot, EmulatorController.streamScreenshot

message ImageFormat

emulator_controller.proto:959

Used as request type in: EmulatorController.getScreenshot, EmulatorController.streamScreenshot

Used as field type in: Image

enum ImageFormat.ImgFormat

emulator_controller.proto:960

Used in: ImageFormat

message ImageTransport

emulator_controller.proto:926

An ImageTransport allows for specifying a side channel for delivering image frames versus using the standard bytes array that is returned with the gRPC request.

Used in: ImageFormat

enum ImageTransport.TransportChannel

emulator_controller.proto:927

Used in: ImageTransport

message JsepMsg

rtc_service.proto:81

Used as request type in: Rtc.sendJsepMessage

Used as response type in: Rtc.receiveJsepMessage, Rtc.receiveJsepMessages

message KeyboardEvent

emulator_controller.proto:726

KeyboardEvent objects describe a user interaction with the keyboard; each event describes a single interaction between the user and a key (or combination of a key with modifier keys) on the keyboard. This follows the pattern as set by (javascript)[https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent] Note: that only keyCode, key, or text can be set and that the semantics will slightly vary.

Used as request type in: EmulatorController.sendKey

Used as field type in: InputEvent

enum KeyboardEvent.KeyCodeType

emulator_controller.proto:733

Code types that the emulator can receive. Note that the emulator will do its best to translate the code to an evdev value that will be send to the emulator. This translation is based on the chromium translation tables. See (this)[https://android.googlesource.com/platform/external/qemu/+/refs/heads/emu-master-dev/android/android-grpc/android/emulation/control/keyboard/keycode_converter_data.inc] for details on the translation.

Used in: KeyboardEvent

enum KeyboardEvent.KeyEventType

emulator_controller.proto:741

Used in: KeyboardEvent

message LogMessage

emulator_controller.proto:480

Used as request type in: EmulatorController.getLogcat, EmulatorController.streamLogcat

Used as response type in: EmulatorController.getLogcat, EmulatorController.streamLogcat

enum LogMessage.LogType

emulator_controller.proto:502

Used in: LogMessage

message LogcatEntry

emulator_controller.proto:509

A parsed logcat entry.

Used in: LogMessage

enum LogcatEntry.LogLevel

emulator_controller.proto:511

The possible log levels.

Used in: LogcatEntry

message MouseEvent

emulator_controller.proto:682

The MouseEvent interface represents events that occur due to the user interacting with a pointing device (such as a mouse).

Used as request type in: EmulatorController.sendMouse

Used as field type in: InputEvent

enum Notification.EventType

emulator_controller.proto:1293

Used in: Notification

enum PaneEntry.PaneIndex

ui_controller_service.proto:112

Used in: PaneEntry

message ParameterValue

emulator_controller.proto:312

Used in: PhysicalModelValue, SensorValue

message Pen

emulator_controller.proto:645

A Pen is similar to a touch, with the addition of button and rubber information.

Used in: PenEvent

message PenEvent

emulator_controller.proto:671

Used in: InputEvent

enum PhoneCall.Operation

emulator_controller.proto:1059

Used in: PhoneCall

message PhoneResponse

emulator_controller.proto:1072

Used as response type in: EmulatorController.sendPhone, EmulatorController.sendSms, EmulatorController.setPhoneNumber

enum PhoneResponse.Response

emulator_controller.proto:1073

Used in: PhoneResponse

message PhysicalModelValue

emulator_controller.proto:316

Used as request type in: EmulatorController.getPhysicalModel, EmulatorController.setPhysicalModel, EmulatorController.streamPhysicalModel

Used as response type in: EmulatorController.getPhysicalModel, EmulatorController.streamPhysicalModel

enum PhysicalModelValue.PhysicalType

emulator_controller.proto:328

Details on the sensors documentation can be found here: https://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ The types must follow the order defined in "external/qemu/android/hw-sensors.h"

Used in: PhysicalModelValue

enum PhysicalModelValue.State

emulator_controller.proto:317

Used in: PhysicalModelValue

message Posture

emulator_controller.proto:1356

Must follow the definition in "external/qemu/android/hw-sensors.h"

Used as request type in: EmulatorController.setPosture

Used as field type in: Notification

enum Posture.PostureValue

emulator_controller.proto:1357

Used in: Posture

message Rotation

emulator_controller.proto:1039

Used in: ImageFormat

enum Rotation.SkinRotation

emulator_controller.proto:1040

Used in: Rotation

message RtcId

rtc_service.proto:74

Used as request type in: Rtc.receiveJsepMessage, Rtc.receiveJsepMessages

Used as response type in: Rtc.requestRtcStream

Used as field type in: JsepMsg

message SensorValue

emulator_controller.proto:388

A single sensor value.

Used as request type in: EmulatorController.getSensor, EmulatorController.setSensor, EmulatorController.streamSensor

Used as response type in: EmulatorController.getSensor, EmulatorController.streamSensor

enum SensorValue.SensorType

emulator_controller.proto:398

These are the various sensors that can be available in an emulated devices.

Used in: SensorValue

enum SensorValue.State

emulator_controller.proto:389

Used in: SensorValue

message SnapshotDetails

snapshot_service.proto:256

Provides detailed information regarding the snapshot.

Used as response type in: SnapshotService.UpdateSnapshot

Used as field type in: SnapshotList

enum SnapshotDetails.LoadStatus

snapshot_service.proto:257

Used in: SnapshotDetails

enum SnapshotFilter.LoadStatus

snapshot_service.proto:243

Used in: SnapshotFilter

message SnapshotPackage

snapshot_service.proto:205

Sets options for SnapshotService. Used for both request and response messages.

Used as request type in: SnapshotService.DeleteSnapshot, SnapshotService.LoadSnapshot, SnapshotService.PullSnapshot, SnapshotService.PushSnapshot, SnapshotService.SaveSnapshot

Used as response type in: SnapshotService.DeleteSnapshot, SnapshotService.LoadSnapshot, SnapshotService.PullSnapshot, SnapshotService.PushSnapshot, SnapshotService.SaveSnapshot

enum SnapshotPackage.Format

snapshot_service.proto:206

Used in: SnapshotPackage

enum SnapshotScreenshotFile.Format

snapshot_service.proto:188

Used in: SnapshotScreenshotFile

message SocketControl

control_socket.proto:52

Used to communicate the socket state between a waterfall service running inside the emulator (guest) and a domain socket running on the host (emulator) The host does not have the abiliy to open direct connections, but can accept incoming connections. The protocol is as follows: - The first message on a channel from guest -> host is always a "SocketControl" message. - A channel that is identified with fd=0 is called the control channel. Only SocketControl messages are exchanged on this channel. For channel 0: - If the hosts sends an open message: - The guest should respond with a new connection, With the first message an identity message with the requested fd - If the hosts sends a close message: - The guest can close the connection with the given fd, no new messages will be send on the channel. (Be aware of out of order delivery, there still might be some leftover bytes) - If the guests sends a close message: - The host can close the connection with the given fd, no new messages will be send on the channel. (Be aware of out of order delivery, there still might be some leftover bytes) For a new connection the host usually will read the socket control message, and pass on the remaining bytes to whomever wants to consume them.

enum SocketControl.Sort

control_socket.proto:53

Used in: SocketControl

enum ThemingStyle.Style

ui_controller_service.proto:53

Used in: ThemingStyle

message Touch

emulator_controller.proto:582

The Touch interface represents a single contact point on a touch-sensitive device. The contact point is commonly a finger or stylus and the device may be a touchscreen or trackpad.

Used in: Pen, TouchEvent

enum Touch.EventExpiration

emulator_controller.proto:624

Used in: Touch

message TouchEvent

emulator_controller.proto:662

A TouchEvent contains a list of Touch objects that are in contact with the touch surface. Touch events are delivered in sequence as specified in the touchList. TouchEvents are delivered to the emulated devices using ["Protocol B"](https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt)

Used as request type in: EmulatorController.sendTouch

Used as field type in: InputEvent

message UserConfigEntry

ui_controller_service.proto:40

Used in: UserConfig

message VmConfiguration

emulator_controller.proto:539

Information about the hypervisor that is currently in use.

Used in: EmulatorStatus

enum VmConfiguration.VmHypervisorType

emulator_controller.proto:540

Used in: VmConfiguration

message VmRunState

emulator_controller.proto:269

A Run State that describes the state of the Virtual Machine.

Used as request type in: EmulatorController.setVmState

Used as response type in: EmulatorController.getVmState

enum VmRunState.RunState

emulator_controller.proto:270

Used in: VmRunState

message WheelEvent

emulator_controller.proto:702

Used as request type in: EmulatorController.injectWheel

Used as field type in: InputEvent

message WindowPosition

ui_controller_service.proto:79

The pixel coordinates are resolution independent, meaning the coordinates are independent from the pixel grid, resulting in a graphical user interface that is displayed at a consistent location, regardless of the resolution of the screen. For technical details: https://doc.qt.io/qt-5/highdpi.html Some things to note: - You cannot move a window offscreen. - There is a padding of around 10px around the frame. This means that moving to (0, 0) or (10, 10) will have the same result. This means that anchoring might not exactly behave as requested.

Used in: PaneEntry

enum WindowPosition.HorizontalAnchor

ui_controller_service.proto:81

Anchor that is used to determine horizontal window placement.

Used in: WindowPosition

enum WindowPosition.VerticalAnchor

ui_controller_service.proto:91

Anchor that is used to determine vertical window placement.

Used in: WindowPosition