summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Rick Mark2019-12-16 17:59:45 +0100
committerGravatar Nikias Bassen2019-12-16 17:59:45 +0100
commitec5ff91cfabd30637f8af8f5c79baf4d7818ce57 (patch)
tree71932eafb3493fb38a1239b281dc9fc41aa80865
parent9af2b12552693a47601347e1eafc1e94132d727e (diff)
downloadusbmuxd-ec5ff91cfabd30637f8af8f5c79baf4d7818ce57.tar.gz
usbmuxd-ec5ff91cfabd30637f8af8f5c79baf4d7818ce57.tar.bz2
Support T2 chip in restore mode
-rw-r--r--src/usb.c5
-rw-r--r--src/usb.h1
-rw-r--r--udev/39-usbmuxd.rules.in8
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)
380 } 380 }
381 if(devdesc.idVendor != VID_APPLE) 381 if(devdesc.idVendor != VID_APPLE)
382 return -1; 382 return -1;
383 if((devdesc.idProduct < PID_RANGE_LOW) || 383 if((devdesc.idProduct != PID_APPLE_T2_COPROCESSOR) &&
384 (devdesc.idProduct > PID_RANGE_MAX)) 384 ((devdesc.idProduct < PID_RANGE_LOW) ||
385 (devdesc.idProduct > PID_RANGE_MAX)))
385 return -1; 386 return -1;
386 libusb_device_handle *handle; 387 libusb_device_handle *handle;
387 usbmuxd_log(LL_INFO, "Found new device with v/p %04x:%04x at %d-%d", devdesc.idVendor, devdesc.idProduct, bus, address); 388 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 @@
46#define VID_APPLE 0x5ac 46#define VID_APPLE 0x5ac
47#define PID_RANGE_LOW 0x1290 47#define PID_RANGE_LOW 0x1290
48#define PID_RANGE_MAX 0x12af 48#define PID_RANGE_MAX 0x12af
49#define PID_APPLE_T2_COPROCESSOR 0x8600
49 50
50struct usb_device; 51struct usb_device;
51 52
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 @@
1# usbmuxd (Apple Mobile Device Muxer listening on /var/run/usbmuxd) 1# usbmuxd (Apple Mobile Device Muxer listening on /var/run/usbmuxd)
2 2
3# systemd should receive all events relating to device 3# systemd should receive all events relating to device
4SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", TAG+="systemd" 4SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/(12[9a][0-9a-f]|8600)/*", TAG+="systemd"
5 5
6# Initialize iOS devices into "deactivated" USB configuration state and activate usbmuxd 6# Initialize iOS devices into "deactivated" USB configuration state and activate usbmuxd
7SUBSYSTEM=="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@ 7SUBSYSTEM=="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@
8 8
9# Make sure properties don't get lost when bind action is called 9# Make sure properties don't get lost when bind action is called
10SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ACTION=="bind", ENV{USBMUX_SUPPORTED}="1", OWNER="usbmux", @udev_activation_rule@ 10SUBSYSTEM=="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@
11 11
12# Exit usbmuxd when the last device is removed 12# Exit usbmuxd when the last device is removed
13SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ACTION=="remove", RUN+="@sbindir@/usbmuxd -x" 13SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/(12[9a][0-9a-f]|8600)/*", ACTION=="remove", RUN+="@sbindir@/usbmuxd -x"