In virtualized systems, the device can have multiple VMs with each running its own ADB daemon. In this case, the host VM can export an RNDIS Ethernet gadget, which can be used for the TCP/IP-based communications over the USB physical link. The development machine can then use ADB over TCP/IP to access multiple VMs on the device. The ADB daemon on the host side can announce the ADB presence on the guest VMs over mDNS by publishing ADB services. In addition, the development machine can browse these services with ADB tool, which supports mDNS device discovery (ADB version 31.0.2 or later) to get the IP address and the port number on which adb daemon is listening and then connect to the guest VMs.
The following commands can be used on the development machine to browse and connect to the ADB services.
- To enable mDNS discovery, run:
export ADB_MDNS_OPENSCREEN=1 adb kill-server adb start-server
- To discover ADB services, run:
adb mdns services List of discovered mdns services driver_vm _adb._tcp 192.168.1.49:4444 device_vm _adb._tcp 192.168.1.49:3333
- To connect to the device, run:
adb connect driver_vm._adb._tcp
- To list the connected devices, run:
adb devices List of devices attached driver_vm._adb._tcp device