ABD cannot recognized the Android devices from Win (VirtualHere Server) to macOS (VirtualHere Client)

ABD cannot recognize the Android devices from Win (VirtualHere Server) to macOS (VirtualHere Client)

Server:WIn10, running with VirtualHere server 4.6.7

Client: macOS 14.7, M1 chip, running with VirtualHere client 5.5.7

I enabled the debug mode with my android phone and remote it from Win to macOS,  the Android Studio can find the USB devices, but not recognized it as the android device to enable debugging with Andriod Studio.

If I plug the device in locally to the macOS, the Android Studio can recognized it and work correctly.

 

Here is the usb device info dumped from my macOS machine when I trying to remote the device. I also tried with another andriod phone in my hand, the same issue.

 

High Speed device @ 1 (0x80100000): .............................................   Composite device: "motorola edge X30"

    Port Information:   0x001a

           Not Captive

           Attached to Root Hub

           External Device

           Connected

           Enabled

    Number Of Endpoints (includes EP0):   

        Total Endpoints for Configuration 1 (current):   6

    Device Descriptor   

        Descriptor Version Number:   0x0210

        Device Class:   0   (Composite)

        Device Subclass:   0

        Device Protocol:   0

        Device MaxPacketSize:   64

        Device VendorID/ProductID:   0x22B8/0x2E76   (unknown vendor)

        Device Version Number:   0x0510

        Number of Configurations:   1

        Manufacturer String:   1 "motorola"

        Product String:   2 "motorola edge X30"

        Serial Number String:   3 "ZY22FCZ6B4"

    BOS Descriptor   

        Length (and contents):   42

            Raw Descriptor (hex)    0000: 05 0F 2A 00 03 07 10 02  1E 21 00 00 0A 10 03 00

            Raw Descriptor (hex)    0010: 0F 00 01 00 00 00 14 10  0A 00 01 00 00 00 00 11

            Raw Descriptor (hex)    0020: 00 00 30 40 0A 00 B0 40  0A 00

        Number of Capability Descriptors:   3

            USB 2.0 Extension:   2

                bmAttributes:   0x0000211e

                   Bit 1:  Link Power Management supported

            SuperSpeed USB Device:   3

                bmAttributes:   0x00000000

                wSpeedsSupported:   0x000f

                   Bit 0:  Low Speed supported

                   Bit 1:  Full Speed supported

                   Bit 2:  High Speed supported

                   Bit 3:  Super Speed (5Gbps) supported

                bFunctionalitySupport:   0x0001:  Low Speed and above

                bU1ExitLat:   Zero

                wU2ExitLat:   Zero

    Configuration Descriptor (current config): ......................   "mtp_adb"

        Length (and contents):   62

            Raw Descriptor (hex)    0000: 09 02 3E 00 02 01 04 80  FA 09 04 00 00 03 FF FF

            Raw Descriptor (hex)    0010: 00 05 07 05 81 02 00 02  00 07 05 01 02 00 02 00

            Raw Descriptor (hex)    0020: 07 05 82 03 1C 00 06 09  04 01 00 02 FF 42 01 06

            Raw Descriptor (hex)    0030: 07 05 02 02 00 02 00 07  05 83 02 00 02 00

        Number of Interfaces:   2

        Configuration Value:   1

        Attributes:   0x80 (bus-powered)

        MaxPower:   500 mA

        Interface #0 - Vendor-specific ..............................................   "MTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   255   (Vendor-specific)

            Interface Protocol:   0

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x01 - Bulk Output   

                Address:   0x01  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x82 - Interrupt Input   

                Address:   0x82  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   0x001c  (28 x 1  transactions opportunities per microframe)

                Polling Interval:   6 (32 microframes (4 msecs) )

        Interface #1 - Vendor-specific ..............................................   "ADB Interface"

            Alternate Setting   0

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   66   (Vendor-specific)

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x83 - Bulk Input   

                Address:   0x83  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

    Device Qualifier Descriptor   

        Descriptor Version Number:   0x0210

        Device Class   0   (Composite)

        Device Subclass   0

        Device Protocol   0

        Device MaxPacketSize:   64

        Number of Configurations:   1

        bReserved:   0

    Other Speed Configuration Descriptor: .......................................   "mtp_adb"

        Length (and contents):   62

            Raw Descriptor (hex)    0000: 09 07 3E 00 02 01 04 80  FA 09 04 00 00 03 FF FF

            Raw Descriptor (hex)    0010: 00 05 07 05 81 02 40 00  00 07 05 01 02 40 00 00

            Raw Descriptor (hex)    0020: 07 05 82 03 1C 00 06 09  04 01 00 02 FF 42 01 06

            Raw Descriptor (hex)    0030: 07 05 02 02 40 00 00 07  05 83 02 40 00 00

        Number of Interfaces:   2

        Configuration Value:   1

        Attributes:   0x80 (bus-powered)

        MaxPower:   500 mA

        Interface #0 - Vendor-specific ..............................................   "MTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   255   (Vendor-specific)

            Interface Protocol:   0

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x01 - Bulk Output   

                Address:   0x01  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x82 - Interrupt Input   

                Address:   0x82  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   28

                Polling Interval:   6 ms

        Interface #1 - Vendor-specific ..............................................   "ADB Interface"

            Alternate Setting   0

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   66   (Vendor-specific)

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x83 - Bulk Input   

                Address:   0x83  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

 

Thanks! 

#2

Add more details regarding what I have tired

  1. Restart adb service, no lucky
  2. Add the VID (0x22B8) in the the adb.ini file, no lucky

 

If anything missing here, please let me know, thanks!

#3

No it doesnt seem to be compatible at the moment. I got the phone to appear in Android Studio via virtualhere (win server/mac client) however when trying to run an app under Android Studio onto the phone the phone keeps dropping and is not stable.

(The reason why adb was not seeing the phone is that adb has switched to using libusb as the USB backend and the MacOS version of libusb doesnt see devices attached to virtual USB ports.  A fix was made to windows for this use case but seems its not yet in the macos build of libusb. You can force adb to turn off libusb by setting $ADB_LIBUSB=0 environment variable and then starting adb. The phone will then be usable via adb and Android Studio, but it still drops for some reason when trying to write and app to it)

#4

Thank you for the information.

I have changed the ADB server USB backend from libusb to native in the Android Studio settings.

Here's the path:

"Settings" -> "Build, Execution, Deployment" -> "ADB server USB backend"

It works fine now, and I have not experienced any device disconnection/reconnection issues on my side (Android Debug Bridge version 1.0.41).

#5

Thats great news, maybe its something specific with my Pixel 8 setup. Im glad its working for you now.