Android U 和 V 创建DataProfile的日志流程和代码差异

Android V 版本更新了创建APN相关的Data Profile代码逻辑,移除了createDataProfiles接口,新增了系列与APN相关的API实现,对APN进行过滤排序等列表数据操作,以及数据绑定的流程更新。

通过热插拔SIM卡加载APN的日志,对创建DataProfile流程加以说明。

功能流程

MTK U:

  1. onSubscriptionsChanged或onReceive广播ACTION_RADIO_TECHNOLOGY_CHANGED -> 
  2. onSubIdReady ->
  3. updateDataProfiles -> 
  4. createDataProfiles  (会处理MNO和MVNO场景,更新全局变量profiles)

日志分析

Android V 一份插卡但无法驻网的log,此卡在其他手机是正常的,应该是band不支持联通。

DataProfile加载

热插拔,关闭APN界面

05-09 11:46:03.082  7518  7518 D ApnSettings: onSimHotSwap, finish activity.

05-09 11:46:03.083  1357  4446 I wm_finish_activity: [0,248227803,8,com.android.settings/.Settings$ApnSettingsActivity,app-request]

卡移除状态

05-09 11:46:03.147  5919  5957 I BugleRcsEngine: [55] byrb.P: (Sim): SIM state ABSENT

更新运营商名称显示

05-09 11:46:03.255  3304  3304 D CarrierTextController: updateCarrierText() - sim state is ready, displayText = No Service anySimReadyAndInService:false

05-09 11:46:04.158  3539  3539 I ImsResolver: Received Carrier Config Changed for SlotId: 0, SubId: -1, sim state: 1

原生逻辑或创建ims和emergency APN(空APN)给紧急场景

05-09 11:46:04.176  3539  3539 D DPM-0   : Found 2 data profiles. profiles = [[DataProfile=[ApnSetting] DEFAULT EIMS, 0, null, , null, null, null, null, null, 0, emergency, IPV4V6, IPV4V6, true, 0, false, 0, 0, 0, 0, 0, null, null, false, UNKNOWN, UNKNOWN, -1, -1, -1, false, 3, 961, false, UNEDITED, TrafficDescriptor={mDnn=, null}, preferred=false], [DataProfile=[ApnSetting] DEFAULT IMS, 0, null, ims, null, null, null, null, null, 0, ims, IPV4V6, IPV4V6, true, 0, false, 0, 0, 0, 0, 0, null, null, false, UNKNOWN, UNKNOWN, -1, -1, -1, false, 3, 961, false, UNEDITED, TrafficDescriptor={mDnn=ims, null}, preferred=false]]

在TelephonyProvider和DataNetworkController中,无卡场景下会无APN匹配并评估无一网络满足处理PDN请求

05-09 11:46:04.177  3539  3539 D TelephonyProvider: query URL_PREFERAPNSET_USING_SUBID, subIdString=-1, subId=-1

05-09 11:46:04.184  3539  3539 D DNC-0   : Re-evaluating 0 unsatisfied network requests in 0 groups,  due to DATA_CONFIG_CHANGED

05-09 11:46:04.184  3539  3539 D DRM-0   : Remove all retry and throttling entries, reason=DATA_CONFIG_CHANGED

what?

05-09 11:46:11.712  3539  3539 D TelephonyProvider: insert, match=7, binderPid=3539, binderUid=1001

05-09 11:46:11.714  3539  3539 D TelephonyProvider: insert, rowId=content://telephony/siminfo/2, notify=false

05-09 11:46:11.715  3539  4003 D TelephonyProvider: update, match=13, binderPid=3539, binderUid=1001

卡加载完成但还不可用(为什么会有 [55][70]两个id?)

05-09 11:46:11.836  5919  5957 I BugleRcsEngine: [55] byrb.y: (Sim): SIM state LOADED

05-09 11:46:11.839  5919  5957 I BugleRcsEngine: [55] byrb.y: (Sim): State not valid, ignoring sim state loaded.

SIM可用并重新广播,但后面也一直是valid来着 

05-09 11:46:11.889  3539  3539 D IntentBroadcaster: Broadcasting and adding intent for rebroadcast: android.intent.action.SIM_STATE_CHANGED READY for phoneId 0

SIM READY,更新运营商名称

05-09 11:46:11.952  3304  3304 D CarrierTextController: updateCarrierText() - sim state is ready, displayText = No Service anySimReadyAndInService:false

05-09 11:46:11.940  8860  8860 D SimChangedReceiver: onReceive action = android.intent.action.SIM_STATE_CHANGED

还没加载到运营商信息phone和RIL

05-09 11:46:12.481  3539  3539 D MtkDPM  : DPM-0: mPlmnMvnoData = PlmnMvnoData(xxx) changed = true
05-09 11:46:12.481  3539  3539 D MtkDPM  : DPM-0: onSubIdReady mPhoneType = 1 [1:GSM,2:CDMA]
05-09 11:46:12.481  3539  3539 D MtkDPM  : DPM-0: mtkGetOperatorNumeric: phone type = 1 [1:GSM,2:CDMA], operator from phone = , operator from RIL = 
05-09 11:46:12.481  3539  3539 D MtkDPM  : DPM-0: onSubIdReady: empty operator numeric, return

subId ready但carrierconfig未加载完成

05-09 11:46:12.482  3539  3539 D MultiSimSettingController: onSubscriptionsChanged
05-09 11:46:12.482  3539  3539 D MultiSimSettingController: Carrier config subId 2 is not loaded.

DataProfileManager 匹配APN

05-09 11:46:12.484  3539  3539 D MtkDPM  : DPM-0: EVENT_PLMN_DATA
05-09 11:46:12.484  3539  3539 D MtkDPM  : DPM-0: mPlmnMvnoData = PlmnMvnoData(xxx) changed = true

05-09 11:46:12.487  3539  3539 D MtkDPM  : DPM-0: getMtuFromResource: mcc = 460, mnc = 1, mtu = 1400

05-09 11:46:12.488  3539  3539 D MtkDPM  : DPM-0: mtkGetOperatorNumeric: phone type = 1 [1:GSM,2:CDMA], operator from phone = , operator from RIL = 46001
05-09 11:46:12.488  3539  3539 D MtkDPM  : DPM-0: getApnListCursor: selection=numeric = '46001'
05-09 11:46:12.496  3539  3539 D MtkDPM  : DPM-0: match MNO APN: 3
05-09 11:46:12.496  3539  3539 D DPM-0   : Added [DataProfile=[ApnSetting] 3gnet, 4650, 46001, 3gnet, , null, , null, null, 0, supl | hipri | default | xcap, IP, IPV4V6, true, 0, false, 0, 0, 0, 0, 0, null, , false, UNKNOWN, UNKNOWN, 0, -1, -1, false, 3, 961, false, UNEDITED, TrafficDescriptor={mDnn=3gnet, null}, preferred=false]
05-09 11:46:12.496  3539  3539 D DPM-0   : Added [DataProfile=[ApnSetting] 3gmms, 4651, 46001, 3gwap, , http://mmsc.myuni.com.cn, 10.0.0.172, 80, null, 0, mms, IPV4V6, IPV4V6, true, 0, false, 0, 0, 0, 0, 0, null, , false, UNKNOWN, UNKNOWN, 0, -1, -1, false, 3, 961, false, UNEDITED, TrafficDescriptor={mDnn=3gwap, null}, preferred=false]
05-09 11:46:12.497  3539  3539 D DPM-0   : Added [DataProfile=[ApnSetting] IMS, 4652, 46001, ims, , null, , null, null, 0, ims, IPV4V6, IPV4V6, true, 0, false, 0, 0, 0, 0, 0, null, , false, GPRS|EDGE|UMTS|CDMA|CDMA - EvDo rev. 0|CDMA - EvDo rev. A|CDMA - 1xRTT|HSDPA|HSUPA|HSPA|iDEN|CDMA - EvDo rev. B|LTE|CDMA - eHRPD|HSPA+|GSM|TD_SCDMA|IWLAN|LTE_CA|NR, UNKNOWN, 0, -1, -1, false, 3, 961, false, UNEDITED, TrafficDescriptor={mDnn=ims, null}, preferred=false]
05-09 11:46:12.497  3539  3539 D MtkDPM  : DPM-0: Added default EIMS data profile.

下发 IA APN给MD

05-09 11:46:12.514  3539  3539 D DPM-0   : Initial attach data profile updated as [DataProfile=[ApnSetting] 3gnet, 4650, 46001, 3gnet, , null, , null, null, 0, su

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/607236.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

zabbix动作执行命令失效不起作用?

1. zabbix在web界面设置完主机组,主机,监控项,触发器,动作之后 监控项监控到了,触发器触发动作,但是执行的指令不起作用 流程 在zabbix-agent端将nginx服务down掉,zabbix会自动监控并执行重启的…

一文了解Memcache内存分配机制及stats参数

一、Memcache内存分配机制 了解memcached必须了解的三个单位:page、slabs、chunk。 1.1、Page Page为内存分配的最小单位,Memcached的内存分配以page为单位,默认情况下一个page是1M,可以通过-I参数在启动时指定。如果需要申请内存 时&#…

NeRF算法

目录 算法介绍 基本原理 1. 体渲染 2. 多层感知机(MLP) 3. 位置编码 4. 两阶段层次化体采样 实验展示 代码解析 算法介绍 NeRF(Neural Radiance Fields)是一种用于从2D图像中重建3D场景的神经网络模型。它通过训练一个深度…

sourceTree push失败

新电脑选择commit and push,报错了,不过commit成功,只不过push失败了。 原因是这个,PuTTYs cache and carry on connecting. 这里的ssh选择的是 PuTTY/Plink,本地没有这个ssh密钥,改换成openSSH&#xff…

SRM系统供应链库存协同提升企业服务水平

SRM系统供应链库存协同是一种以提高供应链整体效率和竞争力为目标的管理方法。它涉及到企业与供应商之间的紧密合作,以实现库存优化、成本降低、风险分担和灵活响应市场变化等目标。 一、SRM供应链库存协同的概念和特点 SRM供应链库存协同是指企业与供应商之间通过…

音转文工具,9.8k star! 【送源码】

我们经常会遇到将音频转为文字的情况,比如在开会时录音的会议纪要、上课时录下的老师讲课内容。虽然网上也有一些在线的工具可以将音频转为文字,但是考虑到数据安全和费用问题,使用起来也不是很方便。 今天了不起给大家介绍一款开源工具——…

毕业论文应该怎么写?推荐几款ai写论文工具

时间过的好快,马上又到了一年一度的毕业季了,对于即将毕业的学生来说毕业论文是一道难过的坎,想到自己为了毕业论文熬的夜,掉的头发,真的深有感触。 不过虽然翟博士给大家的毕业论文设了高门槛,但是随着时…

python之装饰器,模块和文件操作和面向对象

1.装饰器详解(重点) 1_1 装饰器 程序运行的时候的记录 -- 日志 在实际工作中,python这样的东西,是放在服务器上运行的 日志其实就是记录下来当前程序的运行,协助我们定位问题 确定问题的方式(通过日志、报错信…

宏的优缺点?C++有哪些技术替代宏?(const)权限的平移、缩小

宏的优缺点? 优点: 1.增强代码的复用性。【减少冗余代码】 2.提高性能,提升代码运行效率。 缺点: 1.不方便调试宏。(因为预编译阶段进行了替换) 2.导致代码可读性差,可维护性差&#xff0…

Java线程池(更新中)

1.线程池介绍 顾名思义,线程池就是管理一系列线程的资源池,其提供了一种限制和管理线程资源的方式。每个线程池还维护一些基本统计信息,例如已完成任务的数量。 总结一下使用线程池的好处: 降低资源消耗。通过重复利用已创建的…

猎头告诉你正确的“离职流程”

往期热门文章: 1,史上最全猎头技能资料,独家最新放送 2,互联网大厂java面试题知识库(100万字) 3,一线互联网大数据面试题知识库(100万字) 4,中国猎头公司排行…

SQL优化详解

目录 插入数据 insert的优化(少量数据) 批量插入 手动事务提交 主键顺序插入 插入大量数据 主键优化 数据组织方式: 页分裂: 主键顺序插入的方式: 主键乱序插入: 页合并: 主键设计…

HTML5/CSS3粒子效果进度条 超炫酷进度条动画源码

特效介绍 之前我已经分享了几款效果很不错的CSS3进度条插件,比如CSS3 Loading进度条加载动画特效、CSS3 3D进度条按钮 18款精美样式。今天我再来分享一款很有特色的HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从…

二本生如何从大一准备考研!?保姆级全攻略

如果是二本大学,那考研确实是一个很好的机会 如果大家就有考研的打算,那就好好学习,好好学习英语,数学(理工科)和专业课,这些课程在考研的时候是肯定会考的 特别是英语和数学(理工…

每日Attention学习5——Multi-Scale Channel Attention Module

模块出处 [link] [code] [WACV 21] Attentional Feature Fusion 模块名称 Multi-Scale Channel Attention Module (MS-CAM) 模块作用 通道注意力 模块结构 模块代码 import torch import torch.nn as nnclass MS_CAM(nn.Module):def __init__(self, channels64, r4):super(…

五一开始内卷前端,如何迅速的一个月内找到工作!

写在前面 五一过了代表新的一年不知不觉过了半年了,各位工作找到怎么样,有没有在工作中遇到解决不了的问题,这些问题后面怎么处理了呢? hello大家好,我又又又来了,今天纯干货,上班的朋友适当摸…

【SAP ME 39】SAP ME WebService超时时间设置

禁止废话,直接上图!!! SAP技术官方说明

Dark Reader:夜间模式,启动!

名人说:一点浩然气,千里快哉风。 ——苏轼 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、介绍二、下载安装1、Chrome应用商店(需科学)2、第三方直链下载 三、使…

深入探索数据链路层:网络通信的基石

⭐小白苦学IT的博客主页⭐ ⭐初学者必看:Linux操作系统入门⭐ ⭐代码仓库:Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统❤ 前言 在网络通信的宏伟世界中,数据链路层扮演着至关重要的角色。它位于物理层和网络层之间,不仅直接…

HuggingFace烧钱做了一大批实验,揭示多模态大模型哪些trick真正有效

构建多模态大模型时有很多有效的trick,如采用交叉注意力机制融合图像信息到语言模型中,或直接将图像隐藏状态序列与文本嵌入序列结合输入至语言模型。 但是这些trick为什么有效,其计算效率如何,往往解释得很粗略或者或者缺乏充分…
最新文章