diff --git a/src/calibre/devices/mtp/unix/driver.py b/src/calibre/devices/mtp/unix/driver.py index c763da3a45..71914cddc0 100644 --- a/src/calibre/devices/mtp/unix/driver.py +++ b/src/calibre/devices/mtp/unix/driver.py @@ -25,6 +25,8 @@ def fingerprint(d): return MTPDevice(d.busnum, d.devnum, d.vendor_id, d.product_id, d.bcd, d.serial, d.manufacturer, d.product) +APPLE = 0x05ac + class MTP_DEVICE(MTPDeviceBase): # libusb(x) does not work on OS X. So no MTP support for OS X @@ -53,7 +55,8 @@ class MTP_DEVICE(MTPDeviceBase): devs = set() for d in devices_on_system: fp = fingerprint(d) - if fp not in self.blacklisted_devices: + if fp not in self.blacklisted_devices and fp.vendor_id != APPLE: + # Do not try to open Apple devices devs.add(fp) # Clean up ejected devices @@ -93,7 +96,7 @@ class MTP_DEVICE(MTPDeviceBase): p(err) return False devs = [d for d in devices_on_system if (d.vendor_id, d.product_id) - in self.known_devices] + in self.known_devices and d.vendor_id != APPLE] if not devs: p('No known MTP devices connected to system') return False