您的位置首页>硬件>

基于Android平台虚拟SIM卡的设计与实现

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解基于Android平台虚拟SIM卡的设计与实现问题。0简介在当今互联网时代的背景下,互联

音频解说

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解基于Android平台虚拟SIM卡的设计与实现问题。

0简介

在当今互联网时代的背景下,互联网技术发展迅速,通过手机上网的网民数量也日益增多。同样,当用户出国旅行时,对移动互联网接入的需求也越来越强烈。移动用户出国旅行频繁,国际漫游业务大幅增长[1]。传统实体SIM卡用户出国办理国际漫游业务后,需要使用漫游网络服务。然而,高昂的国际漫游费用对消费者来说是一个大问题。为了解决上述问题,基于智能终端的虚拟SIM卡技术得到了重视和发展。支持虚拟SIM技术的终端用户可以在全球覆盖范围内以接近目的地的价格水平使用数据互联网服务。根据虚拟卡的平台架构和安卓电话的框架,研究了虚拟卡在安卓终端中的应用及相关技术。针对虚拟卡参数下载和保存阶段可能存在的用户信息攻击,基于ARM TrustZone技术的设计实现了虚拟卡的安全运行和数据安全。最后测试表明,通过虚拟卡APP可以完成在线操作。

1平台架构

虚拟SIM卡平台的架构如图1所示。该平台由支持虚拟SIM卡技术的终端、用户管理中心和SIM云服务提供商三部分组成。

(1)虚拟SIM卡终端:支持虚拟SIM技术,可从云端下载虚拟SIM卡参数,用虚拟SIM卡参数即可接入相应网络。

(2)用户管理中心:目的是与终端虚拟SIM APP交互,提供用户管理,开启或停止用户使用虚拟SIM卡参数。

(3)虚拟SIM卡云服务提供商:提供网络认证所需的运营商参数IMSI、Ki等虚拟卡参数。该方案与263移动通信有限公司合作,开发支持虚拟卡技术的终端。

该方案的目的是设计和实现支持虚拟SIM卡的终端。支持虚拟SIM卡技术的终端可以通过WiFi或移动运营商网络请求从动态IMSI分配服务器下载虚拟SIM卡参数。包括国际移动用户标识号(IMSI)、认证密钥(Ki)和登录网络时用于用户身份认证的其他关键参数。

2终端软件架构和设计

2.1安卓电话框架结构

Android Telephoney [2]采用分层结构设计,跨越三层:Java Application(应用层)、Java Frameworks(框架层)和RIL(无线电接口层)。电话结构与Android框架结构一致。安卓电话的商业应用横跨美联社和英国石油公司。AP和BP之间的通信是目前智能手机的基本硬件架构。安卓在AP上运行,而电话在Linux内核之上的用户空间中运行。BP端负责射频控制,包括信号调制、编码、射频移位等与时间高度相关的操作。对于不同的安卓厂商,允许他们的AP端相同,但是Modem端可能不同。所以安卓在AP和Modem之间设计了RILC框架,让不同的芯片厂商可以将自己的协议连接到AP端。该虚拟卡方案基于高通平台。对于高通平台,其RILC是QCRIL。

2.2终端软件架构

虚拟SIM卡终端的架构如图2所示,其软件架构与安卓电话的整体分层结构一致,包括应用层、框架层和无线通信接口层。

其中,应用层APP与框架层服务之间的通信基于Binder机制实现进程间通信,进程间通信接口采用Android接口定义语言(AIDL)技术定义。虚拟卡是在框架中单独添加的服务。为了让其他应用程序访问该应用程序提供的服务,安卓提供AIDL自动生成进程间通信的代码。RILJ与RILC的互动基于rild端口的Socket连接。从电话框架收到请求后,RILJ通过套接字连接向RILC发送RIL请求。最后,高通平台使用高通消息接口(QMI)作为接入点和调制解调器之间的通信接口。由IDL_QCSI_QCCI实施。QCCI(QMI通用客户端接口)封装了C库供客户端通信,主要是注册客户端发送和接收消息。QCSI(QMI公共服务接口)封装C库用于服务器之间的通信,提供服务注册,收发消息,根据消息ID搜索回调函数实现消息响应。此时,从应用软件到电话框架到RIL,再到英国石油公司的调制解调器,应用软件可以处理相关的通信服务。

传统的SIM卡插入调制解调器,终端和SIM卡之间的交互必须通过调制解调器。虚拟卡相当于在模块端虚拟两个卡槽,虚拟卡槽和物理卡槽之间的连接是互斥的。虚拟卡激活时,表示当前模块连接到软交换,此时模块无法上报物理卡的插槽信息。当没有虚拟卡或虚拟卡停用时,模块连接到物理插槽,可以通过接口获取物理插槽的信息。当物理卡和虚拟卡切换时,相当于热插拔。该模块将清除原卡信息并报告新卡信息。

2.3工艺设计

虚拟SIM卡的流程设计如图3所示。

12下页全文

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。