Windows上基于软件的Android附件

lac*_*cop 6 usb android driver libusb winusb

我想使用我的应用程序将我的电脑变成Android配件.因此,与专用硬件不同,这将只是将手机切换到附件模式的PC,从而在与主机硬件相关联的手机上启动一些Java应用程序并创建通信通道.

我在Linux上使用libusb 找到了一个示例代码(加上一些Java Android应用程序).它通过使用标准VID和PID"打开"手机来工作.然后它发送命令打开附件模式,以及模型,版本等元数据.

如果手机支持配件模式,它将断开并重新枚举不同的PID.然后,示例代码检查它是否执行并打开新设备.

但是,我正试图在Windows上运行它.我找到了一些USB库,比如LibUsbDotNet,但它们似乎都要求设备使用WinUSB/libusb驱动程序.我在LibUsbDotNet中使用了一个工具来为我的手机生成一个libusb驱动程序,并将其安装在旧的通用可移动驱动器上.但这意味着我现在无法将手机作为可移动驱动器访问,因此这不是解决方案.

有没有办法(最好是库)可以打开任何基于VID和PID的连接USB设备,然后向它发送一些原始命令?

之后,设备将使用不同的PID重新枚举,我可以使用它来创建自己的WinUSB驱动程序,因此这不是问题.我只需要通过/围绕默认驱动程序注入一些命令来打开附件模式.

(我更喜欢.NET解决方案,但任何Windows都可以,我可以编写自己的互操作包装器)

小智 1

我也在寻找类似的解决方案。我尝试了Linux版本,带有libusb,有一点小问题,能够与设备通信。在 Windows 上寻找解决方案时,我尝试了很多技巧。如果需要在 ADK 模式下与设备通信,我需要发送几个供应商命令,现在我需要在大容量存储模式下连接时执行此操作。使用大容量存储驱动程序这是不可能的。我尝试获取连接的 USB 设备的节点句柄,看看是否可以发送供应商命令,但在那里我只能提交“获取描述符”请求。所以我采用了丑陋的方法,用 libusb-win32 替换了大容量存储驱动程序,看看它是否可以做同样的事情,是的,它有效,但根本不是一个好的解决方案。

仍在搜索中..