diff --git a/70-bose-dfu.rules b/70-bose-dfu.rules index 2ae1555..712cee0 100644 --- a/70-bose-dfu.rules +++ b/70-bose-dfu.rules @@ -1,7 +1,13 @@ # Bose PIDs -# SoundLink Color II, normal and DFU modes respectively -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="40fe|400d", TAG+="uaccess" +# All devices tested so far, normal mode +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="40fe", TAG+="uaccess" -# SoundLink Mini II, DFU mode (normal mode shared with Color II) +# SoundLink Color II, DFU mode +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="400d", TAG+="uaccess" + +# SoundLink Mini II, DFU mode SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="4009", TAG+="uaccess" + +# QuietComfort 35 II, DFU mode +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="4020", TAG+="uaccess" diff --git a/src/device_ids.rs b/src/device_ids.rs index 47aeae6..8fd97c8 100644 --- a/src/device_ids.rs +++ b/src/device_ids.rs @@ -3,11 +3,17 @@ use std::fmt::Display; const BOSE_VID: u16 = 0x05a7; const BOSE_HID_USAGE_PAGE: u16 = 0xff00; +// TODO: It turns out that many devices share the same normal mode PID, so +// we should at least tweak the wording that currently lists everything with +// a PID in this list as a "compatible device". Perhaps add an additional +// match on product string? const COMPATIBLE_DEVICES: &[DeviceIds] = &[ // Bose Color II SoundLink bose_dev(0x40fe, 0x400d), // Bose SoundLink Mini II - bose_dev(0x40fe, 0x4009), // Same normal PID as Color II, not a typo + bose_dev(0x40fe, 0x4009), + // Bose QC35 II + bose_dev(0x40fe, 0x4020), ]; // Use UsbId instead of DeviceIds since some incompatible devices don't have a concept of DFU mode.