5G图标显示分析

devtools/2024/9/22 19:58:07/

1、问题现象

        MTK平台项目中出现一个5G图标显示问题,注册5G时,拨打电话,对比机图标显示回落到4G,测试机一直显示5G

2、原因分析

2.1、NSA显示规则

        根据GSMA协议,NSA架构下5G图标显示有如下4种.

2.2、Android中显示5G逻辑

        对于Android手机来说,状态栏显示NSA注册了5G,有如下两个条件

条件1:UNSOL_PHYSICAL_CHANNEL_CONFIG有辅小区存在

04-19 10:18:38.690358  2200  2357 D RILJ    : [UNSL]< UNSOL_PHYSICAL_CHANNEL_CONFIG [{mConnectionStatus=PrimaryServing,mCellBandwidthDownlinkKhz=15000,mCellBandwidthUplinkKhz=15000,mNetworkType=LTE,mFrequencyRange=MID,mDownlinkChannelNumber=3075,mUplinkChannelNumber=21075,mContextIds=[1500, 1601],mPhysicalCellId=159,mBand=7,mDownlinkFrequency=2652500,mUplinkFrequency=2532500}, {mConnectionStatus=SecondaryServing,mCellBandwidthDownlinkKhz=80000,mCellBandwidthUplinkKhz=80000,mNetworkType=NR,mFrequencyRange=HIGH,mDownlinkChannelNumber=622656,mUplinkChannelNumber=620062,mContextIds=[1500, 1601],mPhysicalCellId=45,mBand=78,mDownlinkFrequency=3339840,mUplinkFrequency=3300930}] [PHONE0]

04-19 10:18:38.690758  2200  2200 D MTKSST  : [GsmSST0] NR state changed from NOT_RESTRICTED to CONNECTED.

条件2:Modem上报SIB2中ULI有指示eNB支持5G锚点

 参考如下文档

https://www.sharetechnote.com/html/5G/5G_NR_Indication.html

对应的AP log

04-19 10:19:26.256647  2200  2357 D RILJ    : [7907]< DATA_REGISTRATION_STATE {.regState = REG_HOME, .rat = LTE, .reasonForDenial = NONE, .cellIdentity = {.lte = {.base = {.base = {.mcc = 732, .mnc = 101, .ci = 3965953, .pci = 159, .tac = 20006, .earfcn = 3075}, .operatorNames = {.alphaLong = #CoberturaCLARO, .alphaShort = CLARO}, .bandwidth = 10000}, .additionalPlmns = [], .optionalCsgInfo = {.noinit = {}}, .bands = [7]}}, .registeredPlmn = 732101, .accessTechnologySpecificInfo = {.eutranInfo = {.lteVopsInfo = {.isVopsSupported = true, .isEmcBearerSupported = false}, .nrIndicators = {.isEndcAvailable = true, .isDcNrRestricted = false, .isNrAvailable = true}}}} [PHONE0]

2.3、Log分析定位

        对于UNSOL_PHYSICAL_CHANNEL_CONFIG,对比机和测试表现一样,当时SIB2标签的表现,确截然不同。

        测试机相关变量打印一直是true

04-19 10:19:26.256647  2200  2357 D RILJ    : [7907]< DATA_REGISTRATION_STATE {.regState = REG_HOME, .rat = LTE, .reasonForDenial = NONE, .cellIdentity = {.lte = {.base = {.base = {.mcc = 732, .mnc = 101, .ci = 3965953, .pci = 159, .tac = 20006, .earfcn = 3075}, .operatorNames = {.alphaLong = #CoberturaCLARO, .alphaShort = CLARO}, .bandwidth = 10000}, .additionalPlmns = [], .optionalCsgInfo = {.noinit = {}}, .bands = [7]}}, .registeredPlmn = 732101, .accessTechnologySpecificInfo = {.eutranInfo = {.lteVopsInfo = {.isVopsSupported = true, .isEmcBearerSupported = false}, .nrIndicators = {.isEndcAvailable = true, .isDcNrRestricted = false, .isNrAvailable = true}}}} [PHONE0]

        对比机  相关变量打印一直是false

04-24 09:55:34.010  1917  2026 D RILJ    : [0476]< DATA_REGISTRATION_STATE {.regState = REG_HOME, .rat = LTE, .reasonForDenial = NONE, .cellIdentity = {.lte = {.base = {.base = {.mcc = 732, .mnc = 101, .ci = <MASKED>, .pci = <MASKED>, .tac = <MASKED>, .earfcn = -1}, .operatorNames = {.alphaLong = #CoberturaCLARO, .alphaShort = CLARO}, .bandwidth = -1}, .additionalPlmns = [], .optionalCsgInfo = {.noinit = {}}, .bands = []}}, .registeredPlmn = 732101, .accessTechnologySpecificInfo = {.eutranInfo = {.lteVopsInfo = {.isVopsSupported = true, .isEmcBearerSupported = false}, .nrIndicators = {.isEndcAvailable = false, .isDcNrRestricted = false, .isNrAvailable = false}}}} [PHONE0]

        此处区别造成了5G显示不同。那运营商上,到底支持SIB2的ULI吗?

通过AT命令搜索EGREG,可以看到该运营商不支持SIB2的ULI

对比机Modem Log中未到EGREG AT命令,通过搜索CSCON来确认5G是否注册

结论:运营商并不支持SIB2的ULI,那测试机显示为什么显示5G呢?

MTK Case给出了结论,如果之前注册了5G,RILD会报错相关缓存,因此还会显示5G.

3、修改方案

MTK支持如下3中显示

MTK Mobile log里面有一个property文件:properties
可以在里面搜索persist.vendor.radio.nr_display_rule对应的值,没有没有搜索到任何定义,那代表贵司用的是Config D+Cache
如果property value为0,代表Config D
如果property value为1,代表Config D+Cache
如果property value为4,代表Config A+D+Timer1/2

默认没有配置即D + Cache。但是运营商不支持SIB2的ULI,对比机使用D config,但是没有Cache,而测试机有Cache,因此表现不一样。

配置为Config D后问题解决


http://www.ppmy.cn/devtools/22591.html

相关文章

go进行大文件的分块并发处理

以下是我在文心一言获得的答案 我的疑问是&#xff1a;文件的每一行是一条完整的请求数据&#xff0c;文件分块会不会破坏一行的数据呢&#xff1f; 文件的每一行是一条完整的请求数据&#xff0c;当我们将文件按照行分块时&#xff0c;是不会破坏单行数据的完整性的。这是因为…

Spring Boot框架强大的事件驱动模型(ApplicationEvent)

文章目录 前言应用场景异步处理事务边界外的操作跨微服务通信系统监控与日志聚合UI更新生命周期管理工作流或业务流程缓存同步 小试牛刀定义事件实现事件处理器注册事件处理器发布事件测试事件 写在最后 前言 在Spring Boot应用中&#xff0c;事件处理器是指那些处理特定类型事…

「PHP系列」PHP 过滤器

文章目录 一、PHP过滤器二、PHP函数和过滤器1. 过滤器示例FILTER_VALIDATE_BOOLEANFILTER_VALIDATE_EMAILFILTER_VALIDATE_FLOATFILTER_VALIDATE_INTFILTER_VALIDATE_IPFILTER_VALIDATE_REGEXPFILTER_SANITIZE_STRINGFILTER_SANITIZE_ENCODEDFILTER_SANITIZE_FULL_SPECIAL_CHAR…

二叉树理论和题目

二叉树的种类 在我们解题过程中二叉树有两种主要的形&#xff1a;满二叉树和完全二叉树。 满二叉树 满二叉树&#xff1a;如果一棵二叉树只有度为0的结点和度为 2 的结点&#xff0c;并且度为 0 的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。 这棵二叉树为满二叉树…

常用算法代码模板 (3) :搜索与图论

AcWing算法基础课笔记与常用算法模板 (3) ——搜索与图论 常用算法代码模板 (1) &#xff1a;基础算法 常用算法代码模板 (2) &#xff1a;数据结构 常用算法代码模板 (3) &#xff1a;搜索与图论 常用算法代码模板 (4) &#xff1a;数学知识 文章目录 0 搜索技巧1 树与图的存…

企业如何保证内部传输文件使用的工具是安全的?

企业内部文件的频繁交换成为了日常运营不可或缺的一环。然而&#xff0c;随着数据量的爆炸式增长和网络攻击手段的日益复杂&#xff0c;内网文件传输的安全隐患也日益凸显&#xff0c;成为企业信息安全的薄弱环节。本文将探讨内网文件传输的安全风险、企业常用的防护措施。 内网…

算法学习(5)-图的遍历

目录 什么是深度和广度优先 图的深度优先遍历-城市地图 图的广度优先遍历-最少转机 什么是深度和广度优先 使用深度优先搜索来遍历这个图的过程具体是&#xff1a; 首先从一个未走到过的顶点作为起始顶点&#xff0c; 比如以1号顶点作为起点。沿1号顶点的边去尝试访问其它未…

纯血鸿蒙APP实战开发——评论组件案例实现

介绍 评论组件在目前市面上的短视频app中是一种很常见的场景&#xff0c;本案例使用全局状态保留能力弹窗来实现评论组件。点击评论按钮弹出评论组件&#xff0c;点击空白处隐藏该组件&#xff0c;再次点击评论按钮则会恢复上一次浏览的组件状态。 效果图预览 使用说明 点击…