概述
這篇文章是呼應使用QXDM收集高通modem日志里邊提到的一個想法
通過分析QXDM的原理可以知道 他其實是和手機做了串口連接(不知道這么描述是不是準確)坦袍,用usb模擬了串口捂齐,然后通過串口協(xié)議拿到了手機的modem日志流缩抡。知道了這個就可以考慮如果Android可以自己直接訪問這個串口那么是不是我們就可以在手機里邊拿到這個日志流了?
不會講到具體的Android 串口通信压真,并且沒啥干貨只是講了兩個學習調研方向,就是這么水榴都。
虛擬串口通信
虛擬串口通信描述的可能不太準確,最準確的說法應該是Android設備自身模擬外部設備給Android的某個串口發(fā)送信息竿音。也就是上邊說的手機自己獲取modem日志流的一個思路拴驮。Android自身模擬PC端的軟件給Android串口發(fā)送數據。
這篇博客會簡單的描述一個思路套啤,因為代碼我也沒跑通。網上相關的資料不多潜沦,很多資料深入到硬件領域,閱讀起來比較困難涝影。當然也可能是由于硬件領域了解過少争占,沒有找到合適的資料搜索方向。
其實這篇文章規(guī)劃的是去年寫的伯襟,就是因為當時一點頭緒都沒有拖到了現在握童。直到前兩天在github上看到一個項目,是手機客戶端收集高通Modem日志的腳本:
mount -t vfat -o rw /dev/block/sda1 /sdcard/udisk2
chmod 777 /dev/ttyUSB*
echo -e "AT+QCFG="dbgctl",0\r\n " > /dev/ttyUSB4
sleep 1s
QAndroidLog -p ttyUSB2 -b 115200 -s /storage/udisk2/qxdmlog -f /sdcard/default.cfg &
根據項目描述澡绩,這就是打開手機收集Modem日志的關鍵腳本。
分析腳本內容淀衣,其實就是使用echo命令把AT指令發(fā)到Android的串口召调。這也應該是QXDM收集日志的串口通信內容蛮浑,但是在我的手機上并沒有生效只嚣,估計是串口掛載不成功或者指令和我的手機不適配。上邊的命令行可能只能適配一些具體的手機型號册舞。
雖然這次沒有成功的達到目的,不過除了驗證了我之前的思路是正確的盛杰,還提供了兩個具體的思路:
Android給自身串口發(fā)送消息的方式:使用echo命令給相應的設備文件發(fā)送信息藐石。
QXDM控制CPU使用的指令集:AT指令(高通CPU)。
如果還有小伙伴有這個需求逗嫡,可以從這兩個角度去探索。我最近一段時間在這個方向應該不會有進一步的學習調研了驱证,(總感覺這個更適合搞硬件的攻城獅同學搞??????)如果以后工作或者學習過程中在這方面有更進一步的會隨緣更新這篇博客恋腕。