概述
这篇文章是呼应使用QXDM收集高通modem日志里边提到的一个想法
通过分析QXDM的原理可以知道 他其实是和手机做了串口连接(不知道这么描述是不是准确),用usb模拟了串口,然后通过串口协议拿到了手机的modem日志流。知道了这个就可以考虑如果Android可以自己直接访问这个串口那么是不是我们就可以在手机里边拿到这个日志流了?
不会讲到具体的Android 串口通信,并且没啥干货只是讲了两个学习调研方向,就是这么水。
虚拟串口通信
虚拟串口通信描述的可能不太准确,最准确的说法应该是Android设备自身模拟外部设备给Android的某个串口发送信息。也就是上边说的手机自己获取modem日志流的一个思路。Android自身模拟PC端的软件给Android串口发送数据。
这篇博客会简单的描述一个思路,因为代码我也没跑通。网上相关的资料不多,很多资料深入到硬件领域,阅读起来比较困难。当然也可能是由于硬件领域了解过少,没有找到合适的资料搜索方向。
其实这篇文章规划的是去年写的,就是因为当时一点头绪都没有拖到了现在。直到前两天在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指令发到Android的串口。这也应该是QXDM收集日志的串口通信内容,但是在我的手机上并没有生效,估计是串口挂载不成功或者指令和我的手机不适配。上边的命令行可能只能适配一些具体的手机型号。
虽然这次没有成功的达到目的,不过除了验证了我之前的思路是正确的,还提供了两个具体的思路:
Android给自身串口发送消息的方式:使用echo命令给相应的设备文件发送信息。
QXDM控制CPU使用的指令集:AT指令(高通CPU)。
如果还有小伙伴有这个需求,可以从这两个角度去探索。我最近一段时间在这个方向应该不会有进一步的学习调研了,(总感觉这个更适合搞硬件的攻城狮同学搞🤣🤣🤣)如果以后工作或者学习过程中在这方面有更进一步的会随缘更新这篇博客。
网友评论