Skip to main content

Connecting to Emulators

A running emulator offers several ways to connect, each suited to a different task. This guide explains each channel and how to use it.

Screen & input (WebRTC)

The richest way to use a device is interactively in your browser. Open an emulator in the portal and it establishes a WebRTC connection:

  • The device screen streams as live video.
  • Your mouse, touch, and keyboard are sent back to the device.
  • Multiple displays (for example center stack and instrument cluster) render where the image provides them.
  • Device controls let you rotate, use the microphone, and simulate Bluetooth and GPS.

Media is relayed through a secure gateway, so connections work even on restrictive corporate networks, and the device is never directly exposed to the public internet.

Pop-out mode

You can pop an emulator out into its own browser window to keep the device on a second monitor while you work.

ADB (Android Debug Bridge)

For debugging and automation, connect adb to the device.

In the browser: use the ADB panel inside the emulator view to run commands and see output. The panel is already a shell on the device, so run commands directly — logcat, pm list packages — without the adb prefix you'd use from a terminal.

From your terminal:

nullctl adb connect <emulator-id>

This authenticates you, opens a secure proxy from your machine to the cloud device, and exposes adb on a local port. Then use adb as normal:

adb shell
adb logcat
adb install app.apk

Behind the scenes, ADB traffic is carried over an authenticated proxy through the control plane, so there is no open device port on the internet.

Vehicle HAL (VHAL)

Because these are Android Automotive devices, you can read and write vehicle properties such as speed, gear, fuel and battery, HVAC, and doors. Use the VHAL inspector in the portal, or drive it programmatically over gRPC. See the dedicated Working with VHAL guide.

Logs

Stream the emulator's logs in real time from the Logs panel in the portal, or over the API as a Server-Sent Events stream (GET /api/v1/emulators/{id}/logs). Options let you follow live output, include timestamps, or view a previous container's logs after a restart.

Choosing a channel

GoalUse
Manually test the UIWebRTC screen in the portal
Debug, install APKs, scriptingADB
Simulate vehicle conditionsVHAL
Watch what the device is doingLogs

Troubleshooting

  • Screen will not connect: ensure your browser allows WebRTC. Corporate VPNs occasionally block the underlying traffic, though the secure relay is designed to handle this.
  • ADB connect fails: confirm the emulator status is running and that you are authenticated (nullctl get whoami).
  • No logs appear: the device may still be booting. Logs begin once the container is up.