Usb4java库,声明接口时出错

Usb4java库,声明接口时出错,java,usb,usb4java,Java,Usb,Usb4java,在这里,我使用库usb4java访问我的usb设备 问题是,我在尝试声明usb设备的接口时出错。错误在这一行: int msg=LibUsb.claimInterface(deviceHandler,1) 错误:USB错误3:无法声明接口:访问被拒绝(权限不足) 是否有人知道我为什么会出现此错误或如何修复此错误?我有与您相同的问题,我的环境是Mac OS X 10.9 在谷歌搜索了很长时间后,我终于找到了这个帮助我解决问题的方法,现在我的代码工作起来很有魅力 解决方案是,因为mac会自动声明设备

在这里,我使用库usb4java访问我的usb设备

问题是,我在尝试声明usb设备的接口时出错。错误在这一行:

int msg=LibUsb.claimInterface(deviceHandler,1)

错误:USB错误3:无法声明接口:访问被拒绝(权限不足)


是否有人知道我为什么会出现此错误或如何修复此错误?

我有与您相同的问题,我的环境是Mac OS X 10.9

在谷歌搜索了很长时间后,我终于找到了这个帮助我解决问题的方法,现在我的代码工作起来很有魅力

解决方案是,因为mac会自动声明设备,我们可以为它创建一个虚拟驱动程序

下面是如何做到这一点的步骤

  • /System/Library/Extensions/Proxmark3.kext/Contents中创建Info.plist,如果缺少父文件夹,则应创建父文件夹,文件内容如下:
  • 
    CfBundledDevelopmentRegion
    英语
    循环流化床锅炉
    CbundleIdentifier
    com.proxmark.driver.dummy
    CbundleInfo字典版本
    6
    CbundlePackageType
    基特
    CFBundleSignature
    ????
    循环流化床锅炉
    1.0.0d1
    伊奥基特个性
    Proxmark3
    CbundleIdentifier
    com.apple.kpi.iokit
    IOClass
    丢失服务
    IOProviderClass
    双向接口
    B配置值
    1.
    二进制接口号
    0
    idProduct
    {您的usb硬件产品id}
    idVendor
    {您的usb硬件供应商id}
    奥斯本图书馆
    com.apple.iokit.iosbfamily
    1.8
    
    我有与您相同的问题,我的环境是Mac OS X 10.9

    在谷歌搜索了很长时间后,我终于找到了这个帮助我解决问题的方法,现在我的代码工作起来很有魅力

    解决方案是,因为mac会自动声明设备,我们可以为它创建一个虚拟驱动程序

    下面是如何做到这一点的步骤

  • /System/Library/Extensions/Proxmark3.kext/Contents中创建Info.plist,如果缺少父文件夹,则应创建父文件夹,文件内容如下:
  • 
    CfBundledDevelopmentRegion
    英语
    循环流化床锅炉
    CbundleIdentifier
    com.proxmark.driver.dummy
    CbundleInfo字典版本
    6
    CbundlePackageType
    基特
    CFBundleSignature
    ????
    循环流化床锅炉
    1.0.0d1
    伊奥基特个性
    Proxmark3
    CbundleIdentifier
    com.apple.kpi.iokit
    IOClass
    丢失服务
    IOProviderClass
    双向接口
    B配置值
    1.
    二进制接口号
    0
    idProduct
    {您的usb硬件产品id}
    idVendor
    {您的usb硬件供应商id}
    奥斯本图书馆
    com.apple.iokit.iosbfamily
    1.8
    
    对于Linux系统,听起来用户没有访问USB设备的权限

    这可以通过在/etc/udev/rules.d中添加一个规则来更改,例如,名称为“50USB权限.rules”和内容

    SUBSYSTEM=="usb", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678",
        MODE="0666",GROUP="users"
    
    十六进制数字1234是供应商ID,5678是连接的USB设备的productid,可以通过“lsusb-v”找到。示例规则允许用户组“用户”访问指定的usb设备。重新启动后,将应用该规则


    根据Linux版本的不同,路径可能会有所不同。

    对于Linux系统,听起来用户似乎没有访问USB设备的权限

    这可以通过在/etc/udev/rules.d中添加一个规则来更改,例如,名称为“50USB权限.rules”和内容

    SUBSYSTEM=="usb", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678",
        MODE="0666",GROUP="users"
    
    十六进制数字1234是供应商ID,5678是连接的USB设备的productid,可以通过“lsusb-v”找到。示例规则允许用户组“用户”访问指定的usb设备。重新启动后,将应用该规则


    根据Linux版本的不同,路径可能不同。

    我在MacOS上运行adb服务器时遇到此错误。重新启动计算机释放了接口,以便我可以再次申请。但是,每当adb启动时,它都会锁定USB接口,需要重新启动计算机。

    我在MacOS上运行adb服务器时遇到此错误。重新启动计算机释放了接口,以便我可以再次申请。但是,任何时候adb启动时,它都会锁定USB接口,需要重新启动计算机。

    有没有办法解决Windows机器上的相同问题?在Sierra 10.12.4中,使用此解决方法,我在键入kextutil-t Proxmark.kext时遇到此错误:错误:com.Proxmark.driver.dummy的签名无效,不会加载。有什么想法吗?@Gonzalosora您需要从OSX 10.11版开始禁用系统完整性保护。注意:有没有办法在Windows机器上解决同样的问题?在Sierra 10.12.4中,使用此解决方法,我在键入kextutil-t Proxmark.kext时遇到以下错误:错误:com.Proxmark.driver.dummy的签名无效,将不会加载。有什么想法吗?@Gonzalosora您需要从OSX 10.11版开始禁用系统完整性保护: