Android虛擬串口通信

概述

這篇文章是呼應(yīng)使用QXDM收集高通modem日志里邊提到的一個(gè)想法

通過(guò)分析QXDM的原理可以知道 他其實(shí)是和手機(jī)做了串口連接(不知道這么描述是不是準(zhǔn)確),用usb模擬了串口,然后通過(guò)串口協(xié)議拿到了手機(jī)的modem日志流。知道了這個(gè)就可以考慮如果Android可以自己直接訪問(wèn)這個(gè)串口那么是不是我們就可以在手機(jī)里邊拿到這個(gè)日志流了?

不會(huì)講到具體的Android 串口通信,并且沒(méi)啥干貨只是講了兩個(gè)學(xué)習(xí)調(diào)研方向,就是這么水。

虛擬串口通信

虛擬串口通信描述的可能不太準(zhǔn)確,最準(zhǔn)確的說(shuō)法應(yīng)該是Android設(shè)備自身模擬外部設(shè)備給Android的某個(gè)串口發(fā)送信息。也就是上邊說(shuō)的手機(jī)自己獲取modem日志流的一個(gè)思路。Android自身模擬PC端的軟件給Android串口發(fā)送數(shù)據(jù)。
這篇博客會(huì)簡(jiǎn)單的描述一個(gè)思路,因?yàn)榇a我也沒(méi)跑通。網(wǎng)上相關(guān)的資料不多,很多資料深入到硬件領(lǐng)域,閱讀起來(lái)比較困難。當(dāng)然也可能是由于硬件領(lǐng)域了解過(guò)少,沒(méi)有找到合適的資料搜索方向。
其實(shí)這篇文章規(guī)劃的是去年寫(xiě)的,就是因?yàn)楫?dāng)時(shí)一點(diǎn)頭緒都沒(méi)有拖到了現(xiàn)在。直到前兩天在github上看到一個(gè)項(xiàng)目,是手機(jī)客戶(hù)端收集高通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 &

根據(jù)項(xiàng)目描述,這就是打開(kāi)手機(jī)收集Modem日志的關(guān)鍵腳本。
分析腳本內(nèi)容,其實(shí)就是使用echo命令把AT指令發(fā)到Android的串口。這也應(yīng)該是QXDM收集日志的串口通信內(nèi)容,但是在我的手機(jī)上并沒(méi)有生效,估計(jì)是串口掛載不成功或者指令和我的手機(jī)不適配。上邊的命令行可能只能適配一些具體的手機(jī)型號(hào)。
雖然這次沒(méi)有成功的達(dá)到目的,不過(guò)除了驗(yàn)證了我之前的思路是正確的,還提供了兩個(gè)具體的思路:
Android給自身串口發(fā)送消息的方式:使用echo命令給相應(yīng)的設(shè)備文件發(fā)送信息。
QXDM控制CPU使用的指令集:AT指令(高通CPU)。
如果還有小伙伴有這個(gè)需求,可以從這兩個(gè)角度去探索。我最近一段時(shí)間在這個(gè)方向應(yīng)該不會(huì)有進(jìn)一步的學(xué)習(xí)調(diào)研了,(總感覺(jué)這個(gè)更適合搞硬件的攻城獅同學(xué)搞??????)如果以后工作或者學(xué)習(xí)過(guò)程中在這方面有更進(jìn)一步的會(huì)隨緣更新這篇博客。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容