控制AOA v2和PyUSB之间的传输

时间:2020-05-11 04:39:29

标签: hid libusb pyusb

即使我的三星Galaxy S9支持AOA v2.0版本,我也无法通过控制转移请求将其重新枚举为AOAv2设备。

按照https://source.android.com/devices/accessories/aoa中的说明进行操作,通过发出以下控制请求,我可以确认我的Samsung S9支持AOA v2.0,并且得到的返回值为“ 2”。

ret = ldev.ctrl_transfer(0xC0, 51, 0, 0, 2)
print ("\n2. Protocol version: {}".format(ret[0]))

但是,按照https://source.android.com/devices/accessories/aoa2中的说明,我无法将我的Samsung s9重新引入具有0x2D02、0x2D03、0x2D04、0x2D05 PID中的任何一个的设备。

ret = ldev.ctrl_transfer(0x40, 54, 0x01, len(descriptor_str), "")

Samsung S9不会更改其VID / PID,也不会根据文档将其本身重新引入为AOAv2附件。返回值为“ 0”,我将其解释为“ True”。

我对AOAv1没有任何问题。我可以通过以下代码成功将我的Samsung s9重新引入为PID为0x2D01的AOA v1附件。我还能够成功编写一个android应用程序,并使用批量端点来回交换数据。

ret = ldev.ctrl_transfer(0x40, 53,0, 0, None) 

即使我的三星S9表示它支持AOAv2,当发出控制转移请求时,为什么它也没有更改并作为AOAv2配件重新引入?我的ctrl_transfer语句有什么问题吗?为什么它适用于AOAv1而不适用于AOAv2?

0 个答案:

没有答案