adb shell, adb install, Appium, uiautomator2, scrcpy. No tunnel, no key setup. Anyone you give the two lines to can use the phone.
The whole workflow
watch_url is a live, view-only look at the same phone. Open it to watch your commands land.
Details
Locked until unlock. Beforeunlock, adb devices lists the phone but every command answers locked (shells) or is refused (push, pull, port forwarding). Five wrong codes drop the connection. Every adb connect is a new connection: reconnect and run unlock again.
Sharing. The code is the credential. Paste the two lines to a teammate, into a coding agent’s prompt, or into CI — nothing else is needed on their side. It works until the session ends.
Reset the code when it has gone further than you meant. Existing connections are closed; host and port stay the same:
live.phone-harness.com:22220 (for Appium, appium:udid) after the unlock.
Plaintext. ADB over TCP is not encrypted. Do not pass secrets through adb shell that you would not send in the clear.
Serial reuse. A port belongs to a phone only while its session lives; the session id is the stable identity, not the address.