android USB端口切換


版權聲明:本文爲CSDN博主「通信俠」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_28534581/article/details/80308518

 

前言:有一個韓國客戶,爲了過認證需要調用rndis端口。這個功能在三星手機上可以查看到,但是一般的android設備都沒有打開該功能,估計是三星自己加的。

話不多說,usb端口功能早就寫好了,只是需要驅動分析是否支持再打開相應開關。實現是在文件init.qcom.usb.rc裏,現在截取我們需要的功能:

on property:sys.usb.config=rndis,serial_smd,diag,adb
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 05C6
    write /sys/class/android_usb/android0/idProduct 90B6
    write /sys/class/android_usb/android0/f_diag/clients diag
    write /sys/class/android_usb/android0/f_serial/transports smd
    write /sys/class/android_usb/android0/functions rndis,serial,diag,adb
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state rndis,adb
1
2
3
4
5
6
7
8
9
10
11
可以看到,只要屬性sys.usb.config被設置了,下面的每條指令都會被執行一遍,05c6/90B6是不是很熟悉,這些我們都可以鏈接電腦通過設備管理器看到相應的端口。 
這裏還有一個小坑,就是設置完成後,系統會檢查sys.usb.state和sys.usb.config是否相等,相等了纔會設置下去,否則就還原。 
所以我們實際設置的並不是這個屬性值rndis,serial_smd,diag,adb,而是rndis,adb

on property:sys.usb.config=rndis,adb
    setprop sys.usb.config rndis,${persist.sys.usb.config.extra},adb
1
2
這裏就需要添加另一個屬性persist.sys.usb.config.extra,在裏面添加相應的值,就能對應最上面的值了,即persist.sys.usb.config.extra=serial_smd,diag
————————————————
版權聲明:本文爲CSDN博主「通信俠」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_28534581/article/details/80308518

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章