Last active
March 26, 2024 06:02
-
-
Save benigumocom/a6a87fc1cb690c3c4e3a7642ebf2be6f to your computer and use it in GitHub Desktop.
Connect Wireless Debug from Terminal on Android11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
""" | |
Android11 | |
Pair and connect devices for wireless debug on terminal | |
python-zeroconf: A pure python implementation of multicast DNS service discovery | |
https://github.com/jstasiak/python-zeroconf | |
""" | |
import subprocess | |
from zeroconf import ServiceBrowser, Zeroconf | |
TYPE = "_adb-tls-pairing._tcp.local." | |
NAME = "debug" | |
PASS = "123456" | |
FORMAT_QR = "WIFI:T:ADB;S:%s;P:%s;;" | |
CMD_SHOW = "qrencode -t UTF8 '%s'" | |
CMD_PAIR = "adb pair %s:%s %s" | |
CMD_DEVICES = "adb devices -l" | |
class MyListener: | |
def remove_service(self, zeroconf, type, name): | |
print("Service %s removed." % name) | |
print("Press enter to exit...\n") | |
def add_service(self, zeroconf, type, name): | |
info = zeroconf.get_service_info(type, name) | |
print("Service %s added." % name) | |
print("service info: %s\n" % info) | |
self.pair(info) | |
def pair(self, info): | |
cmd = CMD_PAIR % (info.server, info.port, PASS) | |
print(cmd) | |
subprocess.run(cmd, shell=True) | |
def main(): | |
text = FORMAT_QR % (NAME, PASS) | |
subprocess.run(CMD_SHOW % text, shell=True) | |
print("Scan QR code to pair new devices.") | |
print("[Developer options]-[Wireless debugging]-[Pair device with QR code]") | |
zeroconf = Zeroconf() | |
listener = MyListener() | |
browser = ServiceBrowser(zeroconf, TYPE, listener) | |
try: | |
input("Press enter to exit...\n\n") | |
finally: | |
zeroconf.close() | |
subprocess.run(CMD_DEVICES, shell=True) | |
if __name__ == '__main__': | |
main() | |
Thank you for writing this script!
I created a npm cli package from this reference
I created a npm cli package from this reference
Thanks @benigumocom ,
also thanks @saleehk for making cli over it
although it currently gives an error : adb.exe: usage: adb pair [:]
In your script, NAME=debug & PASS=123456
what do these values mean? (where can i find them)
With the help of ChatGPT, I managed to modify the script to run on MacOS Ventura
#!/usr/bin/env python3
"""
Android11
Pair and connect devices for wireless debug on terminal
pyqrcode: Create QR Codes in Python
https://pypi.org/project/pyqrcode/
zeroconf: A pure python implementation of multicast DNS service discovery
https://github.com/jstasiak/python-zeroconf
"""
import subprocess
import pyqrcode
from zeroconf import ServiceBrowser, Zeroconf
import warnings
NAME = input("Enter a name for wireless debugging: ")
PASS = input("Enter a password for wireless debugging: ")
FORMAT_QR = "WIFI:T:ADB;S:%s;P:%s;;"
CMD_SHOW = "qrencode -t UTF8 '%s'"
CMD_PAIR = "adb pair %s:%s %s"
CMD_DEVICES = "adb devices -l"
class MyListener:
def remove_service(self, zeroconf, type, name):
# print("Service %s removed." % name)
print("Press enter to exit...\n")
def add_service(self, zeroconf, type, name):
info = zeroconf.get_service_info(type, name)
# print("Service %s added." % name)
# print("service info: %s\n" % info)
self.pair(info)
def pair(self, info):
cmd = CMD_PAIR % (info.server, info.port, PASS)
print(cmd)
subprocess.run(cmd, shell=True)
def main():
text = FORMAT_QR % (NAME, PASS)
qr_code = pyqrcode.create(text)
qr_code.png("qr_code.png", scale=6) # Save the QR code as a PNG image
subprocess.run(CMD_SHOW % text, shell=True)
print("=========== Scan QR code to pair new devices =============\n")
print("[Developer options] =>> [Wireless debugging] =>> [Pair device with QR code]\n\n")
zeroconf = Zeroconf()
listener = MyListener()
browser = ServiceBrowser(zeroconf, "_adb-tls-pairing._tcp.local.", listener)
try:
input("Press enter to exit...\n\n")
finally:
zeroconf.close()
subprocess.run(CMD_DEVICES, shell=True)
if __name__ == '__main__':
warnings.simplefilter('ignore', FutureWarning)
main()
Terminal Prompt:
Enter the name for wireless debugging: {input-any-name-here}
Enter the password for wireless debugging: {random-numbers-max-5}
NOTE: For this script to work you must have connected to the mobile device in the past.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
【謎?】QRコードによるデバイスのペア設定 – Android11
https://android.benigumo.com/20200920/pair-device-with-qr-code-android11/