Hi All, even though my Samsung Galaxy S9 support the AOA v2.0 version, I am unable to get it re-enumerated as a AOAv2 device through a control transfer request.
Following instructions in
https://source.android.com/devices/accessories/aoa I am able to confirm that my Samsung S9 supports AOA v2.0 by issuing the following control request and I get the return as "2".
ret = ldev.ctrl_transfer(0xC0, 51, 0, 0, 2)
print ("\n2. Protocol version: {}".format(ret[0]))
However, following the instructions in
https://source.android.com/devices/accessories/aoa2 I am unable to get my Samsung s9 re-introduce as a device with any one of the 0x2D02, 0x2D03, 0x2D04, 0x2D05 PIDs.
ret = ldev.ctrl_transfer(0x40, 54, 0x01, len(descriptor_str), "")
The Samsung S9 is not changing its VID/PID and re-introducing itself as a AOAv2 accessory. The return value is '0' which I am interpreting as 'True'.
I do not have any issues with AOAv1. I am able to get my Samsung s9 successfully re-introduced as an AOA v1 accessory with a PID of 0x2D01 by the following code. I was also able to successfully write an android app and exchange data back and forth using the bulk endpoints.
ret = ldev.ctrl_transfer(0x40, 53,0, 0, None)
Even though my Samsung S9 says it is supporting AOAv2, why is it not changing and reintroducing as a AOAv2 accessory when issued with control transfer request? Is there anything wrong with my ctrl_transfer statement? Why does it work with AOAv1 and not AOAv2?
Thank you so much for your assistance.