MT9669 Android9.0 SDK,其默认有USB OTG口的切换逻辑,需要依赖uboot参数,但我们觉得太麻烦的,其没法做到动态切换,故我们研究了下其Kernel源码,以及Android系统标准的ADB配置逻辑,只需要在调试串口执行下述命令,就可以让USB OTG(一般为USB0)口在HOST和DEVICE模式间来回切换,并启动ADB功能,大大方便调试:
su
echo 1 > /sys/class/gpio/gpio165/value
echo 1 > /sys/devices/Mstar-otg/software_id
echo 0x0006 > /config/usb_gadget/g1/idProduct
echo 0x2207 > /config/usb_gadget/g1/idVendor
echo 0x0310 > /config/usb_gadget/g1/bcdDevice
echo 0x0200 > /config/usb_gadget/g1/bcdUSB
echo 0123456789 > /config/usb_gadget/g1/strings/0x409/serialnumber
stop adbd
start adbd
setprop persist.sys.usb.config adb
setprop sys.usb.config adb
其中,/sys/devices/Mstar-otg/software_id值为0表示HOST,1为DEVICE。
对于上述命令,如果不改VID和PID,会识别为 Aurora设备,不能正常识别为ADB设备,故将上述VID和PID配置为RK方案的参数(有安装过RK的ADB驱动