Catalog PyPI
PACKAGE EXPLORERView in registry

adb-wifi-qr

PyPI

Pair an Android 11+ device for wireless ADB by scanning a QR code rendered in your terminal.

adbandroiddebuggingmdnsqrwifiwirelesszeroconf
Versions collected1
Direct dependencies3From release 0.2.0
Last observed20 Oct, 19:14 UTC

README

Version 0.2.0 documentation

adb-wifi-qr

Pair an Android 11+ device for wireless ADB by scanning a QR code rendered in your terminal.

This is a Python port of adb-wifi by saleehk. All credit for the original idea and JavaScript implementation goes to him.


What it does

  1. Generates a random one-time name and password.
  2. Renders a Wi-Fi-format QR code (WIFI:T:ADB;S:<name>;P:<password>;;) directly in your terminal.
  3. Listens for the phone's _adb-tls-pairing._tcp.local mDNS advertisement.
  4. Runs adb pair <host>:<port> <password> against the first device it finds.
  5. (optional) With --connect, also discovers _adb-tls-connect._tcp.local and runs adb connect, so the device shows up in adb devices and is ready for adb shell, adb install, etc.

Requirements

  • Python 3.8 or newer (3.9+ recommended — the pinned zeroconf branch is the last to support 3.8).
  • adb on PATH (or pass --adb /path/to/adb). Install it with the Android SDK platform-tools.
  • Android 11+ device on the same Wi-Fi network as the computer.

Install

pip install adb-wifi-qr

Usage

adb-wifi-qr

The terminal prints a QR code. On the Android device:

  1. Open Settings → System → Developer options → Wireless debugging.
  2. Tap Pair device with QR code.
  3. Point the camera at the QR code in your terminal.

The tool detects the device via mDNS and runs adb pair automatically.

Examples

Pair only (default — matches the original adb-wifi):

adb-wifi-qr

Pair and auto-connect, so the device immediately shows up in adb devices:

adb-wifi-qr --connect

Wait up to two minutes for the device (default is 60 s):

adb-wifi-qr --timeout 120

Enable debug logging (mDNS events, full subprocess output):

adb-wifi-qr -v

Use a non-default adb binary:

adb-wifi-qr --adb /opt/android-sdk/platform-tools/adb

Combine flags freely:

adb-wifi-qr --connect --timeout 120 -v

All flags

FlagDefaultDescription
--timeout SECONDS60How long to wait for the device to advertise itself.
--connectoffAfter pairing, also run adb connect so the device joins adb devices.
--adb PATHadbPath to the adb binary.
-v, --verboseoffDebug logging to stderr.
--version–Print the package version and exit.
--help–Print full help and exit.

How it works

Android 11 introduced wireless debugging. When the user opens Pair device with QR code, the phone briefly advertises an mDNS service of type _adb-tls-pairing._tcp.local on the local network. Scanning the QR code tells the phone which (random) credentials the pairing request will use; the computer-side adb pair host:port password completes the handshake.

adb-wifi-qr starts the mDNS listener before rendering the QR so the discovery is already running the moment the user taps Pair device with QR code — the advert is short-lived.

Troubleshooting

  • adb not found. Install Android platform-tools, or pass --adb with the full path.
  • No device found before timeout. Make sure the pairing dialog is actually open on the phone — the mDNS advertisement only exists while that screen is visible. Re-run with --timeout 120 if you need more time, or -v to watch the mDNS events live.
  • Phone and laptop on different subnets / VPN active. mDNS does not cross subnets. Disable the VPN or move both devices onto the same Wi-Fi.
  • QR code does not scan. Make the terminal window wider, increase the font size, or switch to a dark background — phone cameras pick up the half-block glyphs much better with white-on-black contrast.
  • adb pair fails. Just re-run adb-wifi-qr — each invocation generates fresh credentials. The previous QR cannot be reused.

Development

git clone https://github.com/matevosashot/adb-wifi-python
cd adb-wifi-python
pip install -e ".[dev]"
pytest

Tests mock the zeroconf and subprocess boundaries, so they do not require a real Android device or network access.

License

ISC — see LICENSE.

Credits

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.2.03 Jun 20263

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
saleehk/adb-wifi

Shared repository data · GitHub

License detected in repository
Not collected

Repository

PENDING
matevosashot/adb-wifi-python

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:14 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:5878644ddbbd5e1499a30f40cf81ff249ca8d3fe0b199d27cc36d5f155e9165e