SubscriptionInfo框架分析

本文讨论所涉及的类

vendor\qcom\proprietary\telephony-fwk\opt\telephony\src\java\com\qti\internal\telephony\UiccCardProvisioner.java  
vendor\qcom\proprietary\telephony-fwk\opt\telephony\src\java\com\qti\internal\telephony\QtiSubscriptionInfoUpdater.java  
frameworks\opt\telephony\src\java\com\android\internal\telephony\SubscriptionInfoUpdater.java  
frameworks\opt\telephony\src\java\com\android\internal\telephony\SubscriptionController.java  
frameworks\base\telephony\src\java\android\telephony\SubscriptionManager.java  
frameworks\base\telephony\src\java\android\telephony\SubscriptionInfo.java  

UiccCardProvisioner是高通在M上新增的激活卡的类,
SubscriptionManager将SubscriptionController的接口暴露给其他模块,来获取当前插入卡的信息。通过Parcel接口类SubscriptionInfo传递给其他进程。

在卡插入后,框架会在数据库中保存卡的信息,包括卡的subid,iccid、slotid、carriername、mcc、mnc等。
在框架中通过SubscriptionInfoUpdater对卡进行一个更新的操作,对外提供subscriptionManager的接口对外访问,实际上是通过Binder调用SubscriptionController里面的方法。
这里写图片描述

这里写图片描述

1 框架内部通过subscriptionInfoUpdater更新卡的信息,首先卡信息只负责插入和更新,不会删除原来的记录,因此一张卡插入后它的subid是不会变的,其实是和对应的iccid一一对应的。在框架内部是通过subid来区分不同的卡。

subscriptionInfo更新有四种情况:
1 UiccCardProvisioner.queryUiccProvisionInfo 负责正常情况下添加
2 sim absent 负责拔卡情况下删除,只是将simSlotIndex设置为-1。
3 sim locked 负责pin码情况下添加
4 sim loaded

1 添加流程:
添加卡的信息是监听Icc_state_change事件。触发是在UiccCardProvisioner类。
这里写图片描述

这里写图片描述
其中有重要的一步是判断所有的iccid是否加载到,全部加载到才去更新数据(updateSubscriptionInfoByIccId)。通过判断两张卡的iccid不为null,其中卡absent是将iccid置为”“。查询到所有卡槽的iccid时刻:
分三种情况:
1 UiccCardProvisioner.queryUiccProvisionInfo
2 sim locked :实际上这一步不会发生因为在UiccCardProvisioner.queryUiccProvisionInfo里面就已经可以通过QcRilhook查询到iccid。
3 sim absent:absent是将iccid置为””
下面是卡报pin码锁的时候获取iccid的流程,主要是通过fileHandler查询卡字段EF_ICCID:2fe2

这里写图片描述

通过分析可以知道更新操作updateSubscriptionInfoByIccId,只有在添加和删除的时候会触发。该函数执行是一个耗时操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一、国内的研究现状: 1. 文件系统的设计与实现 在国内,文件系统的研究主要集中在设计与实现方面。研究者们通过分析文件系统的结构与功能,提出了一系列改进方案。例如,清华大学的张志明等人提出了一种名为F2FS的文件系统,其采用了闪存友好的设计,可以提高闪存设备的性能和寿命。此外,中科院计算所的吴忠等人提出了一种名为MerryFS的文件系统,其采用了一种基于元数据的粗粒度锁机制,可以提高文件系统的并发性能。 2. 文件系统的优化与性能测试 除了文件系统的设计与实现,国内的研究者们还致力于文件系统的优化与性能测试。例如,北京大学的李开泰等人通过对不同文件系统的性能测试,得出了一些文件系统的性能特点和瓶颈。此外,华中科技大学的张鑫等人提出了一种基于闪存的高性能文件系统设计,其可以优化文件系统的访问速度和数据可靠性。 二、国外的研究现状: 1. 文件系统的安全性研究 在国外,文件系统的研究主要集中在安全性方面。研究者们通过分析文件系统的安全漏洞和攻击手段,提出了一系列保护措施。例如,美国麻省理工学院的研究者提出了一种名为SIFT的安全文件系统,其可以保护文件系统中的敏感数据不被未经授权的访问和修改。此外,德国慕尼黑工业大学的研究者提出了一种名为TruFS的文件系统,其可以防止恶意程序对文件系统的攻击。 2. 文件系统的容错性研究 除了安全性,国外的研究者们还致力于文件系统的容错性研究。例如,英国伦敦大学学院的研究者提出了一种名为Loris的文件系统,其可以在文件系统发生故障时,自动恢复数据。此外,美国加州大学伯克利分校的研究者提出了一种名为ZFS的文件系统,其可以实现数据的快照和修复,以提高文件系统的容错性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值