Hello,
I have recently worked on android usb protocal to communicate with a raspberry pi.
You say that you have to do it in C/C++, but you can do it in Java, there is USB Host api on Java, so you don't have to use libusb. ( I have used libusb on raspberry )
Maybe I can help you,
Contact me if you are interested.
Regards,
Kim