sane-find-scanner treats any USB device with a vendor-specific device/interface class as a scanner
In the code here (for libusb 0.1 and 1.0, respectively):
- https://gitlab.com/sane-project/backends/-/blob/master/tools/sane-find-scanner.c#L652-673
- https://gitlab.com/sane-project/backends/-/blob/master/tools/sane-find-scanner.c#L1039-1060
When a USB device has at least one interface where the class is "vendor-specific", that device is immediately determined to be a scanner.
Many other types of USB devices have vendor-specific interface(s), often in addition to standard interfaces. A particular example here is cellular adapters (which usually have a standard USB CDC interface as well), and Wi-Fi adapters.
This issue was reported downstream as causing scanning software to try to use the wrong USB device.
Even if we don't maintain a list of USB VID/PIDs, can we do something to improve the heuristic here?
Edited by David Ward