summaryrefslogtreecommitdiffstats
path: root/udev
diff options
context:
space:
mode:
Diffstat (limited to 'udev')
-rw-r--r--udev/39-usbmuxd.rules.in16
-rw-r--r--udev/85-usbmuxd.rules.in7
-rw-r--r--udev/CMakeLists.txt2
-rw-r--r--udev/Makefile.am20
4 files changed, 36 insertions, 9 deletions
diff --git a/udev/39-usbmuxd.rules.in b/udev/39-usbmuxd.rules.in
new file mode 100644
index 0000000..ac15593
--- /dev/null
+++ b/udev/39-usbmuxd.rules.in
@@ -0,0 +1,16 @@
+# 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]/*|5ac/190[1-5]/*|5ac/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]/*|5ac/190[1-5]/*", ACTION=="add", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="0", OWNER="usbmux", @udev_activation_rule@
+# but make sure iBridge (T1) doesn't end up in an unconfigured state
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/8600/*", ACTION=="add", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="1", 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]/*|5ac/190[1-5]/*|5ac/8600/*", ACTION=="bind", ENV{USBMUX_SUPPORTED}="1", OWNER="usbmux"
+
+# Exit usbmuxd when the last device is removed
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*|5ac/190[1-5]/*|5ac/8600/*", ACTION=="remove", RUN+="@sbindir@/usbmuxd -x"
diff --git a/udev/85-usbmuxd.rules.in b/udev/85-usbmuxd.rules.in
deleted file mode 100644
index 3856c79..0000000
--- a/udev/85-usbmuxd.rules.in
+++ /dev/null
@@ -1,7 +0,0 @@
-# usbmuxd (iPhone "Apple Mobile Device" MUXer listening on /var/run/usbmuxd)
-
-# Forces iPhone 1.0, 3G, 3GS, iPodTouch 1/2 and iPad to USB configuration 3 and run usbmuxd
-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="129[0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -u -U usbmux"
-
-# Exit usbmuxd when the last device is removed
-ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/129[0-9a-f]/*", ENV{INTERFACE}=="255/*", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -x"
diff --git a/udev/CMakeLists.txt b/udev/CMakeLists.txt
deleted file mode 100644
index 0f7042d..0000000
--- a/udev/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/85-usbmuxd.rules.in ${CMAKE_CURRENT_BINARY_DIR}/85-usbmuxd.rules @ONLY)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/85-usbmuxd.rules DESTINATION /lib/udev/rules.d/)
diff --git a/udev/Makefile.am b/udev/Makefile.am
new file mode 100644
index 0000000..95f565d
--- /dev/null
+++ b/udev/Makefile.am
@@ -0,0 +1,20 @@
+edit = \
+ $(SED) -r \
+ -e 's|@udev_activation_rule[@]|$(udev_activation_rule)|g' \
+ -e 's|@sbindir[@]|$(sbindir)|g' \
+ < $< > $@ || rm $@
+
+udevrules_DATA = \
+ 39-usbmuxd.rules
+
+39-usbmuxd.rules: 39-usbmuxd.rules.in
+ $(edit)
+
+EXTRA_DIST = \
+ 39-usbmuxd.rules.in
+
+MAINTAINERCLEANFILES = \
+ 39-usbmuxd.rules
+
+CLEANFILES = \
+ 39-usbmuxd.rules