Remote ADB

Remote ADB on a real Android phone. Not an emulator, not a mock.

adb was designed for a phone on the end of a USB cable. DeviceRent puts a real Pixel 7a on the far end of that cable from wherever you are — a live shell in a browser tab in seconds, or a local adb device your existing Appium, Espresso and gradle setup talks to unchanged.

The mechanism

What is actually between your keyboard and the phone.

There are two ways in, and they are different products. Neither one asks you to open a port, run a VPN, or put a phone on the public internet.

A browser session
Sign in, rent a device, and you get a live H.264 mirror, a real shell and real logcat in the tab. Nothing to install. Live sessions need a Chromium-based browser — Chrome, Edge, Brave or Opera.
A local adb device
On a paid plan, npx devicerent-connect runs a small adb-server on your machine and tunnels each adb conversation through to the rented phone. Point ANDROID_ADB_SERVER_PORT at it and your toolchain cannot tell the difference.
Serial-pinned tokens
An automation API key is exchanged for a short-lived token scoped to a single device serial. A ticket issued for one phone cannot address another one in the rack.
No tailnet on your side
You do not join our network and we do not join yours. The tunnel terminates at our bridge, which is the only thing holding a USB connection to the phone.
Warm, not cold-booted
Devices stay powered and connected, with a heartbeat every five seconds. Reserving one puts you in a shell rather than starting a boot you have to sit through.
Wiped between renters
A device is not rentable again until a real wipe has been reported, and the check is fail-closed: no wipe record on file, no next rental.
Why not the usual workarounds

The three things people try first, and where each one stops.

Every team that needs a phone somewhere else reaches for one of these. They all work, right up until they do not.

adb tcpip plus a tunnel
Fine for one phone on your own desk. It puts an unauthenticated adb daemon behind whatever the tunnel is worth, and none of it survives the phone rebooting onto a different address.
USB/IP or a spare laptop
Now you own the phone, the host, the power, the wifi and the wipe policy. That is a device lab, and running one is a real job — the point of renting is that it is our job.
Self-hosted STF or DeviceFarmer
Still the right answer if you need root, custom ROMs, or hardware you have modified yourself. It is a poor answer if what you wanted was one phone for forty minutes.
What it costs

€0.10 a minute, and €10 to start with.

The list rate is €0.10 per device-minute, billed for the minutes you actually hold a device. Signing up and confirming your email puts €10 of starter credit in the wallet with no card required — 100 minutes on real hardware before you have to decide anything. Paid plans cut the per-minute rate, and a dedicated slot turns the meter off entirely.

Read this before you sign up

Where this is the wrong tool, said plainly.

The rack is six Pixel 7a. If your work needs one of the things below, something else will serve you better, and we would rather you knew now than after a signup.

  • Root, Magisk, Xposed, or anything else that needs su. Every phone runs a locked bootloader with verified boot enforcing and carries no su binary.
  • iOS. There is none, and none is planned.
  • Web or browser-matrix testing. This is device hardware, not a Selenium grid.
  • A forty-device model matrix before every release. Six identical Pixel 7a will not cover that; a large device cloud will.
  • Safari, iPhone or iPad as the machine you drive from. Renting is disabled there until we can verify a session on real Apple hardware.
  • adb reverse. The bridge does not carry it today.

Questions

Can I point my own adb client at the phone?
Yes, on a paid plan. devicerent-connect runs a local adb-server on your machine and tunnels each connection through to the device, so adb devices, Appium, Espresso and gradle all work against it unchanged. What you are not handed is a raw adb tcpip endpoint on the open internet.
Do I need Tailscale, a VPN, or any network setup?
No. Tailscale is how our own bridge reaches the rack; it is not something you install or join. If you have read otherwise anywhere, that described a design we prototyped and did not ship.
Is it genuinely a physical phone?
Yes, and there is no fallback that pretends otherwise. A simulated-session mode used to exist and was removed in September 2026 after it let a live rental swap to a fake screen while still billing. If a real device is not available now, the rental fails instead.
What happens to my data when the session ends?
The device is wiped before anyone else can rent it, and every wipe is recorded in an append-only evidence trail. A phone with no wipe on file is not offered to the next renter.
Does this work in CI?
Yes. The connector ships as an npm package and a Docker image, takes an API key and a rental id from environment variables, and needs no Node on the host if you use the image. Automation keys require an active paid plan.