Remote access iPad between two Mac machines

Hello,

I have two Mac machines (macOS 15.0) running on the same LAN.

I connected my iPad (iOS 17.6.1) to one Mac machine and ran the Virtual Here server on it.

I then ran the Virtual Here client on the other Mac machine. I can see the iPad listed on the Virtual Here client, but after using it, I still cannot see the iPad on the macOS Finder.

Have I missed a step in the process?

Thanks!

#2

Did you check the ipad to make sure that you have authorized the new connection. It might have popped up a message on the iPad

#3

Thank you for your reply. After I "used" the iPad device, there was no authorization prompt.

I have connected the iPad to my two Mac machines before, so I am not sure if the authentication data is already cached. Is there anything I missed?

Additionally, I would like to know if I can use Xcode to remotely access the iPad as well.

Thanks!

#4

I tested a few weeks ago and it was working fine, ill do another test tomorrow and let you know.

#5

I gave it a test and it seems it needs a slight workaround.


In the virtualhere client right click on the iPad and then select Custom Event Handler... and paste in exactly this line:

onReset.$VENDOR_ID$.$PRODUCT_ID$=

then press OK. Then click Use on the iPad and it passed via VirtualHere OK (and wanted me to "Trust" the new iPad)

Let me know if this works for you. (Note you only need to do the above step once as it is remembered)

If this works for you will will update the VirtualHere Server so this workaround is permanent in the next version

 

 

#6

I updated to the latest version of VirtualHere and added the customer event handler, but it doesn't seem to have helped.

My macOS version is 15.1, and my iOS version is 17.6.1.

Here are my test steps:

1. Connect the iPad to Mac machine A, trust the device, and verify that the device is listed on the macOS Finder on Machine A.

2. Launch the VirtualHere server on machine A.

3. Launch the VirtualHere client on machine B, set "onReset.$VENDOR_ID$.$PRODUCT_ID$=" on iPad node and click "using".

4. The iPad device disappears from machine A's Finder.

5. Nothing happens on machine B (no device connecting, no "Trust" prompt on the device). I cannot find the device listed on machine B's Finder either.

 

The server-side log shows:

```

Wed Nov 13 14:25:47 2024 LOG_INFO >>> Starting VirtualHere USB Server v4.7.0 (Built: Oct 15 2024, 15:59:16)<<<

Wed Nov 13 14:25:47 2024 LOG_WARNING Warning, cannot lookup the exe path, 22 (Invalid argument) (defaulting to HOME)

Wed Nov 13 14:25:47 2024 LOG_INFO Using configuration /Users/macvda/config.ini

Wed Nov 13 14:25:47 2024 LOG_INFO Server licensed to=unlicensed max_devices=1

Wed Nov 13 14:25:47 2024 LOG_INFO Disabling usbmuxd

Wed Nov 13 14:25:47 2024 LOG_INFO Listening on all network interfaces at TCP port 7575 (IPv6 dual-stack)

Wed Nov 13 14:25:47 2024 LOG_INFO Found High speed device [05ac:12ab] 'Apple Inc., iPad' at address 37748736

Wed Nov 13 14:25:47 2024 LOG_INFO Found Full speed device [046d:c52b] 'Logitech, USB Receiver' at address 36700160

Wed Nov 13 14:26:12 2024 LOG_INFO fe80::140c:c84:c936:3377 connected as connection 1 (Standard TCP)

Wed Nov 13 14:26:31 2024 LOG_INFO Set custom event 'onReset.05ac.12ab='

Wed Nov 13 14:26:33 2024 LOG_INFO Device 37748736 [05ac:12ab] BOUND to connection 1

```

 

I don't know where to find the client-side logs, but I have attached the usbdiagnose output from the client side.

High Speed device @ 1 (0x80100000): .............................................   Composite device: "iPad"

    Port Information:   0x001a

           Not Captive

           Attached to Root Hub

           External Device

           Connected

           Enabled

    Number Of Endpoints (includes EP0):   

        Total Endpoints for Configuration 1 :   4

        Total Endpoints for Configuration 2 :   3

        Total Endpoints for Configuration 3 :   6

        Total Endpoints for Configuration 4 :   8

        Total Endpoints for Configuration 5 (current):   10

    Device Descriptor   

        Descriptor Version Number:   0x0200

        Device Class:   0   (Composite)

        Device Subclass:   0

        Device Protocol:   0

        Device MaxPacketSize:   64

        Device VendorID/ProductID:   0x05AC/0x12AB   (unknown vendor)

        Device Version Number:   0x1101

        Number of Configurations:   5

        Manufacturer String:   1 "Apple Inc."

        Product String:   2 "iPad"

        Serial Number String:   3 "0000802000034DCC1A22402E"

    Configuration Descriptor: .......................................   "PTP"

        Length (and contents):   39

            Raw Descriptor (hex)    0000: 09 02 27 00 01 01 05 C0  FA 09 04 00 00 03 06 01

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

            Raw Descriptor (hex)    0020: 07 05 83 03 40 00 0A

        Number of Interfaces:   1

        Configuration Value:   1

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Image ..............................................   "PTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   6   (Image)

            Interface Subclass;   1

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   0x0040  (64 x 1  transactions opportunities per microframe)

                Polling Interval:   10 (512 microframes (64 msecs) )

    Configuration Descriptor: .......................................   "iPod USB Interface"

        Length (and contents):   149

            Raw Descriptor (hex)    0000: 09 02 95 00 03 02 06 C0  FA 09 04 00 00 00 01 01

            Raw Descriptor (hex)    0010: 00 00 09 24 01 00 01 1E  00 01 01 0C 24 02 01 01

            Raw Descriptor (hex)    0020: 02 02 02 03 00 00 00 09  24 03 02 01 01 01 01 00

            Raw Descriptor (hex)    0030: 09 04 01 00 00 01 02 00  00 09 04 01 01 01 01 02

            Raw Descriptor (hex)    0040: 00 00 07 24 01 02 01 01  00 23 24 02 01 02 02 10

            Raw Descriptor (hex)    0050: 09 40 1F 00 11 2B 00 E0  2E 00 80 3E 00 22 56 00

            Raw Descriptor (hex)    0060: C0 5D 00 00 7D 00 44 AC  00 80 BB 00 09 05 81 01

            Raw Descriptor (hex)    0070: C0 00 04 00 00 07 25 01  01 00 00 00 09 04 02 00

            Raw Descriptor (hex)    0080: 01 03 00 00 00 09 21 11  01 00 01 22 D0 00 07 05

            Raw Descriptor (hex)    0090: 83 03 40 00 01

        Number of Interfaces:   3

        Configuration Value:   2

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Audio/Control   

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   1   (Audio)

            Interface Subclass;   1   (Control)

            Interface Protocol:   0

            Audio Class 1.0 Control Interface   

                Descriptor Version Number:   01.00

                Class Specific Size:   30

                Number of Audio Interfaces:   1

                Audio Interface Number:   1

                Dump Contents (hex):   09 24 01 00 01 1E 00 01 01

            Audio Class 1.0 Input Terminal   

                Terminal ID:   1

                Input Terminal Type:   0x201 (Microphone)

                OutTerminal ID:   2

                Number of Channels:   2

                Spatial config of channels:   0000000000000011

                                  ^.  Left Front

                                 ^..  Right Front

                String index for first logical channel:   0

                Terminal Name String Index:   0 [NONE]

            Audio Class 1.0 Output Terminal   

                Terminal ID:   2

                Output Terminal Type:   0x101 (USB Isochronous Stream)

                InTerminal ID:   1

                Source ID:   1

                Terminal Name String Index:   0 [NONE]

        Interface #1 - Audio/Streaming   

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   1   (Audio)

            Interface Subclass;   2   (Streaming)

            Interface Protocol:   0

        Interface #1 - Audio/Streaming (#1)   

            Alternate Setting   1

            Number of Endpoints   1

            Interface Class:   1   (Audio)

            Interface Subclass;   2   (Streaming)

            Interface Protocol:   0

            Audio Class 1.0 Streaming Interface   

                Audio Class 1.0 Streaming Interface   

                    Endpoint Terminal ID:   2

                    Delay:   1 frames     

                    Format Tag:   0x0001 (PCM)

            Audio Class 1.0 Streaming Format Type   

                Audio Class 1.0 Stream Format Type Desc.   

                    Format Type:   1 PCM

                    Number Of Channels:   2 STEREO

                    Sub Frame Size:   2

                    Bit Resolution:   16

                    Sample Frequency Type:   0x09 (Discrete)

                    Sample Frequency:    8000 Hz

                    Sample Frequency:   11025 Hz

                    Sample Frequency:   12000 Hz

                    Sample Frequency:   16000 Hz

                    Sample Frequency:   22050 Hz

                    Sample Frequency:   24000 Hz

                    Sample Frequency:   32000 Hz

                    Sample Frequency:   44100 Hz

                    Sample Frequency:   48000 Hz

            Endpoint 0x81 - Isochronous Input   

                Address:   0x81  (IN)

                Attributes:   0x01  (Isochronous no synchronization data endpoint)

                Max Packet Size:   0x00c0  (192 x 1  transactions opportunities per microframe)

                Polling Interval:   4 (8 microframes (1 msecs) )

            Class-Specific AS Audio EndPoint   

                Attributes:   0x01  Sample Frequency,

                bLockDelayUnits:   0x00  (UNDEFINED)

                wLockDelay:   0

        Interface #2 - HID   

            Alternate Setting   0

            Number of Endpoints   1

            Interface Class:   3   (HID)

            Interface Subclass;   0

            Interface Protocol:   0

            HID Descriptor   

                Descriptor Version Number:   0x0111

                Country Code:   0

                Descriptor Count:   1

                Descriptor 1   

                    Type:   0x22  (Report Descriptor)

                    Length (interface does not currently exist):   208

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   0x0040  (64 x 1  transactions opportunities per microframe)

                Polling Interval:   1 (1 microframe (125 microsecs) )

    Configuration Descriptor: .......................................   "PTP + Apple Mobile Device"

        Length (and contents):   62

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

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

            Raw Descriptor (hex)    0020: 07 05 83 03 40 00 0A 09  04 01 00 02 FF FE 02 0F

            Raw Descriptor (hex)    0030: 07 05 04 02 00 02 00 07  05 85 02 00 02 00

        Number of Interfaces:   2

        Configuration Value:   3

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Image ..............................................   "PTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   6   (Image)

            Interface Subclass;   1

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   0x0040  (64 x 1  transactions opportunities per microframe)

                Polling Interval:   10 (512 microframes (64 msecs) )

        Interface #1 - Vendor-specific ..............................................   "Apple USB Multiplexor"

            Alternate Setting   0

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   254   (Vendor-specific)

            Interface Protocol:   2

            Endpoint 0x04 - Bulk Output   

                Address:   0x04  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x85 - Bulk Input   

                Address:   0x85  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

    Configuration Descriptor: .......................................   "PTP + Apple Mobile Device + Apple USB Ethernet"

        Length (and contents):   117

            Raw Descriptor (hex)    0000: 09 02 75 00 03 04 08 C0  FA 09 04 00 00 03 06 01

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

            Raw Descriptor (hex)    0020: 07 05 83 03 40 00 0A 09  04 01 00 02 FF FE 02 0F

            Raw Descriptor (hex)    0030: 07 05 04 02 00 02 00 07  05 85 02 00 02 00 09 04

            Raw Descriptor (hex)    0040: 02 00 00 FF FD 01 18 09  04 02 01 02 FF FD 01 18

            Raw Descriptor (hex)    0050: 07 05 86 02 00 02 00 07  05 05 02 00 02 00 09 04

            Raw Descriptor (hex)    0060: 02 02 02 FF FD 01 18 07  05 86 02 00 02 00 07 05

            Raw Descriptor (hex)    0070: 05 02 00 02 00

        Number of Interfaces:   3

        Configuration Value:   4

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Image ..............................................   "PTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   6   (Image)

            Interface Subclass;   1

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   0x0040  (64 x 1  transactions opportunities per microframe)

                Polling Interval:   10 (512 microframes (64 msecs) )

        Interface #1 - Vendor-specific ..............................................   "Apple USB Multiplexor"

            Alternate Setting   0

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   254   (Vendor-specific)

            Interface Protocol:   2

            Endpoint 0x04 - Bulk Output   

                Address:   0x04  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x85 - Bulk Input   

                Address:   0x85  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

        Interface #2 - Vendor-specific ..............................................   "AppleUSBEthernet"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   253   (Vendor-specific)

            Interface Protocol:   1

        Interface #2 - Vendor-specific (#1) ..............................................   "AppleUSBEthernet"

            Alternate Setting   1

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   253   (Vendor-specific)

            Interface Protocol:   1

            Endpoint 0x86 - Bulk Input   

                Address:   0x86  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x05 - Bulk Output   

                Address:   0x05  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

        Interface #2 - Vendor-specific (#2) ..............................................   "AppleUSBEthernet"

            Alternate Setting   2

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   253   (Vendor-specific)

            Interface Protocol:   1

            Endpoint 0x86 - Bulk Input   

                Address:   0x86  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x05 - Bulk Output   

                Address:   0x05  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

    Configuration Descriptor (current config): ......................   "PTP + Apple Mobile Device + NCM"

        Length (and contents):   202

            Raw Descriptor (hex)    0000: 09 02 CA 00 06 05 09 C0  FA 09 04 00 00 03 06 01

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

            Raw Descriptor (hex)    0020: 07 05 83 03 40 00 0A 09  04 01 00 02 FF FE 02 0F

            Raw Descriptor (hex)    0030: 07 05 04 02 00 02 00 07  05 85 02 00 02 00 09 04

            Raw Descriptor (hex)    0040: 02 00 00 02 0D 00 13 05  24 06 02 03 05 24 00 10

            Raw Descriptor (hex)    0050: 01 0D 24 0F 11 00 00 00  00 EA 05 00 00 00 06 24

            Raw Descriptor (hex)    0060: 1A 00 01 3B 09 04 03 00  00 0A 00 01 19 09 04 03

            Raw Descriptor (hex)    0070: 01 02 0A 00 01 19 07 05  86 02 00 02 00 07 05 05

            Raw Descriptor (hex)    0080: 02 00 02 00 09 04 04 00  00 02 0D 00 14 05 24 06

            Raw Descriptor (hex)    0090: 04 05 05 24 00 10 01 0D  24 0F 12 00 00 00 00 EA

            Raw Descriptor (hex)    00a0: 05 00 00 00 06 24 1A 00  01 3B 09 04 05 00 00 0A

            Raw Descriptor (hex)    00b0: 00 01 1A 09 04 05 01 02  0A 00 01 1A 07 05 87 02

            Raw Descriptor (hex)    00c0: 00 02 00 07 05 06 02 00  02 00

        Number of Interfaces:   6

        Configuration Value:   5

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Image ..............................................   "PTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   6   (Image)

            Interface Subclass;   1

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   0x0040  (64 x 1  transactions opportunities per microframe)

                Polling Interval:   10 (512 microframes (64 msecs) )

        Interface #1 - Vendor-specific ..............................................   "Apple USB Multiplexor"

            Alternate Setting   0

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   254   (Vendor-specific)

            Interface Protocol:   2

            Endpoint 0x04 - Bulk Output   

                Address:   0x04  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x85 - Bulk Input   

                Address:   0x85  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

        Interface #2 - Communications-Control ..............................................   "NCM Control"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   2   (Communications-Control)

            Interface Subclass;   13

            Interface Protocol:   0

            Comm Class Union Functional Descriptor   

                Raw Descriptor (hex)   0000: 05 24 06 02 03

            Comm Class Header Functional Descriptor   

                Raw Descriptor (hex)   0000: 05 24 00 10 01

            Comm Class Ethernet Networking Functional Descriptor   

                Raw Descriptor (hex)   0000: 0D 24 0F 11 00 00 00 00  EA 05 00 00 00

            Comm Class Reserved Functional Descriptor (26)   

                Raw Descriptor (hex)   0000: 06 24 1A 00 01 3B

        Interface #3 - Communications-Data/Unknown Comm Class Model ..............................................   "NCM Data"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   10   (Communications-Data)

            Interface Subclass;   0   (Unknown Comm Class Model)

            Interface Protocol:   1

        Interface #3 - Communications-Data/Unknown Comm Class Model (#1) ..............................................   "NCM Data"

            Alternate Setting   1

            Number of Endpoints   2

            Interface Class:   10   (Communications-Data)

            Interface Subclass;   0   (Unknown Comm Class Model)

            Interface Protocol:   1

            Endpoint 0x86 - Bulk Input   

                Address:   0x86  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x05 - Bulk Output   

                Address:   0x05  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

        Interface #4 - Communications-Control ..............................................   "NCM Control"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   2   (Communications-Control)

            Interface Subclass;   13

            Interface Protocol:   0

            Comm Class Union Functional Descriptor   

                Raw Descriptor (hex)   0000: 05 24 06 04 05

            Comm Class Header Functional Descriptor   

                Raw Descriptor (hex)   0000: 05 24 00 10 01

            Comm Class Ethernet Networking Functional Descriptor   

                Raw Descriptor (hex)   0000: 0D 24 0F 12 00 00 00 00  EA 05 00 00 00

            Comm Class Reserved Functional Descriptor (26)   

                Raw Descriptor (hex)   0000: 06 24 1A 00 01 3B

        Interface #5 - Communications-Data/Unknown Comm Class Model ..............................................   "NCM Data"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   10   (Communications-Data)

            Interface Subclass;   0   (Unknown Comm Class Model)

            Interface Protocol:   1

        Interface #5 - Communications-Data/Unknown Comm Class Model (#1) ..............................................   "NCM Data"

            Alternate Setting   1

            Number of Endpoints   2

            Interface Class:   10   (Communications-Data)

            Interface Subclass;   0   (Unknown Comm Class Model)

            Interface Protocol:   1

            Endpoint 0x87 - Bulk Input   

                Address:   0x87  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

            Endpoint 0x06 - Bulk Output   

                Address:   0x06  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   512

                Polling Interval:   0 ( Endpoint never NAKs)

    Device Qualifier Descriptor   

        Descriptor Version Number:   0x0200

        Device Class   0   (Composite)

        Device Subclass   0

        Device Protocol   0

        Device MaxPacketSize:   64

        Number of Configurations:   5

        bReserved:   0

    Other Speed Configuration Descriptor: .......................................   "PTP"

        Length (and contents):   39

            Raw Descriptor (hex)    0000: 09 07 27 00 01 01 05 C0  FA 09 04 00 00 03 06 01

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

            Raw Descriptor (hex)    0020: 07 05 83 03 40 00 40

        Number of Interfaces:   1

        Configuration Value:   1

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Image ..............................................   "PTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   6   (Image)

            Interface Subclass;   1

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   64

                Polling Interval:   64 ms

    Other Speed Configuration Descriptor: .......................................   "iPod USB Interface"

        Length (and contents):   149

            Raw Descriptor (hex)    0000: 09 07 95 00 03 02 06 C0  FA 09 04 00 00 00 01 01

            Raw Descriptor (hex)    0010: 00 00 09 24 01 00 01 1E  00 01 01 0C 24 02 01 01

            Raw Descriptor (hex)    0020: 02 02 02 03 00 00 00 09  24 03 02 01 01 01 01 00

            Raw Descriptor (hex)    0030: 09 04 01 00 00 01 02 00  00 09 04 01 01 01 01 02

            Raw Descriptor (hex)    0040: 00 00 07 24 01 02 01 01  00 23 24 02 01 02 02 10

            Raw Descriptor (hex)    0050: 09 40 1F 00 11 2B 00 E0  2E 00 80 3E 00 22 56 00

            Raw Descriptor (hex)    0060: C0 5D 00 00 7D 00 44 AC  00 80 BB 00 09 05 81 01

            Raw Descriptor (hex)    0070: C0 00 01 00 00 07 25 01  01 00 00 00 09 04 02 00

            Raw Descriptor (hex)    0080: 01 03 00 00 00 09 21 11  01 00 01 22 60 00 07 05

            Raw Descriptor (hex)    0090: 83 03 40 00 01

        Number of Interfaces:   3

        Configuration Value:   2

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Audio/Control   

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   1   (Audio)

            Interface Subclass;   1   (Control)

            Interface Protocol:   0

            Audio Class 1.0 Control Interface   

                Descriptor Version Number:   01.00

                Class Specific Size:   30

                Number of Audio Interfaces:   1

                Audio Interface Number:   1

                Dump Contents (hex):   09 24 01 00 01 1E 00 01 01

            Audio Class 1.0 Input Terminal   

                Terminal ID:   1

                Input Terminal Type:   0x201 (Microphone)

                OutTerminal ID:   2

                Number of Channels:   2

                Spatial config of channels:   0000000000000011

                                  ^.  Left Front

                                 ^..  Right Front

                String index for first logical channel:   0

                Terminal Name String Index:   0 [NONE]

            Audio Class 1.0 Output Terminal   

                Terminal ID:   2

                Output Terminal Type:   0x101 (USB Isochronous Stream)

                InTerminal ID:   1

                Source ID:   1

                Terminal Name String Index:   0 [NONE]

        Interface #1 - Audio/Streaming   

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   1   (Audio)

            Interface Subclass;   2   (Streaming)

            Interface Protocol:   0

        Interface #1 - Audio/Streaming (#1)   

            Alternate Setting   1

            Number of Endpoints   1

            Interface Class:   1   (Audio)

            Interface Subclass;   2   (Streaming)

            Interface Protocol:   0

            Audio Class 1.0 Streaming Interface   

                Audio Class 1.0 Streaming Interface   

                    Endpoint Terminal ID:   2

                    Delay:   1 frames     

                    Format Tag:   0x0001 (PCM)

            Audio Class 1.0 Streaming Format Type   

                Audio Class 1.0 Stream Format Type Desc.   

                    Format Type:   1 PCM

                    Number Of Channels:   2 STEREO

                    Sub Frame Size:   2

                    Bit Resolution:   16

                    Sample Frequency Type:   0x09 (Discrete)

                    Sample Frequency:    8000 Hz

                    Sample Frequency:   11025 Hz

                    Sample Frequency:   12000 Hz

                    Sample Frequency:   16000 Hz

                    Sample Frequency:   22050 Hz

                    Sample Frequency:   24000 Hz

                    Sample Frequency:   32000 Hz

                    Sample Frequency:   44100 Hz

                    Sample Frequency:   48000 Hz

            Endpoint 0x81 - Isochronous Input   

                Address:   0x81  (IN)

                Attributes:   0x01  (Isochronous no synchronization data endpoint)

                Max Packet Size:   192

                Polling Interval:   1 ms

            Class-Specific AS Audio EndPoint   

                Attributes:   0x01  Sample Frequency,

                bLockDelayUnits:   0x00  (UNDEFINED)

                wLockDelay:   0

        Interface #2 - HID   

            Alternate Setting   0

            Number of Endpoints   1

            Interface Class:   3   (HID)

            Interface Subclass;   0

            Interface Protocol:   0

            HID Descriptor   

                Descriptor Version Number:   0x0111

                Country Code:   0

                Descriptor Count:   1

                Descriptor 1   

                    Type:   0x22  (Report Descriptor)

                    Length (interface does not currently exist):   96

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   64

                Polling Interval:   1 ms

    Other Speed Configuration Descriptor: .......................................   "PTP + Apple Mobile Device"

        Length (and contents):   62

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

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

            Raw Descriptor (hex)    0020: 07 05 83 03 40 00 40 09  04 01 00 02 FF FE 02 0F

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

        Number of Interfaces:   2

        Configuration Value:   3

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Image ..............................................   "PTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   6   (Image)

            Interface Subclass;   1

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   64

                Polling Interval:   64 ms

        Interface #1 - Vendor-specific ..............................................   "Apple USB Multiplexor"

            Alternate Setting   0

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   254   (Vendor-specific)

            Interface Protocol:   2

            Endpoint 0x04 - Bulk Output   

                Address:   0x04  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x85 - Bulk Input   

                Address:   0x85  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

    Other Speed Configuration Descriptor: .......................................   "PTP + Apple Mobile Device + Apple USB Ethernet"

        Length (and contents):   117

            Raw Descriptor (hex)    0000: 09 07 75 00 03 04 08 C0  FA 09 04 00 00 03 06 01

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

            Raw Descriptor (hex)    0020: 07 05 83 03 40 00 40 09  04 01 00 02 FF FE 02 0F

            Raw Descriptor (hex)    0030: 07 05 04 02 40 00 00 07  05 85 02 40 00 00 09 04

            Raw Descriptor (hex)    0040: 02 00 00 FF FD 01 18 09  04 02 01 02 FF FD 01 18

            Raw Descriptor (hex)    0050: 07 05 86 02 40 00 00 07  05 05 02 40 00 00 09 04

            Raw Descriptor (hex)    0060: 02 02 02 FF FD 01 18 07  05 86 02 40 00 00 07 05

            Raw Descriptor (hex)    0070: 05 02 40 00 00

        Number of Interfaces:   3

        Configuration Value:   4

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Image ..............................................   "PTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   6   (Image)

            Interface Subclass;   1

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   64

                Polling Interval:   64 ms

        Interface #1 - Vendor-specific ..............................................   "Apple USB Multiplexor"

            Alternate Setting   0

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   254   (Vendor-specific)

            Interface Protocol:   2

            Endpoint 0x04 - Bulk Output   

                Address:   0x04  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x85 - Bulk Input   

                Address:   0x85  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

        Interface #2 - Vendor-specific ..............................................   "AppleUSBEthernet"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   253   (Vendor-specific)

            Interface Protocol:   1

        Interface #2 - Vendor-specific (#1) ..............................................   "AppleUSBEthernet"

            Alternate Setting   1

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   253   (Vendor-specific)

            Interface Protocol:   1

            Endpoint 0x86 - Bulk Input   

                Address:   0x86  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x05 - Bulk Output   

                Address:   0x05  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

        Interface #2 - Vendor-specific (#2) ..............................................   "AppleUSBEthernet"

            Alternate Setting   2

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   253   (Vendor-specific)

            Interface Protocol:   1

            Endpoint 0x86 - Bulk Input   

                Address:   0x86  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x05 - Bulk Output   

                Address:   0x05  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

    Other Speed Configuration Descriptor: .......................................   "PTP + Apple Mobile Device + NCM"

        Length (and contents):   202

            Raw Descriptor (hex)    0000: 09 07 CA 00 06 05 09 C0  FA 09 04 00 00 03 06 01

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

            Raw Descriptor (hex)    0020: 07 05 83 03 40 00 40 09  04 01 00 02 FF FE 02 0F

            Raw Descriptor (hex)    0030: 07 05 04 02 40 00 00 07  05 85 02 40 00 00 09 04

            Raw Descriptor (hex)    0040: 02 00 00 02 0D 00 13 05  24 06 02 03 05 24 00 10

            Raw Descriptor (hex)    0050: 01 0D 24 0F 11 00 00 00  00 EA 05 00 00 00 06 24

            Raw Descriptor (hex)    0060: 1A 00 01 3B 09 04 03 00  00 0A 00 01 19 09 04 03

            Raw Descriptor (hex)    0070: 01 02 0A 00 01 19 07 05  86 02 40 00 00 07 05 05

            Raw Descriptor (hex)    0080: 02 40 00 00 09 04 04 00  00 02 0D 00 14 05 24 06

            Raw Descriptor (hex)    0090: 04 05 05 24 00 10 01 0D  24 0F 12 00 00 00 00 EA

            Raw Descriptor (hex)    00a0: 05 00 00 00 06 24 1A 00  01 3B 09 04 05 00 00 0A

            Raw Descriptor (hex)    00b0: 00 01 1A 09 04 05 01 02  0A 00 01 1A 07 05 87 02

            Raw Descriptor (hex)    00c0: 40 00 00 07 05 06 02 40  00 00

        Number of Interfaces:   6

        Configuration Value:   5

        Attributes:   0xC0 (self-powered)

        MaxPower:   500 mA

        Interface #0 - Image ..............................................   "PTP"

            Alternate Setting   0

            Number of Endpoints   3

            Interface Class:   6   (Image)

            Interface Subclass;   1

            Interface Protocol:   1

            Endpoint 0x02 - Bulk Output   

                Address:   0x02  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x81 - Bulk Input   

                Address:   0x81  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x83 - Interrupt Input   

                Address:   0x83  (IN)

                Attributes:   0x03  (Interrupt)

                Max Packet Size:   64

                Polling Interval:   64 ms

        Interface #1 - Vendor-specific ..............................................   "Apple USB Multiplexor"

            Alternate Setting   0

            Number of Endpoints   2

            Interface Class:   255   (Vendor-specific)

            Interface Subclass;   254   (Vendor-specific)

            Interface Protocol:   2

            Endpoint 0x04 - Bulk Output   

                Address:   0x04  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x85 - Bulk Input   

                Address:   0x85  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

        Interface #2 - Communications-Control ..............................................   "NCM Control"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   2   (Communications-Control)

            Interface Subclass;   13

            Interface Protocol:   0

            Comm Class Union Functional Descriptor   

                Raw Descriptor (hex)   0000: 05 24 06 02 03

            Comm Class Header Functional Descriptor   

                Raw Descriptor (hex)   0000: 05 24 00 10 01

            Comm Class Ethernet Networking Functional Descriptor   

                Raw Descriptor (hex)   0000: 0D 24 0F 11 00 00 00 00  EA 05 00 00 00

            Comm Class Reserved Functional Descriptor (26)   

                Raw Descriptor (hex)   0000: 06 24 1A 00 01 3B

        Interface #3 - Communications-Data/Unknown Comm Class Model ..............................................   "NCM Data"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   10   (Communications-Data)

            Interface Subclass;   0   (Unknown Comm Class Model)

            Interface Protocol:   1

        Interface #3 - Communications-Data/Unknown Comm Class Model (#1) ..............................................   "NCM Data"

            Alternate Setting   1

            Number of Endpoints   2

            Interface Class:   10   (Communications-Data)

            Interface Subclass;   0   (Unknown Comm Class Model)

            Interface Protocol:   1

            Endpoint 0x86 - Bulk Input   

                Address:   0x86  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x05 - Bulk Output   

                Address:   0x05  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

        Interface #4 - Communications-Control ..............................................   "NCM Control"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   2   (Communications-Control)

            Interface Subclass;   13

            Interface Protocol:   0

            Comm Class Union Functional Descriptor   

                Raw Descriptor (hex)   0000: 05 24 06 04 05

            Comm Class Header Functional Descriptor   

                Raw Descriptor (hex)   0000: 05 24 00 10 01

            Comm Class Ethernet Networking Functional Descriptor   

                Raw Descriptor (hex)   0000: 0D 24 0F 12 00 00 00 00  EA 05 00 00 00

            Comm Class Reserved Functional Descriptor (26)   

                Raw Descriptor (hex)   0000: 06 24 1A 00 01 3B

        Interface #5 - Communications-Data/Unknown Comm Class Model ..............................................   "NCM Data"

            Alternate Setting   0

            Number of Endpoints   0

            Interface Class:   10   (Communications-Data)

            Interface Subclass;   0   (Unknown Comm Class Model)

            Interface Protocol:   1

        Interface #5 - Communications-Data/Unknown Comm Class Model (#1) ..............................................   "NCM Data"

            Alternate Setting   1

            Number of Endpoints   2

            Interface Class:   10   (Communications-Data)

            Interface Subclass;   0   (Unknown Comm Class Model)

            Interface Protocol:   1

            Endpoint 0x87 - Bulk Input   

                Address:   0x87  (IN)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

            Endpoint 0x06 - Bulk Output   

                Address:   0x06  (OUT)

                Attributes:   0x02  (Bulk)

                Max Packet Size:   64

                Polling Interval:   0 ms

 

Please let me know if you have any suggestions. Thanks!

#7

Firstly, it does need that onReset setting i mentioned above.

I tried it between an M1 mac as the server (with MacOS 15.2) with an iPad running iOS 17.7.1 connected to it <-> and a MacAir client running MacOS 12.7.6,  

After i click Use, it drops automatically and goes back to being not in use. Then i click Use again and it passes it through. Make sure you do this.

I did the same but with the M1 Mac as the client and MacAir as the server with the iPad connected to it and it also works.

I can see the iPad under finder in the client machine. 

There are a few Trust this device popups on the iPad which you need to accept. You need to login to the iPad (not just the lock screen) to see them.

I then started xCode on the M1 client while the iPad was being passed through to it via VirtualHere, i then started a new empty App and again i had to click the Trust popup on the iPad. Then i clicked Run and i could see the App on the iPad

If you are still having trouble, then i could take a quick look via rustdesk and see i can see any issue while you are there. Let me know mail [at] virtualhere.com (mail[at]virtualhere[dot]com)

 

#8

Thank you for providing the detailed steps.

I believe I have identified the root cause of this issue. In my non-working environment, I discovered that the device was in a configured state (Configuration 5) after being plugged into the machine running the VirtualHere server. This can be observed using the usbdiagnose CMD as shown below:

High Speed device @ 1 (0x80100000): .............................................   Composite device: "iPad"

    Port Information:   0x001a

           Not Captive

           Attached to Root Hub

           External Device

           Connected

           Enabled

    Number Of Endpoints (includes EP0):   

        Total Endpoints for Configuration 1 :   4

        Total Endpoints for Configuration 2 :   3

        Total Endpoints for Configuration 3 :   6

        Total Endpoints for Configuration 4 :   8

        Total Endpoints for Configuration 5 (current):   10

 

If I use libusb (calling “set_usb_configuration” with 0) to set the iPad device to an unconfigured state, it works fine.

High Speed device @ 52 (0x02400000): .............................................   Composite device: "iPad"

    Port Information:   0x001a

           Not Captive

           Attached to Root Hub

           External Device

           Connected

           Enabled

    Number Of Endpoints (includes EP0):   

        Total Endpoints for Configuration 1 (unconfigured):   4

        Total Endpoints for Configuration 2 (unconfigured):   3

        Total Endpoints for Configuration 3 (unconfigured):   6

        Total Endpoints for Configuration 4 (unconfigured):   8

        Total Endpoints for Configuration 5 (unconfigured):   10

 

Perhaps you could try this as well.

#9

I tried and it switches to Config 5 on mine. 

From past experience i think config 1 is for when it attaches to windows the driver on windows selects that one, when it attaches to a mac the driver selects the highest config. So actually i think it should be 5 and work.