Changelog Klaus Reimer Refactored project structure back into a single project. Native libraries are now included in the main JAR file. Corrected endpoint index in JNI libraries. Refactored loading of native libraries. The libraries are now a standard Java dependency and are automatically extracted during runtime. So no java.library.path or LD_LIBRARY_PATH tinkering needed anymore. Just put the two JARs into your class path and that's it. Improved error messages when loading the JNI library fails. Fixed library paths in dylibs so they can be placed in *.app/Contents/MacOS. Now trying to load the JNI library with the following library names: usb4java, usb4java32, libusb4java, libusb4java32. Fixed missing support for custom buffer offsets and lengths. Fixed problem with empty control requests on Mac OS X. Implemented configuration to control the communication timeout. Implemented configuration to control the scan mode and to improve scan performance by filtering for specific vendor and product ids. libusb reports broken bus root devices when detaching USB devices and when user has no root permissions on linux. Fixed it by only trusting root devices which are also in the device list of a bus.