概述
首先本人这篇文章出自转载,做一个笔记
https://blog.csdn.net/ciellee/article/details/88125110
【GSM】Qualcomm GSM Packets log 分析(一) 之 System Infomation 系统消息
Log 分很多种,最初的概念是Events,往下再细点就是 Packets ,
再往下细点就是 DebugMsg( 代码中一条条的打印,需结合代码才能分析 ).
今天我们主要是针对 GSM Packets 来学学应该如何分析。
首先我们打开QCAT,Filter 的 GSM 中就有很多Packets。
1. 部分Packets介绍
我们主要关注一些 GSM 注网、注册、没服务、电话无法拨号、电话声音不好类似的问题。
[0x5064] GSM Power Scan Results: 这是GSM最重要的一个packets,这个packets主要是功能就是搜网的时候,将周围所有无线信号进行统筹,分析谁强谁弱,它就是统筹的结果。
[0x5065] GSM L1 FCCH Acquisition: 这些和 Layer 1 开头的packets 和我们关系不大,基本上不用看。
[0x50C8] GSM L2 States:
[0x512C] GSM RR State:
2. Call Flow Analysis
在菜单栏 view—> Call Flow Analysis 中打开Call Flow Analysis,截图如下:
在上图中,主要是反应了 GSM 各模块之间驱动的消息,通过这个模块,可以大概知道,手机GSM 当前走到哪个模块了,即手机软件中模块的调用流程。
如下图:
说明 CM 模块在 Msg 1 中发送了一个消息 ID=0xa 发给 REG 模块
REG 模块收到消息后,就发送了一个消息 MS MM REG? ID=: 0xc 给 MM 模块,
MM模块接收到消息后,就发送了一个消息 给 RRC 模块。
这就是一个基本的消息调用流程,点击对应的消息,就能在packets list 中,获取到对应的log
3. 查看手机 System Infomation系统消息
[0x5A64] GSM DSDS Power Scan Results
[0x5064] GSM Power Scan Results : 搜网时,周围所有无线信号的统筹结果
[0x512F] GSM RR Signaling Message : GSM 终端 和 网络 信令交互的记录
在消息中,
BS>>>MS,说明是下行消息,基站发送消息给手机
BS<<
1). 当看到连续好多栏都是 BS>>>MS 这个时,说明手机处于Idle 状态,
如果在 Idle时,看到很多System Infomation系统消息堆在一块,
说明此时手机并不是纯净的Idle,要不是就是在重选,要么就是在选网。
2). 系统消息System Infomation Type 分 Type1、Type2、Type3、Type4、Type5、Type6 六种
Type1、Type2、Type3、Type4: 这些是当手机处于非连接状态(空闲状态)的时候才收的消息
Type5、Type6:手机处于连接状态下收到的消息(比如打电话,注网,收发短信)
3). GSM Power Scan list : 手机当前小区所有能用的网络的强度由强到弱的列表,可以看到搜网数量及强度
搜索到网络后,手机会将 Power Scan list 中的结果,从强到弱慢慢去试试
=================
2019 Mar 4 09:18:44.844 [BC] 0x5A64 GSM DSDS Power Scan Results
Subscription ID = 2
Scanned = 32 channels =====> 说明搜索到的网络总说,说明搜索到 32 个网络
Threshold = -107.00 dBm =====> 这个是信号强度,必须要大于这个门限才能上报
List Size = 25 channels =====> 25个能够使用的网络,下面就是所有网络的列表,从强到弱排序
|-------|--------|-------------|----------------|
|rank |arfcn |power(dBm) |band |
|-------|--------|-------------|----------------|
| 1 | 579 | -81.13 | 9 ( DCS)|
| 2 | 575 | -81.19 | 9 ( DCS)|
| 3 | 584 | -81.44 | 9 ( DCS)|
| 4 | 574 | -81.50 | 9 ( DCS)|
| 5 | 585 | -81.69 | 9 ( DCS)|
| 6 | 576 | -82.06 | 9 ( DCS)|
| 7 | 578 | -82.13 | 9 ( DCS)|
| 8 | 569 | -82.94 | 9 ( DCS)|
| 9 | 570 | -83.06 | 9 ( DCS)|
| 10 | 567 | -84.06 | 9 ( DCS)|
| 11 | 631 | -84.63 | 9 ( DCS)|
| 12 | 630 | -84.81 | 9 ( DCS)|
| 13 | 572 | -85.06 | 9 ( DCS)|
| 14 | 627 | -85.06 | 9 ( DCS)|
| 15 | 624 | -86.31 | 9 ( DCS)|
| 16 | 635 | -86.56 | 9 ( DCS)|
| 17 | 633 | -86.63 | 9 ( DCS)|
| 18 | 19 | -94.56 | 8 ( GSM 900)|
| 19 | 20 | -96.75 | 8 ( GSM 900)|
| 20 | 25 | -102.81 | 8 ( GSM 900)|
| 21 | 11 | -102.94 | 8 ( GSM 900)|
| 22 | 21 | -103.13 | 8 ( GSM 900)|
| 23 | 29 | -104.19 | 8 ( GSM 900)|
| 24 | 17 | -104.25 | 8 ( GSM 900)|
| 25 | 16 | -105.69 | 8 ( GSM 900)|
4). System Infomation Type 3 :
Type 3 示例一:
手机收到这个系统消息说明: 这里有一个联通小区,如果手机是中国联通卡,且接收功率能够在 -95dBm 以上,就能够接入这个小区。
cell_ident: # 小区编号
Loc_area_ident: # 运营商编号(非常重要!!!) 比如: 46001 中国联通GSM 网
acc_1 = 4 (0x4)
acc_2 = 6 (0x6)
acc_3 = 0 (0x0)
acc_3 = 15 (0xf)
acc_1 = 0 (0x0)
acc_2 = 1 (0x1)
loc_area_code = 16027 # 位置编号
control_chan_desc:
bs_pa_mfrms = 0 (0x0) # 寻呼周期 (非常重要!!! 尤其是分析功耗问题时)
t_3212_timeout = 10 (0xa) # 手机周期性位置更新的定时器,1单位=6分钟, 10:一小时,意味着注网后每隔1小时做一次位置更新
cell_sel_params: # 小区选择参数,说明是小区能不能用的参数
rxlev_access_min = 15 (0xf) # 最小接入电平 (非常重要!!!)
### 手机如果在当前小区驻留,手机功率必须达到的最低电平, 15-110 = -95dBm ,意味着手机接收功率必须在 -95dBm 以上才能驻留
### 这个最小接入电平可大可小,不一定,大的时候可以达到60 (-50dBm);小的时候可以到0 (-110dBm)不设限制
### 如果这个值设的很大,对手机限制会更高;如果设置的很小,就是来着不拒, 运营商可以通过调整这个值来控制小区接入规则
rach_ctrl_params: # 手机接入的参数
re = 1 (0x1) # 手机是否允许做紧急呼叫
ac = 0 (0x0) # 手机等级
GPRS Indicator: # 这个小区是否支持GPRS, 手机能否上网
SL2 quater Indicator: # 手机有没有可能从 2G 切换到 3G ,如果有说明手机是可以从2G切换到3G的
SL2quater_POSTTION = 0 (0X0)
Type 3 示例二:
手机收到这个信息说明:这是一个移动小区,如果是中国移动卡,且手机接收功率能够在 -102dBm 以上,就可以接入小区
chan_type = 1 (0x1)
l2_pseudo_len = 18 (0x12)
prot_disc_check = 6 (0x6)
trans_id_or_skip_ind = 0 (0x0)
prot_disc = 6 (0x6) (GSM_RR_MANAGEMENT)
msg_type = 27 (0x1b)
prot
rr_man_prot
SYSTEM_INFORMATION_3
cell_ident
cell_ident_val = 34089 (0x8529)
loc_area_ident # 46000 中国移动
mcc_1 = 4 (0x4)
mcc_2 = 6 (0x6)
mcc_3 = 0 (0x0)
mnc_3 = 15 (0xf)
mnc_1 = 0 (0x0)
mnc_2 = 0 (0x0)
loc_area_code = 6263 (0x1877)
control_chan_desc
mscr = 0 (0x0)
att = 1 (0x1)
bs_ag_blks_res = 1 (0x1)
ccch_conf = 2 (0x2)
cbq3 = 0 (0x0)
bs_pa_mfrms = 0 (0x0)
t_3212_timeout = 20 (0x14) # 手机周期性位置更新的定时器,1单位=6分钟, 20:一小时,意味着注网后每隔2小时做一次位置更新
cell_options
pwrc = 1 (0x1)
dtx = 1 (0x1)
radio_link_timeout = 7 (0x7)
cell_sel_params # 小区选择参数,说明是小区能不能用的参数
cell_reselect_hys = 6 (0x6)
ms_txpwr_max_cch = 0 (0x0)
acs = 0 (0x0)
neci = 1 (0x1)
rxlev_access_min = 8 (0x8) # 最小接入电平 8 - 110 = -102
rach_ctrl_params # 手机接入的参数
max_retrans = 2 (0x2) # 手机是否允许做紧急呼叫
tx_int = 13 (0xd)
cell_barr_access = 0 (0x0)
re = 1 (0x1)
ac = 0 (0x0)
si_3_rest
Optional Selection Parameters
padding_bits_H = 1 (H)
Selection Parameters
CBQ = 0 (0x0)
CELL_RESELECT_OFFSET = 50 (0x32)
TEMPORARY_OFFSET = 0 (0x0)
PENALTY_TIME = 20 (0x14)
Optional Power Offset
padding_bits_H = 1 (H)
Power Offset = 1 (0x1)
System Information 2ter Indicator
padding_bits_H = 1 (H)
Early Classmark Sending Control
padding_bits_H = 1 (H)
Scheduling if and where
padding_bits_L = 0 (L)
padding_bits_H = 1 (H)
GPRS Indicator # 这个小区是否支持GPRS, 手机能否上网
RA COLOUR = 1 (0x1)
SI13 POSITION = 0 (0x0)
3G Early Classmark Sending Restriction
padding_bits_L = 0 (L)
padding_bits_H = 1 (H)
SI2quater Indicator
SI2quater_POSITION = 1 (0x1)
System Information 21 Indicator
padding_bits_L = 0 (L)
spare_padding0_count = 1 (0x1)
spare_padding0 = 0 (L)
运营商代码460开头的整理:
46000 中国移动 (GSM)
46001 中国联通 (GSM)
46002 中国移动 (TD-S)
46003 中国电信(CDMA)
46004 空(似乎是专门用来做测试的)
46005 中国电信 (CDMA)
46006 中国联通 (WCDMA)
46007 中国移动 (TD-S)
46008
46009
46010
46011 中国电信 (FDD-LTE)
46000,46002,41004是移动网络的ID号(PLMN标识),它们所支持的接入技术分别为:
46000是中国移动GSM网络的标识号(PLMN标识),所支持的接入技术为 GSM/TD-SCDMA。
46001是中国联通GSM网络的标识号(PLMN标识),所支持的接入技术为 GSM。
46002 是中国移动134/159的SIM卡的PLMN标识,所支持的接入技术为 GSM/TD-SCDMA。
46007是中国移动TD-SCDMA网的PLMN标识,所支持的接入技术为 TD-SCDMA。
41004是中国移动香港的PLMN标识
IMSI 由三部分组成:
移动国家号码 MCC : 由3个数字组成,唯一的识别移动用户所属的国家,中国为460
移动网号MNC : 识别移动用户所归属的移动网
移动用户识别码MSIN: 唯一的识别国内数字窝蜂移动通信网中的移动用户
【GSM】Qualcomm GSM Packets log 分析(二) 之 查看 GSM 驻留信息
驻留和注册概念不一样: 注册需要告诉网络我来了, 驻留是可以偷偷的上,是两码事。
因为我的手机是双卡的,所以选择 Filter时,选择的是 DSDS ,如果手机是单卡的就选择 对应没有DSDS 的Filter packets 即可。
1. Packets 包 Filter
[GSM]
[0x5A64] GSM DSDS Power Scan Results : 搜网时,周围所有无线信号的统筹结果
[0x5064] GSM Power Scan Results
[0x5B2F] GSM DSDS RR Signaling Message : GSM 终端 和 网络 信令交互的记录
[0x512F] GSM RR Signaling Message
[0x5A79] GSM DSDS L1 Enhanced Message Metrics: 表明上一条系统消息的解析程度,查看消息有没有成功的被解析 decode
[0x5A6C] GSM DSDS L1 Burst Metrics : 驻留小区后,显示当前驻留的小区,手机空间信号的接收强度,这个强度也是上报给UI 显示的信号强度
[0x5A85] GSM DSDS L1 Neighbor Cell BCCH Burst Metrics : 如果手机还没有驻留小区,则会显示 附近小区
[0x5A88] GSM DSDS L1 Transmit Burst Metrics : 手机发送 功率强度 一般不看,作用不大
[0x5A71] GSM DSDS Surround Cell BA List :显示周围维护的可用的小区,各小区的频点号ARFCN 和 小区接收功率RxP(dBm)
[0x5B33] GSM DSDS RR Cell Options : 当且仅当手机已经驻留的话,才会打印
[0x5B34] GSM DSDS RR Cell Information: 当且仅当手机已经驻留的话,才会打印
[0x5B38] GSM DSDS RR Downlink Signaling Counter : 手机驻留后,如果手机没能够从网络获得寻呼消息,该值会做减法,如果成功获得寻呼消息,该值会做加法,当该值小到0的时候,手机就掉网了
[UMTS][NAS Layer]
[0x713A] UMTS UE OTA : 注册过程中的信息,注册过程信息为 位置更新请求、鉴权请求、鉴权响应、身份识别请求、身份响应、位置更新,结束
2. 查看驻留信息
[0x5B33] GSM DSDS RR Cell Options | 当且仅当手机已经驻留的话,才会打印 |
[0x5B34] GSM DSDS RR Cell Information | 当且仅当手机已经驻留的话,才会打印 |
这两条信息一般是成对出现的,当看到这个信息时,说明手机已经驻留在小区了。
2019 Mar 4 09:35:14.962 [68] 0x5B34 GSM DSDS RR Cell Information
Subscription ID = 1
BCCH ARFCN = 37495
BSIC = NCC: 0x03 BCC: 0x00
Cell ID = 0x8529
LAI = 0x64F0001877 (MCC=460 MNC=00 LAC=0x1877)
Cell Selection Priority = Normal
NCC Permitted = 0xFF
2019 Mar 4 09:35:14.962 [68] 0x5B33 GSM DSDS RR Cell Options
Subscription ID = 1
PWRC = Set
DTX = Required
Radio Link Timeout = 32
3. 查看网络注册信息
[0x512F] GSM RR Signaling Message : GSM 终端 和 网络 信令交互的记录
[0x5B2F] GSM DSDS RR Signaling Message
手机驻留小区后,需要进行注册上网(告诉网络我来了),
通过查看 System Information Type 5 和 Type 6 就能看到手机是否连接成功网络,只有连接网络后才会打印Type 5和Type 6的消息
Type1、Type2、Type3、Type4: 这些是当手机处于非连接状态(空闲状态)的时候才收的消息
Type5、Type6:手机处于连接状态下才会收到的消息(比如打电话,注网,收发短信)
连接后就需要注册(注意:看到Type 5 和 Type 6 不一定说明注册上了)
网络不一定会注册的,如果之前注册过了,不一定会重新注册
接下里我们选择 Fileter ,选中
[UMTS] [NAS Layer] [0x713A] UMTS UE OTA
4. 当手机注册上后
如果没有打电话短信等,没事干的话,只收寻呼 Paging request Type 1,保证别人能够呼叫到我即可。
5. 手机待机寻呼消息计数
[0x5B38] GSM DSDS RR Downlink Signaling Counter : 手机驻留后,
如果手机没能够从网络获得寻呼消息,该值会做减法,
如果成功获得寻呼消息,该值会做加法,
当该值小到0的时候,手机就掉网了
2019 Mar 4 09:34:20.005 [B4] 0x5B38 GSM DSDS RR Downlink Signaling Counter
Subscription ID = 1
DSC Counter: 41
2019 Mar 4 09:34:20.299 [CD] 0x5B38 GSM DSDS RR Downlink Signaling Counter
Subscription ID = 2
DSC Counter: 45
2019 Mar 4 09:34:20.472 [1D] 0x5B38 GSM DSDS RR Downlink Signaling Counter
Subscription ID = 1
DSC Counter: 42
2019 Mar 4 09:34:20.770 [77] 0x5B38 GSM DSDS RR Downlink Signaling Counter
Subscription ID = 2
DSC Counter: 45
2019 Mar 4 09:34:21.240 [29] 0x5B38 GSM DSDS RR Downlink Signaling Counter
Subscription ID = 2
DSC Counter: 45
2019 Mar 4 09:34:21.413 [3D] 0x5B38 GSM DSDS RR Downlink Signaling Counter
Subscription ID = 1
DSC Counter: 44
6. 当手机连接过程中查看手机接收功率是否满足小区条件
[0x5A85] GSM DSDS L1 Neighbor Cell BCCH Burst Metrics
该详细是 还未驻留小区时,打印的,
各个小区的 APPCN 不一样
例如:
[0x5A6C] GSM DSDS L1 Burst Metrics :
驻留小区后,显示当前驻留的小区,手机空间信号的接收强度,可以看到当前手机的功率等级,
将该功率等级 前面讲的 System Infomation Type 3 的功率等级相比,就能知道,当能手机能否上网
一般碰到有网上不去的问题,可以这样比较看,看是否手机功率等级不达标,导致无法注册上网。
这个强度也是上报给UI 显示的信号强度
2019 Mar 4 09:34:33.990 [2B] 0x5A6C GSM DSDS L1 Burst Metrics
Subscription ID = 1
---------------------------------------------------------------------------------------------------------------------------------
| FN | CHAN |ARFCN | RSSI | PWR (dBm)| DC[I] | DC[Q] | FREQ | TIME | SNR (dB)|GAIN_STATE|BAND_CLASS |
---------------------------------------------------------------------------------------------------------------------------------
| 739298| CCCH| 631| 2851| -84.31| 645| 933| 98| 0| 1.13| 2| 9 (DCS)|
| 739299| CCCH| 631| 4081| -82.75| 723| 952| 29| 0| 2.59| 2| 9 (DCS)|
| 739300| CCCH| 631| 2839| -84.31| 667| 955| -200| 0| 1.68| 2| 9 (DCS)|
| 739301| CCCH| 631| 3278| -83.75| 689| 926| 106| 0| 0.72| 2| 9 (DCS)|
7. 手机从搜网-驻留小区-注册 整个完整过程为
step 1: 查看小区网络搜索结果,先看powerscan 把小区能用的列表列出来
[0x5A64] GSM DSDS Power Scan Results
[0x5064] GSM Power Scan Results : 搜网时,周围所有无线信号的统筹结果
step 2: 搜索到网络后,会有 系统系统Type1-2-3-4 ,从系统消息中可以看到选择的小区和网络
[0x512F] GSM RR Signaling Message : GSM 终端 和 网络 信令交互的记录
[0x5B2F] GSM DSDS RR Signaling Message
step 3: 选择好适配的小区后,驻留成功后,会有驻留信息打印出来
[0x5B33] GSM DSDS RR Cell Options : 当且仅当手机已经驻留的话,才会打印
[0x5B34] GSM DSDS RR Cell Information: 当且仅当手机已经驻留的话,才会打印
step 4: 驻留后,只能说明手机上去,并没有开始注册(告诉网络我来了),收到下面消息后,说明完成注册了
网络不一定会注册的,如果之前注册过了,不一定会重新注册
[UMTS][NAS Layer]
[0x713A] UMTS UE OTA : 注册过程中的信息,注册过程信息为 位置更新请求、鉴权请求、鉴权响应、身份识别请求、身份响应、位置更新,结束
step 5: 注册成功网络后,如果手机没事干,就会只收寻呼 Paging request Type 1/Type 2 ,保证别人能呼叫到即可
[0x512F] GSM RR Signaling Message : GSM 终端 和 网络 信令交互的记录
[0x5B2F] GSM DSDS RR Signaling Message
[0x5B38] GSM DSDS RR Downlink Signaling Counter 寻呼消息计数,接收成功做加法,没有接收到做减法,当小于0的时候,掉网
如果碰到有网上不去的情况,看如下两个信息
[0x5A85] GSM DSDS L1 Neighbor Cell BCCH Burst Metrics 该信息是 还未驻留小区时,打印的
[0x5A6C] GSM DSDS L1 Burst Metrics : 驻留小区后,显示当前驻留的小区,手机空间信号的接收强度,这个强度也是上报给UI 显示的信号强度
可以看到当前手机的功率等级,和对应网络Type3信息比较,就能看到能否上网,
8. 实例分析步骤 (手机 GSM下不能工作,没有服务,无法注册网络)
第一步: 打开Packets ,将所有log都去掉, 后面我们只需要选择我们需要的log 即可
第二步: 选择如下filter packets
首先将 powerScan 选中,查看手机搜索到了哪些网络,以及可用的网络是哪些
[0x5A64] GSM DSDS Power Scan Results : 搜网时,周围所有无线信号的统筹结果
[0x5064] GSM Power Scan Results
第三步: 打开 view—> Call Flow Analysis
看看 REG模块-----MM模块 之间的消息,可以看到手机是否开始去注册,已经注册的卡是什么
比如:
MMR_REG_REQ(CHN CU=GSM) 说明注册是的联通 GSM ,说明手机卡是联通卡,注册的网络为2G GSM
第四步:选择 Signaling Message ,查看当前 系统消息 SystemInfor Type 3 看看各个小区网络的详细信息
[0x512F] GSM RR Signaling Message : GSM 终端 和 网络 信令交互的记录
[0x5B2F] GSM DSDS RR Signaling Message
可以看看,用户小区是否是 联通 网络,
以及 网络功率dBm 最小接入电平是否满足
第五步:选择 Signaling Message ,查看当前 系统消息 SystemInfor Type 3 看看各个小区网络的详细信息
[0x5A85] GSM DSDS L1 Neighbor Cell BCCH Burst Metrics
因为还没有驻留在小区,所以查看 BCCH 的消息,可以看到手机在小区的 功率等级 电平,看下最小接入电平是否满足要求
和前面第四步的 最小点入电平比一下,如果该电平大于 最小接入电平,才会满足连接
[0x5A6C] GSM DSDS L1 Burst Metrics:如果已经驻留小区,看这个消息。
第六步: 查看手机驻留信息,如果手机驻留小区的话
[0x5B33] GSM DSDS RR Cell Options
[0x5B34] GSM DSDS RR Cell Information
如果最终没有搜索到网络,则会进入IDLE 模式,查看
【GSM】Qualcomm GSM Packets log 分析(三) 之 查看 手机 GSM 呼叫通话信息
掉话问题分析步骤
[0x512F] GSM RR Signaling Message | GSM 终端 和 网络 信令交互的记录 |
[0x5B2F] GSM DSDS RR Signaling Message | |
[0x5A71] GSM DSDS Surround Cell BA List | 显示周围维护的可用的小区,各小区的频点号ARFCN 和 小区接收功率RxP(dBm) |
[0x5A6C] GSM DSDS L1 Burst Metrics | 显示当前驻留的小区,手机空间信号的接收强度 |
[0x5A88] GSM DSDS L1 Transmit Burst Metrics | 手机发送 功率强度 |
[0x5A79] GSM DSDS L1 Enhanced Message Metrics | 译码情况,表明上一条系统消息的解析程度,查看消息有没有成功的被解析 decode |
第一步:RR Signaling Message 分析方法
第一步:选择 RR Signaling Message 的filter packets
[0x512F] GSM RR Signaling Message : GSM 终端 和 网络 信令交互的记录
[0x5B2F] GSM DSDS RR Signaling Message
1. 过滤log后,看下是否有 系统消息Type5、Type6 、以及 寻呼消息Paging Request Type 1、Type 2, 有则说明手机还是基本正常连接的
2. 查找log ,找到 系统消息 Type5 和 Type6 的地方,说明开始打电话
3. 继续找log,找到 [0X512F] GSM RR Signaling Message --- Channel Release 说明结束通话
4. 从 Type5、Type6 一直到 Channel Release 的其中的log, 便是通话过程的log
分析通话过程的log:
5. 系统Type5和Type6可以不用看,它会以一个比较有规律的方式存在就行了,就说明还是正常的
6. 手机必须要每隔0.5s 就能够完成一次消息的解读,说明系统消息必须要以一秒2次的周期性出现
比如如下两个系统消息Type5的时间就相隔了0.5s左右
2019 Mar 4 09:36:01.950 [66] 0x5B2F GSM DSDS RR Signaling Message -- System Information Type 5
2019 Mar 4 09:36:02.422 [E1] 0x5B2F GSM DSDS RR Signaling Message -- System Information Type 5
2019 Mar 4 09:36:02.892 [6E] 0x5B2F GSM DSDS RR Signaling Message -- System Information Type 5ter
7. 测量报告Measurement Report: 和系统消息同时出现的还有测量报告Measurement Report,
测量报告是手机告诉网络,手机当前服务器小区(打电话的小区)的服务质量,-----必须要看!!!
测量报告重点看如下两个参数:(一般看SUB,SUB是FULL的子集,FULL是指所有的接收,这个不可信)
信号强度: RXLEV_SUB_SERVING_CELL = 16 (0x10) # -94dBm 当前服务器小区的功率强度,一般看SUB项,该项完全能够表征当前信道质量的
误码率: RXQUAL_SUB_SERVING_CELL = 4 (0x4) # 比特误码率, 0:代表最好,非常强 7:最差,非常多的比特值有错误,需要纠正
示例如下:
2019 Mar 4 09:36:03.483 [FC] 0x5B2F GSM DSDS RR Signaling Message -- Measurement Report
Decoded Message:
------------------------------------------------
chan_type = 4 (0x4)
prot_disc_check = 6 (0x6)
trans_id_or_skip_ind = 0 (0x0)
prot_disc = 6 (0x6) (GSM_RR_MANAGEMENT)
msg_type = 21 (0x15)
meas_res
BA_USED = 0 (0x0)
DTX_USED = 0 (0x0)
RXLEV_FULL_SERVING_CELL = 16 (0x10) # -94dBm 当前服务器小区的功率强度 ,
# 一般看SUB,SUB是FULL的子集,FULL是指所有的接收,这个不可信
# 因为当对方不在说话时,语音传输的是噪音,这个也会统计在FULL 中,没有意义
# 如果对方一直在说话,比如在放歌,这种情况下,理论上 FULL 和 SUB 的值是一致的
3G_BA_USED = 0 (0x0)
MEAS_VALID = 0 (0x0)
RXLEV_SUB_SERVING_CELL = 16 (0x10) # -94dBm 当前服务器小区的功率强度,一般看SUB项,该项完全能够表征当前信道质量的
SI23_BA_USED = 0 (0x0)
RXQUAL_FULL_SERVING_CELL = 4 (0x4)
RXQUAL_SUB_SERVING_CELL = 4 (0x4) # 比特误码率, 0:代表最好,非常强 7:最差,非常多的比特值有错误,需要纠正
NO_NCELL_M = 2 (0x2)
8. Handover 小区切换消息, 和小区切换消息同时出现的还有 物理信息Physical Information
9. Physical Information 物理消息: 基站告诉手机,手机离新小区的距离,一个单位代表1公里,一般不会大于3,如果大于3公里,服务质量会比较差
time_adv_val = 0 (0x0) # 0:1公里以内 2:2公里
第二步:如何看 Log 是否正常
1. 大概浏览一遍log,看看会不会有系统消息 Type5、Type6 不规律的地方
2. 如果log看起来非常正常, 打开 view—> Call Flow Analysis,
根据问题复现的时间点,在 Call Flow图上看看出现掉话最开始从哪个模块开始的
看下是不是可能是从物理层往上发送 Disconnect,网络端挂断的
3. 小区切换,看看 Handover 消息,如果存在handover 小区切换消息
可以看看 [0x5A71] GSM DSDS Surround Cell BA List :显示周围维护的可用的小区
此处列出了手机所有搜索到的小区的频点号 ARFCN 、小区接收功率RxP ,
手机收到这个消息后,如果有接收功率更好的小区,则会发生小区切换动作,切不切换小区是由网络来决定的
最终小区切换到的小区,不一定是切功率最强的小区,需要看 Handover消息,一般是 bcch_arfcn_high * 256 + bcch_arfcn_Low
比如小区633,则是 2*256 + 121
bcch_arfcn_high = 2
bcch_arfcn_Low = 121
查看小区切换是否正常:
[0x512F] GSM RR Signaling Message : GSM 终端 和 网络 信令交互的记录
通过测量报告可以清晰的看到 当前服务小区的状态RXLEV_SUB_SERVING_CELL,以及比特误码率
0x5A71 GSM DSDS Surround Cell BA List
通过这个可以清晰的看到 周围小区的信号状态,
从而可以知道 Handover 消息切换是否正常,手机改不改其切换
BSIC: 说明是已经同步过的小区
2019 Mar 4 09:34:21.836 [AE] 0x5A71 GSM DSDS Surround Cell BA List
Subscription ID = 2
----------------------------------------------------------------------------
| # | ARFCN | RxP(dBm) | BSIC | FN Lag | Qbit Lag | Band Class |
----------------------------------------------------------------------------
| 1| 635| -85.94| -| -| -| 9 (DCS) |
| 2| 627| -86.06| -| -| -| 9 (DCS) |
| 3| 633| -86.06| -| -| -| 9 (DCS) |
| 4| 19| -95.44| <6,0>| 1224206| 2426| 8 (GSM 900) |
| 5| 20| -98.94| <2,5>| 8103| -1158| 8 (GSM 900) |
| 6| 25| -99.75| <4,6>| 1375330| -1418| 8 (GSM 900) |
| 7| 3| -100.81| <5,7>| 2715646| 1254| 8 (GSM 900) |
| 8| 29| -102.06| -| -| -| 8 (GSM 900) |
| 9| 21| -103.00| -| -| -| 8 (GSM 900) |
| 10| 11| -103.19| -| -| -| 8 (GSM 900) |
4. [0x5A6C] GSM DSDS L1 Burst Metrics : 显示当前驻留的小区,手机空间信号的接收强度
ARFCN: 频点,跳频没关系 PWR (dBm):信号强度
SNR(dB) : 信噪比,越高越好,一般信噪比和信号强度挂钩的,信号强度越高,信噪比越高
如果看到信号比较差,并且SNR 也比较差,并不代表手机有问题:
比如通话的时候如果对方不在说话,此时传输的全是噪声,信号会比较低,此时的信噪比也会非常低,
因此前面说的RXLEV_FULL_SERVING_CELL 就不一定可信, 需要看RXLEV_SUB_SERVING_CELL
2019 Mar 4 09:53:24.699 [4A] 0x5A6C GSM DSDS L1 Burst Metrics
Subscription ID = 2
---------------------------------------------------------------------------------------------------------------------------------
| FN | CHAN |ARFCN | RSSI | PWR (dBm)| DC[I] | DC[Q] | FREQ | TIME | SNR (dB)|GAIN_STATE|BAND_CLASS |
---------------------------------------------------------------------------------------------------------------------------------
| 984285| CCCH| 631| 23914| -75.06| 9| -7| 25| 0| 11.54| 2| 9 (DCS)|
| 984286| CCCH| 631| 25098| -74.88| 1| 6| -2| 0| 9.92| 2| 9 (DCS)|
| 984287| CCCH| 631| 26280| -74.69| -15| 1| -35| 0| 9.37| 2| 9 (DCS)|
| 984288| CCCH| 631| 24000| -75.06| -8| -5| 4| 0| 11.03| 2| 9 (DCS)|
5. 查看消息有没有被成功的decode解析 CRC
之前看了信号强度和SNR之前看了信号强度和SNR,切它的高低也不能说明什么(因为可能是噪音)
我们需要通过 看下 Enhanced Message Metrics 来看 消息有没有成功被解析
[0x5A79] GSM DSDS L1 Enhanced Message Metrics: 查看消息有没有成功的被解析 decode
一般每条 Burst Metrics 后面都会跟上一条 Enhanced Message Metrics,表明上条消息的解析程度
2019 Mar 4 09:49:09.777 [CF] 0x5B2F GSM DSDS RR Signaling Message -- Paging Request Type 1
2019 Mar 4 09:49:09.805 [F2] 0x5A79 GSM DSDS L1 Enhanced Message Metrics
CRC = Pass
2019 Mar 4 09:49:09.805 [F2] 0x5A6C GSM DSDS L1 Burst Metrics
2019 Mar 4 09:49:09.805 [F2] 0x5B2F GSM DSDS RR Signaling Message -- Paging Request Type 1
2019 Mar 4 09:49:09.824 [04] 0x5A79 GSM DSDS L1 Enhanced Message Metrics
CRC = Pass
2019 Mar 4 09:49:09.824 [04] 0x5A6C GSM DSDS L1 Burst Metrics
第三步:真正意义上的掉话只有一种情况 ---- 查看测量报告
真正意义上的掉话的情况(非网络端挂断):
是连续看到很多 测量报告Measurement Report ,但却没有看到系统消息Type5、Type6出现
原因是因为接收到的系统消息,没法实现真正的译码,导致只有测量报告,没有系统消息出来
如果长时间系统消息译码不对,导致手机长时间接收不到消息,手机就会自动挂断电话,导致掉话
2019 Mar 4 09:36:02.542 [ED] 0x5B2F GSM DSDS RR Signaling Message -- Measurement Report
2019 Mar 4 09:36:03.013 [31] 0x5B2F GSM DSDS RR Signaling Message -- Measurement Report
2019 Mar 4 09:36:03.483 [FC] 0x5B2F GSM DSDS RR Signaling Message -- Measurement Report
2019 Mar 4 09:36:03.954 [F2] 0x5B2F GSM DSDS RR Signaling Message -- Measurement Report
RXLEV_FULL_SERVING_CELL = 16 (0x10)
RXLEV_SUB_SERVING_CELL = 16 (0x10)
RXQUAL_FULL_SERVING_CELL = 6 (0x6)
RXQUAL_SUB_SERVING_CELL = 7 (0x7)
[0x5A88] GSM DSDS L1 Transmit Burst Metric
这个用于描述手机往外发送的功率,一般作用不大,一般不用看
2019 Mar 4 09:34:26.337 [5C] 0x5A88 GSM DSDS L1 Transmit Burst Metrics
Subscription ID = 2
Channel = 2 (RACH)
TSC = 0
TA = 0 # 被网络更新到的离小区的距离
Band = 0x9 (DCS)
|------------|--------|-------------|
| FN |ARFCN |TxLev |
|------------|--------|-------------|
| 737644 | 631 | 0 ( 30 dBm) |
| 0 | 0 | 0 ( dBm) |
| 0 | 0 | 0 ( dBm) |
| 0 | 0 | 0 ( dBm) |
【GSM】Qualcomm GSM Packets log 分析(四) 之 GSM通话断断续续Log分析
GSM通话断断续续Log分析
涉及的 Log过滤项:
[0x5B2F] GSM DSDS RR Signaling Message: GSM 终端 和 网络 信令交互的记录
[0x5A6C] GSM DSDS L1 Burst Metrics : 显示当前驻留的小区,手机空间信号的接收强度
[0x5A79] GSM DSDS L1 Enhanced Message Metrics: 译码情况,表明上一条系统消息的解析程度,查看消息有没有成功的被解析 decode
首先看看大概的情况
第一步:选择 RR Signaling Message 的filter packets
[0x5B2F] GSM DSDS RR Signaling Message: GSM 终端 和 网络 信令交互的记录
1. 过滤log后,看下是否有 系统消息Type5、Type6 、以及 寻呼消息Paging Request Type 1、Type 2, 有则说明手机还是基本正常连接的
2. 查找log ,找到 系统消息 Type5 和 Type6 的地方,说明开始打电话
3. 继续找log,找到 [0X512F] GSM RR Signaling Message --- Channel Release 说明结束通话
4. 从 Type5、Type6 一直到 Channel Release 的其中的log, 便是通话过程的log
第二步:看看服务小区切换多不多, Handover消息
对于打电话来说,服务器切换会存在断续,切一次断一次,这个是必然的
第三步:看看测量报告 Measurement Report
通过测量报告看看整体质量怎么样
2019 Mar 4 09:36:03.483 [FC] 0x5B2F GSM DSDS RR Signaling Message -- Measurement Report
RXLEV_SUB_SERVING_CELL = 16 (0x10) # -94dBm 当前服务器小区的功率强度,一般看SUB项,该项完全能够表征当前信道质量的
RXQUAL_SUB_SERVING_CELL = 4 (0x4) # 比特误码率, 0:代表最好,非常强 7:最差,非常多的比特值有错误,需要纠正 4:比较差
# 如果这个值变化比较大,可以说明 此时的网络环境非常不稳定,收到的信号的质量非常跳跃
# 信号好的时候,比特误码率会比较小, 信号不好的时候,比特误码率比较大
# 这个是一个对接收信号的综合描述
接下来细节分析
第一步: 看看L1 Burst Metrics,详细看看当前小区的信号接收强度 及 信噪比SNR
2019 Mar 4 09:53:24.699 [4A] 0x5A6C GSM DSDS L1 Burst Metrics
Subscription ID = 2
---------------------------------------------------------------------------------------------------------------------------------
| FN | CHAN |ARFCN | RSSI | PWR (dBm)| DC[I] | DC[Q] | FREQ | TIME | SNR (dB)|GAIN_STATE|BAND_CLASS |
---------------------------------------------------------------------------------------------------------------------------------
| 984285| CCCH| 631| 23914| -75.06| 9| -7| 25| 0| 11.54| 2| 9 (DCS)|
| 984286| CCCH| 631| 25098| -74.88| 1| 6| -2| 0| 9.92| 2| 9 (DCS)|
| 984287| CCCH| 631| 26280| -74.69| -15| 1| -35| 0| 9.37| 2| 9 (DCS)|
| 984288| CCCH| 631| 24000| -75.06| -8| -5| 4| 0| 11.03| 2| 9 (DCS)|
SNR: 这个值越大越好,一般 10 左右算挺不错了
为了便于统计 对于高通来说,最大是到 21.17, 小的可以为负数
SNR = 0 说明,信号和噪声一样大,基本分不清信号和噪声
SNR = 3 说明,信号是噪声的一倍
第二步:看看译码情况 Enhanced Message Metrics, 看看decode 是pass 还是 fail
2019 Mar 4 09:36:12.521 [43] 0x5A79 GSM DSDS L1 Enhanced Message Metrics
CRC = Pass
查看方法就是,找到之前 测量报告 中比特误码率比较高的地方 RXQUAL_SUB_SERVING_CELL (>3左右),
然后开始往前看 Enhanced Message Metrics,看看 CRC 译码的情况,看看会不会出现连续 Fail 的地方
播放语音
如果通过前面的log 分析,看起来都 还可以,也就是
通过RR Signaling Message 得知 小区handover切换次数不多,Measurement Report中 小区信号强度还可以,比特误码率也不高
通过L1 Burst Metrics 得知,信噪比 SNR 比较正常 (10左右)
通过Enhanced Message Metrics 得知,CRC 信息译码也是pass 。
如果是这样,那语音断断续续就可以使 刚好和 小区切换对上了。
此时,我们可以通过 QCAT 的 Vocoder Playback 将声音从 log中解析出来看看,
和我们之前 小区handover切换的点来比较确认。
最后
以上就是成就斑马为你收集整理的Qualcomm GSM Packets log 分析【GSM】Qualcomm GSM Packets log 分析(一) 之 System Infomation 系统消息【GSM】Qualcomm GSM Packets log 分析(二) 之 查看 GSM 驻留信息【GSM】Qualcomm GSM Packets log 分析(三) 之 查看 手机 GSM 呼叫通话信息【GSM】Qualcomm GSM Packets log 分析(四) 之 GSM通话断断续续Log分析的全部内容,希望文章能够帮你解决Qualcomm GSM Packets log 分析【GSM】Qualcomm GSM Packets log 分析(一) 之 System Infomation 系统消息【GSM】Qualcomm GSM Packets log 分析(二) 之 查看 GSM 驻留信息【GSM】Qualcomm GSM Packets log 分析(三) 之 查看 手机 GSM 呼叫通话信息【GSM】Qualcomm GSM Packets log 分析(四) 之 GSM通话断断续续Log分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复