ADN的格式

ADN存放于sim卡下面3f00/7f10/6f3a,记录文件格式,其最小记录格式为14,最长为255(?),记录个数最大为255(?)

其后数14个字节是必有的,其前12个字节是电话号码,倒数第一个是ext1,倒数第二个是ccp1

如果长度超过14个,则前面的存储的用户的姓名,如果以80,81,82开头,存放的是ucs2格式的姓名,否则是英文格式的串。

示例如下。

//Reset

3B 7B 11 22 33 00 01 02 03 04 05 06 07 08 09 0A

//SELECT

A0 A4 00 00 02 3F 00

9F 17

//A0 A4 00 00 02 是命令头,CLA = A0表示GSM应用,INS = A4 表示SELECT,P1 P2 = 00 00 是参数,P3 = 02 是数据的长度(或返回数据的长度)表示(2 )

//选择文件,选中文件为3F 00 代表MF

//9F 17 是返回状态,表示---成功,有23 个字节的信息等待GET RESPONSE

//SELECT

A0 A4 00 00 02 7F 10

9F 17

//A0 A4 00 00 02 是命令头,CLA = A0表示GSM应用,INS = A4 表示SELECT,P1 P2 = 00 00 是参数,P3 = 02 是数据的长度(或返回数据的长度)表示(2 )

//选择文件,选中文件为7F 10 代表TELECOM

//9F 17 是返回状态,表示---成功,有23 个字节的信息等待GET RESPONSE

//SELECT

A0 A4 00 00 02 6F 3A

9F 0F

//A0 A4 00 00 02 是命令头,CLA = A0表示GSM应用,INS = A4 表示SELECT,P1 P2 = 00 00 是参数,P3 = 02 是数据的长度(或返回数据的长度)表示(2 )

//选择文件,选中文件为6F 3A 代表ADN[CDMA-PL]

//9F 0F 是返回状态,表示---成功,有15 个字节的信息等待GET RESPONSE

//GET RESPONSE

A0 C0 00 00 0F

00 00 1B 58 6F 3A 04 00 11 FF 22 01 02 01 1C

90 00

//A0 C0 00 00 0F 是命令头,CLA = A0表示GSM应用,INS = C0 表示GET RESPONSE,P1 P2 = 00 00 是参数,P3 = 0F 是数据的长度(或返回数据的长度)表示( 15 )

//返回数据见上,其中

//--00 00 保留

//--1B 58 占用的空间大小,表示7000字节

//--6F 3A 选中File的ID

//--04 选中文件的类型,01-MF, 02-DF, 04-EF

//--00 见11.11 9.2.1 detail 3

//--11 FF 22 访问权限

//--01 文件状态,见11.11 9.3

//--02 后面数据的长度,表示2

//----01 文件结构,见11.11 9.3

//----1C 记录长度,见11.11 9.2.1 detail 4

//90 00 是返回状态,表示---成功

//READ RECORD

A0 B2 01 04 1C

80 5F 20 4E 09 FF FF FF FF FF FF FF FF FF 05 81 11 22 33 44 FF FF FF FF FF FF FF FF

90 00

//A0 B2 01 04 1C 是命令头,CLA = A0表示GSM应用,INS = B2 表示READ RECORD,P1 P2 = 01 04 是参数,P3 = 1C 是数据的长度(或返回数据的长度)表示( 28 )

//读记录,P2 = 04 表示绝对记录号,P1 = 01 为记录号,表示第1 条记录P3 = 1C 表示后面的数据长度为28

//这是一条ADN,姓名 "张三",电话号码 11223344

//90 00 是返回状态,表示---成功

//READ RECORD

A0 B2 02 04 1C

80 67 4E 56 DB FF FF FF FF FF FF FF FF FF 05 81 55 66 77 88 FF FF FF FF FF FF FF FF

90 00

//A0 B2 02 04 1C 是命令头,CLA = A0表示GSM应用,INS = B2 表示READ RECORD,P1 P2 = 02 04 是参数,P3 = 1C 是数据的长度(或返回数据的长度)表示( 28 )

//读记录,P2 = 04 表示绝对记录号,P1 = 02 为记录号,表示第2 条记录P3 = 1C 表示后面的数据长度为28

//这是一条ADN,姓名 "李四",电话号码 55667788

//90 00 是返回状态,表示---成功

//READ RECORD

A0 B2 03 04 1C

4A 65 6E 6E 79 FF FF FF FF FF FF FF FF FF 06 81 00 10 11 22 F2 FF FF FF FF FF FF FF

90 00

//A0 B2 03 04 1C 是命令头,CLA = A0表示GSM应用,INS = B2 表示READ RECORD,P1 P2 = 03 04 是参数,P3 = 1C 是数据的长度(或返回数据的长度)表示( 28 )

//读记录,P2 = 04 表示绝对记录号,P1 = 03 为记录号,表示第3 条记录P3 = 1C 表示后面的数据长度为28

//这是一条ADN,姓名 "Jenny",电话号码 000111222

//90 00 是返回状态,表示---成功

//READ RECORD

A0 B2 04 04 1C

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

90 00

//A0 B2 04 04 1C 是命令头,CLA = A0表示GSM应用,INS = B2 表示READ RECORD,P1 P2 = 04 04 是参数,P3 = 1C 是数据的长度(或返回数据的长度)表示( 28 )

//读记录,P2 = 04 表示绝对记录号,P1 = 04 为记录号,表示第4 条记录P3 = 1C 表示后面的数据长度为28

//这是一条空ADN

//90 00 是返回状态,表示---成功

sim卡中电话本(ADN)的简要格式的更多相关文章

  1. SIM卡中UCS2编码的三种格式(80,81,82)分析

    网上看到一篇比较好的说ucs2编码的文章,保存一下,原文地址: http://hi.baidu.com/youren4548/blog/item/fa08bd1bf61005058618bf1d.ht ...

  2. SIM卡读卡器的研究与设计

    SIM卡(Subscriber Identity Module).即用户识别模块,是一张符合GSM规范的"智慧卡".SIM卡可以插入任何一部符合GSM规范的移动电话中," ...

  3. sim卡中的汉字存储格式

    Sim卡中的ucs2格式 Sim卡中的中文都是以ucs2格式存储的,ucs2和unicode只是字节序不同,unicode是小头在前,ucs2是大头在前. Ucs2与GB2312互换可以用VC中的Wi ...

  4. android获取手机的所有通讯录的号码和sim卡号码

    ============personer================================================ package com.qgc.cantent.entity; ...

  5. android中判断sim卡状态和读取联系人资料的方法

    在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. Pho ...

  6. 十九、android中判断sim卡状态和读取联系人资料的方法

    在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. Pho ...

  7. SIM卡基础知识

    一:了解Sim卡和GSM网络登录步骤的基本知识 (一)名词解释: SIM卡(Subscriber Identity Module),即用户识别卡,它是一张符合GSM规范的“智慧卡”,SIM卡有大小之分 ...

  8. SIM卡基础,各管脚意义,封装定义

    1. SIM简介 SIM卡(Subscriber Identity Module).即用户识别模块,是一张符合GSM规范的"智慧卡".SIM卡可以插入任何一部符合GSM规范的移动电 ...

  9. Android--获取手机联系人和Sim卡联系人

    最近公司做的一个放贷APP,要求后台偷偷获取用户的联系人来做风控,所以...(大家忽略就好) 获取手机联系人很简单,就是查询android的数据库,用到的是ContentProvider进行跨进程通讯 ...

随机推荐

  1. 实现FileCopy(Ring0 x86 x64)

    1.1 内核不接受一个字符串文件路径,必须填写一个OBJECT_ATTRIBUTES结构. 这个结构,在InitializeObjectAttributes初始化 typedef struct _OB ...

  2. IE9下Ajax缓存问题

    使用jQuery的getJSON从后台定时获取数据并刷新界面,使用以下方法时,在Chrome,Firefox下没问题,但在IE9下却无法刷新数据 $.getJSON(webApp + "/G ...

  3. 转 jquery插件--241个jquery插件—jquery插件大全

    241个jquery插件—jquery插件大全 jquery插件jqueryautocompleteajaxjavascriptcoldfusion jQuery由美国人John Resig创建,至今 ...

  4. Android TextView 手动上下滑动

    有时候项目需求,TextView只显示若干行,其他部分隐藏,需要滑动才会显示,一般默认都是自动填充全部显示,或者手动设置高度,那样文字就显示不全,这时候可以使用下面的解决方案,代码设置显示的行数,然后 ...

  5. 安装程序时出现错误代码0x80070422

    通过win10应用商店,下载应用,安装时出现错误代码0x80070422. 需要打开services.msc,将windows update服务打开.

  6. Linux查看所有用户用什么命令1

      用过Linux系统的人都知道,Linux系统查看用户不是会Windows那样,鼠标右键看我的电脑属性,然后看计算机用户和组即可. 那么Linux操作系统里查看所有用户该怎么办呢?用命令.其实用命令 ...

  7. 给flash文件加超链接[兼容主流浏览器]

    <div style="position: relative;"> <a style="width: 640px; height: 90px; posi ...

  8. API 设计: RAML、Swagger、Blueprint三者的比较

    API设计工具中常常会拿RAML.Swagger.Blueprint这三种工具进行讨论比较,它们都是用来描述和辅助API开发的,只是它们之间的侧重有所不同. RAML RAML(RESTful API ...

  9. Android系统Root原理初探(转)

    http://www.imooc.com/learn/126 chkconfig setup 解压update.zip这个文件,可发现它一般打包了如下这几个文件: 或者没有updates而是syste ...

  10. PHP中静态方法和非静态方法的相互调用

    在PHP的非静态方法中可以调用静态方法 class test{ public static function strPrint(){ echo 'this is strPrint static fun ...