SIM卡文件系统

SIM卡内部采用了一种类似于计算机中的文件管理系统结构,即一个文件夹下有文件夹也有文件,子文件夹下又可以存放文件夹和文件。通过这种文件系统来存储和组织各种数据信息,包括服务提供商信息、用户身份识别信息、电话簿、短信等各种数据。

文件系统结构

关于SIM卡的文件系统的结构大致如下:

可以看出,SIM卡的文件系统是一个树形结构,包含下面三种类型的文件:

  • MF(Master File):这是文件系统的根,一个SIM卡中只有一个MF。它包含了各种DF和EF。

  • DF(Dedicated File):这是文件系统的下一级,可以看作是文件夹,每个DF下都包含了一组相关的EF。例如,有一个DF是用来存储电话簿的,它包含了存储各个电话记录的EF。常见的DF有DF-GSM、DF-TELECOM以及ADF。

  • EF(Elementary File):EF是基本文件,直接用于存储数据。每个EF有一个特定的格式和长度,用来存储特定的数据。例如,有一个EF是用来存储IMSI(国际移动用户识别码)的,只有在选择了这个EF后,设备才能读取IMSI。

在SIM卡文件系统中,所有文件(包括文件夹)都有一个ID,这个ID是一个两字节的十六进制数。文件ID用于设备发送SELECT命令选择文件时的参数。如果需要定位到某一个具体文件,则需要确定MFID、DFID和EFID。这几个ID确定后,相当于确定了某个文件的绝对路径。

我们以USIM为例,参考3GPP TS 31.102协议文档,可以看到,USIM文件系统内容定义如下:

通过上图可以看到,每一个文件都有一个ID,文件ID的唯一性取决于其在文件系统树中的位置。同一个父文件(即DF或MF)下的所有直接子文件(即DF或EF)的文件ID都是唯一的,不能重复。也就是说,同一个DF下不能有两个文件ID相同的文件。在不同的DF下,可以有文件ID相同的文件。因此,为了唯一确定一个文件,需要指定从MF开始,通过哪些DF可以到达这个文件,这就形成了一条路径,这条路径加上文件的ID,就可以唯一确定一个文件。

文件操作指令

ISO 7816标准和3GPP协议定义了一系列用于操作SIM卡文件系统的命令。这些命令用于选择、读取、写入或更新SIM卡内部的文件。下面是一些常用的命令:

命令CLAINS说明
SELECT'A0''A4'选择文件
READ BINARY'A0''B0'读取当前选中的二进制透明EF的内容
UPDATE BINARY'A0''D6'更新当前选中的二进制透明EF的内容
READ RECORD'A0''B2'读取当前选中的线性固定EF或者循环EF的内容
UPDATE RECORD'A0''DC'更新当前选中的线性固定EF或者循环EF的内容
STATUS'A0''F2'获取当前选中的文件的信息
GET RESPONSE'A0''C0'获取命令执行的响应数据

上述表格中的CLA表示类别代码,INS表示指令代码,这部分内容将在下一个章节关于APDU的文档中进行说明。

文件操作指令响应

执行SIM卡命令后,SIM卡会返回一个响应APDU,它由两个或更多的字节组成。最后两个字节通常被称为状态字(Status Word,SW1 和 SW2),它们代表命令执行的结果。以下是一些文件操作常见的状态字:

SW1SW2说明
'90''00'命令执行成功
'6A''82'找不到文件
'69''81'命令与文件结构不兼容(文件类型不匹配)
'62''83'选择的文件无效
'6A''86'P1-P2参数错误

应用场景

  • 在初始化SIM卡进行注网时需要先读取SIM卡中的一些鉴权数据以及SIM卡的唯一标识,以及PLMN黑名单记录如EFFPLMN均可从SIM文件系统中读取。

  • 在存储短信时,可以选择存入SIM卡中,而SIM卡中存储的短信消息将会存储在SIM卡文件系统之中。

  • 当SIM卡短信占用空间已满,也可从SIM卡文件系统中删除短信数据。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值