使用这个组件最重要的意义在于:
首先,你不再需要在 win、linux 等平台上写 c/c++ 等 native 组件,甚至,你不需要知道 jni 怎么写;
其次,使用这个组件,你可以访问所有的 usb 设备,当然,前提条件是你必须知道 usb 设备的相关指令(我当前就用这个组件,直接发usb能接受的命令,去控制我的指纹仪来工作)
最后,如果你的 usb 设备没有驱动程序,比如,你的 usb 设备是自己研制出来的,还没来得及为各种平台写驱动程序,你可以用这个组件提供驱动程序
从:http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/ 下载 libusb-win32-bin-1.2.2.0.zip
从 http://sourceforge.net/projects/libusbjava/files/libusbjava-snapshots/20090517/ 下载 ch.ntb.usb-0.5.9.jar 和 LibusbJava_dll_0.2.4.0.zip
安装 libusb-win32:
1)、解压 libusb-win32-bin-1.2.2.0.zip;
2)、把目录:\bin\x86 下的 libusb0_x86.dll 复制到 windows/system32 目录下,并改名为:码册裂libusb0.dll;
3)、把目录:\bin\x86 下的 libusb0.sys 复制到 windows/system32/drivers 目录下
4)、运行 install-filter-win.exe ,从中选择安装你要访问的 usb 设备
5)、运行 testlibusb-win.exe,有正确的提示信息。如下图:
注意:如果你运行第4)步时,出现无法安装libusb0服务、无法找到文件等错误,或者运行第5)步时,界面中“Driver version:”后面的版本号是,-1.-1 -1 ...这些情况,说明你的安装不正常。原因可能是因为你的usb设备是新安装的,且你没有重启计算机。你重启一下计算机,再进行上述步骤,应该就可以了。
把 LibusbJava.dll 复制到 windows/system32 目录下
这时,到达 ch.ntb.usb-0.5.9.jar 所在的目录,运行: java -jar ch.ntb.usb-0.5.9.jar,这样就会出来一个java swing做的窗口,如下图。
当右键点击迟闭倒数第二级的节点的时候,又会d出新的窗口,在这个d出窗口里,你可以直接发送一些16进制的代码给 usb 设备。但值得注意的是,这个窗口的代码写得有问题,其对16进制的代码转换为真正要发送的代码时,转换的是错误的代码。这个错误可以自己下载姿毁源码,更正即可。错误的类及方法是:
TestApp.java 中的方法:byte[] parseByteArray(String s);更正的代码可以参考如下代码:
Java代码
重新编译后,替换掉这个类,即可。
byte[] parseByteArray(String s) {
String[] hexs = s.split(" ")
byte[] bytes = new byte[hexs.length]
if(hexs.length >0){
int i = 0
for(String hex : hexs){
String s1 = hex.substring(2)
bytes[i] = (byte)(Integer.parseInt(s1, 16))
i++
}
}
return bytes
}
1. 通过udev规则:创建udev规则文件来控制USB设备的访问,弯历例如禁止特定设备或者实施USB驱动程序的自动装载。2. 使用usbguard:USBGuard是一种开源软件,可以根据标识符和规则来管理USB设备的访问,可以有效防止未知的USB设备被连接到系统。
3. 通过iptables:可以使用iptables来限制USB设备的流量,例如可以设置一组规则来阻止不同类型的USB设备访问系统。
4. 通过usbkill:usbkill是一款开档如源的Linux安全工具,可以监控特定的埋蠢搜USB设备,当检测到特定的USB设备连接到系统时,可以立即停止系统的运行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)