Wednesday, 30 October 2019

Android 11 may finally bring a proper, native Wireless ADB implementation

For Android app developers, ADB is an indispensable tool for debugging applications . With the ability to generate logs, push and pull files, sideload APKs, and enter the shell, ADB gives developers a lot of control over a test device while using a PC. While it’s possible to use ADB wirelessly by connecting to your device via TCP/IP*, many developers might not know about this so they simply stick with using a wired connection. Plus, wireless ADB currently isn’t that convenient if your device doesn’t have a static IP address or you’re dealing with multiple test devices. Finally, data transfer via ADB over TCP/IP happens in plain text, so it’s not a good idea to use it when connected to an untrusted network. Thankfully, it looks like Google is working on a proper, native, and (possibly) secure implementation of wireless ADB that could land in Android 11 next year.
Joshua Duong, a software engineer at Google, submitted multiple commits to the AOSP Gerrit that implement this feature . These commits create a WiFi service for ADB with support for secure pairing. We haven’t spotted evidence that the new implementation encrypts data in transit, but this feature is clearly still a work-in-progress so it may arrive in a later commit. On the user-side, Google plans to add a new “wireless debugging” switch in Developer Options that supports pairing devices by scanning a QR code or entering a 6 digit code.
It looks like Google is finally putting development effort into this feature, so I’m hoping it’ll arrive in Android 11 next year. However, these commits haven’t been merged yet, so there’s no guarantee the feature will arrive in the next Android release. We’ll keep an eye out on the AOSP Gerrit to track when it gets merged and to find out more about this implementation.
*XDA Recognized Developer phhusson brought to my attention that ADB has support for multicast DNS, so it’s already possible to wirelessly connect to ADB without needing your device’s IP address. However, starting the service requires root and you can only have one device connected at a time, so it’s not an ideal solution. Plus, it isn’t documented anywhere publicly, so very few people know about it.

0 comments:

Post a Comment