最近业务上有一个需求,帮助运营商做voLTE 信令分析。乍一听这个需求,作为一个应用层的码畜瞬间感觉头大,voLTE是什么,信令又是什么,怎么做分析... 只好面向Google 编程。经过搜索渐渐的有了头绪:
1 信令分析其实是信令日志分析。
2 信令日志是由modem打印的,十分底层和并且和cpu架构相关,应用层基本获取不到的。
3 高通的modem日志可以用专门的pc 软件QXDM+QPST+QCAT收集分析。
我们业务的最终目的是用手机自身分析信令日志。解决方案分为两步:
1 获取日志流 解决方案有:直接一个apk解决,或者定制rom,或者在linux底层解决等等。
2 日志流分析 解决方案:手机性能足够的情况下直接手机处理,手机性能不足或者有其他原因则发回后台,后台处理。
剥离我们自身业务后,此系列博客暂时分为三篇:
Android串口通信
日志流处理(暂无)
使用QXDM收集高通modem日志
QXDM是高通的一个专门做高通modem日志分析的软件,pc安装后连接手机即可收集日志,但是网上资料基本都是几年前的,尝试的时候踩了不少坑。
参考资料:
https://blog.csdn.net/sdwuyulunbi/article/details/81587671
准备工具:
pc上安装 QPST和QXDM 链接: https://pan.baidu.com/s/1ws8ybrv89ZihDeOIcWxjDw 提取码: p74j
一台root之后的高通cpu手机(我的测试机是红米5A)
usb线
1 安装 QPST和QXDM
没什么好说的,直接next next就行,但是这有一点需要注意的是安装QXDM时要等QXDM下载一个qt5Webkit.dll的文件,否则安装后启动不了,而且这个文件下载巨慢,我是在挂了VPN的情况下才下载成功。
2 打开手机的高通 diag端口
这一步网上大部分教程是没有的,在这卡了我好久,甚至从一个刷机群里找到了一个需要拆机的方案。最终在miui论坛找到了一条adb命令,后来想了一下其实还是在搜索时问题描述的不准确,正确描述为“如何打开diag端口”,我之前之一描述的是如何打开手机COM端口。可见正确描述问题特别重要。
手机连接pc后,进入开发者模式,打开usb调试。打开adb命令窗口
adb shell
su
setprop sys.usb.config diag
即可成功打开diag端口
打开后打开电脑的设备管理器,在端口里边能看见你的手机设备则说明已经打开了diag端口。
3 QXDM连接手机
打开工具包里的3.dmc文件来启动QXDM软件,启动过程中会自动打开QPSTConfig。
点击
打开设备选择界面,点击Connect进行连接。
然后就可以看见日志流了
通过分析QXDM的原理可以知道 他其实是和手机做了串口连接(不知道这么描述是不是准确),用usb模拟了串口,然后通过串口协议拿到了手机的modem日志流。知道了这个就可以考虑如果Android可以自己直接访问这个串口那么是不是我们就可以在手机里边拿到这个日志流了?
下一篇详细介绍 Android串口通信