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 终端 和 网络 信令交互的记录
在消息中, 1). 当看到连续好多栏都是 BS>>>MS 这个时,说明手机处于Idle 状态, 2). 系统消息System Infomation Type 分 Type1、Type2、Type3、Type4、Type5、Type6 六种 3). GSM Power Scan list : 手机当前小区所有能用的网络的强度由强到弱的列表,可以看到搜网数量及强度 4). System Infomation Type 3 : Type 3 示例二: 运营商代码460开头的整理: 46000,46002,41004是移动网络的ID号(PLMN标识),它们所支持的接入技术分别为: IMSI 由三部分组成:
BS>>>MS,说明是下行消息,基站发送消息给手机
BS<<
如果在 Idle时,看到很多System Infomation系统消息堆在一块,
说明此时手机并不是纯净的Idle,要不是就是在重选,要么就是在选网。
Type1、Type2、Type3、Type4: 这些是当手机处于非连接状态(空闲状态)的时候才收的消息
Type5、Type6:手机处于连接状态下收到的消息(比如打电话,注网,收发短信)
搜索到网络后,手机会将 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)|
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)
手机收到这个信息说明:这是一个移动小区,如果是中国移动卡,且手机接收功率能够在 -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)
46000 中国移动 (GSM)
46001 中国联通 (GSM)
46002 中国移动 (TD-S)
46003 中国电信(CDMA)
46004 空(似乎是专门用来做测试的)
46005 中国电信 (CDMA)
46006 中国联通 (WCDMA)
46007 中国移动 (TD-S)
46008
46009
46010
46011 中国电信 (FDD-LTE)
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标识
移动国家号码 MCC : 由3个数字组成,唯一的识别移动用户所属的国家,中国为460
移动网号MNC : 识别移动用户所归属的移动网
移动用户识别码MSIN: 唯一的识别国内数字窝蜂移动通信网中的移动用户