From ec5ff91cfabd30637f8af8f5c79baf4d7818ce57 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Mon, 16 Dec 2019 17:59:45 +0100 Subject: Support T2 chip in restore mode --- src/usb.c | 5 +++-- src/usb.h | 1 + udev/39-usbmuxd.rules.in | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/usb.c b/src/usb.c index 364930c..9baf933 100644 --- a/src/usb.c +++ b/src/usb.c @@ -380,8 +380,9 @@ static int usb_device_add(libusb_device* dev) } if(devdesc.idVendor != VID_APPLE) return -1; - if((devdesc.idProduct < PID_RANGE_LOW) || - (devdesc.idProduct > PID_RANGE_MAX)) + if((devdesc.idProduct != PID_APPLE_T2_COPROCESSOR) && + ((devdesc.idProduct < PID_RANGE_LOW) || + (devdesc.idProduct > PID_RANGE_MAX))) return -1; libusb_device_handle *handle; usbmuxd_log(LL_INFO, "Found new device with v/p %04x:%04x at %d-%d", devdesc.idVendor, devdesc.idProduct, bus, address); diff --git a/src/usb.h b/src/usb.h index da784b3..18f2a72 100644 --- a/src/usb.h +++ b/src/usb.h @@ -46,6 +46,7 @@ #define VID_APPLE 0x5ac #define PID_RANGE_LOW 0x1290 #define PID_RANGE_MAX 0x12af +#define PID_APPLE_T2_COPROCESSOR 0x8600 struct usb_device; diff --git a/udev/39-usbmuxd.rules.in b/udev/39-usbmuxd.rules.in index 4e84755..053d834 100644 --- a/udev/39-usbmuxd.rules.in +++ b/udev/39-usbmuxd.rules.in @@ -1,13 +1,13 @@ # usbmuxd (Apple Mobile Device Muxer listening on /var/run/usbmuxd) # systemd should receive all events relating to device -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", TAG+="systemd" +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/(12[9a][0-9a-f]|8600)/*", TAG+="systemd" # Initialize iOS devices into "deactivated" USB configuration state and activate usbmuxd -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ACTION=="add", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="0", OWNER="usbmux", @udev_activation_rule@ +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/(12[9a][0-9a-f]|8600)/*", ACTION=="add", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="0", OWNER="usbmux", @udev_activation_rule@ # Make sure properties don't get lost when bind action is called -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ACTION=="bind", ENV{USBMUX_SUPPORTED}="1", OWNER="usbmux", @udev_activation_rule@ +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/(12[9a][0-9a-f]|8600)/*", ACTION=="bind", ENV{USBMUX_SUPPORTED}="1", OWNER="usbmux", @udev_activation_rule@ # Exit usbmuxd when the last device is removed -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ACTION=="remove", RUN+="@sbindir@/usbmuxd -x" +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/(12[9a][0-9a-f]|8600)/*", ACTION=="remove", RUN+="@sbindir@/usbmuxd -x" -- cgit v1.1-32-gdbae