SIM Phone book

最近在学习SIM Phonebook,有一些心得,也有一些思考,分享出来,希望对大家有些帮助。
了解SIM卡存储contact的一些限制,对于了解SIM phone book spec有很大的帮助。SIM卡的特点:小,慢,通用。存储内存小,读取速度慢,并且SIM卡存储和读取要有通用性,在不同设备上都能正常工作。
Phonebook的基本内容如下表,包含name,number,Email等(下面只是例子)。
在这里插入图片描述
从APP或者上层来看,存储phone book最简单的方法就是按照结构体存储,这样APP处理最快最方便,SIM也按照这种方式存储,这样的话APP和SIM driver进行交流就非常简单了。
typedef struct {
char *name;
char *number;
char *email;
char * additional_number;
char *additional_number_alpha_string;
} Phone_Book
但是受限于SIM的特性,存储比较小,在有限的存储空间下要存储更多的内容,要更快的读取和更新,另外要有通用性。SIM卡随着时代的发展,内容会发生变化,会增加一些项,并且每个项的长度不同卡可能不同,如果使用结构体不能满足这些要求,如果动态分配,可能会出现碎片化,如果静态分配的话,固定长度,那么通用性会比较差,长度定的太长,那么势必浪费存储空间。所以SIM使用结构体不是上选(上面纯属瞎想)。那就选择列存储,每一列存储一个phone book的项。当然选择列存储也是SIM的必然选择,因为SIM的其他内容也都是这种存储方式。
在这里插入图片描述

我们看一下header的内容,首先要给文件起一个名字,也就是Identifier(FID)。这个标识了存储的类型,存储的到底是什么。
在这里插入图片描述
我们先阐明一下SIM文件存储的类型,基本文件Elementary Files在SIM卡有三种方式:Transparent EF,Linear fixed EF,Cyclic EF。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于phonebook都是Liner fixed EF,Linear fixed EF :The max record number is 254,the record max length is 255 bytes。
Header 结构体中也需要记录文件的类型,每一个record的长度。SIM卡本身还有一些权限的问题,也就是PIN,PIN2,PUK等,某些文件需要特点的权限才能存储和读取,header也需要记录Access,还有一项SFI(short file identifier),这一项在后面还会介绍到。
在这里插入图片描述
那说完header,我们继续看一下record(body)的内容,每一项的存储内容都有SPEC详细说明,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值