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.
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
| Goal | Use |
|---|---|
| Manually test the UI | WebRTC screen in the portal |
| Debug, install APKs, scripting | ADB |
| Simulate vehicle conditions | VHAL |
| Watch what the device is doing | Logs |
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
runningand that you are authenticated (nullctl get whoami). - No logs appear: the device may still be booting. Logs begin once the container is up.