如何使用 AT+CRSM读取SIM卡文件
时间:10-02
整理:3721RD
点击:
[FAQ12953][AT Command][SIM] 如何使用
AT+CRSM读取SIM卡文件
[DESCRIPTION]
如何使用AT命令读取SIM卡文件
[SOLUTION]
可以使用+CRSM命令来访问文件。
Read a EF_PNN (file_idx= 0x6FC5 , structure: Linear fixed),6FC5的十进制是28613。
1、先获取文件信息
(1)GET RESPONSE first
at+crsm=192,28613
+CRSM: 144, 0, "621F82054221001C0583026FC5A5038001718A01058B036F060C8002008C8801C8"
OK
// 从响应数据可以区分出是SIM还是USIM。
根据USIM Spec,响应数据中,第一个字节是FCP模板的标签,也就是'62'.
所以有:'62......'
根据SIM Spec,响应数据中,前两个字节是RFU,GSM规范的卡是'0000'.
所以有:'0000.....
// 从当前的响应结果看,这个是USIM卡。因此根据USIM的Spec进行解析。
62 1F :'62'是FCP模板的标签,'1F'是FCP模板长度;
82 05 42 21 : '82'是文件描述符的标签, '05'是文件描述符长度, '42'是文件描述符, '21'是数据编码;
00 1C: '001C'是指记录长度;
05 :'05'是指记录个数;
83 02 6F C5 :'83'是文件标识符的标签, '02'是长度, '6F C5'是文件标识符;
A5 03 : 'A5'是专有信息的标签,'03'是长度;
80 01 71: '80'是UICC特性的标签,'01'是长度,'71'是特性字节;
8A 01 05: '8A'是生存周期的标签,'01'是长度,'05'是生存肘周期编码;
8B 03 6F 06 0C :'8B'是索引到扩展模式, '03'是长度, '6F 06'是EFarr的文件标识符, '0C'是EFarr中对应的记录数;
80 02 00 8C:'80'是文件大小的标签,'02'是长度, '00 8C'是文件中数据字节的长度;
88 01 C8:'88'是文件短标示符的标签, '01'是长度, 'C8'是短标识符。
从这上面,我们需要知道的信息主要是:00 1C: '001C'是指记录长度,为28;
05 :'05'是指记录个数;
注意:
如果是SIM卡的响应结果,则需要根据SIM的Spec进行解析。
例如,SIM卡的EF_ADN的响应结果为:
"00001D4C6F3A04001100220502011E"。
其中,
......
'1D4C'是文件中数据字节的长度, 为7500;
......
'1E'是一个记录的长度, 为30。
那么记录个数为7500/30 = 250.
2、读取记录,由于是Linear fixed的文件,可以使用read record读取记录。
(2) READ RECORD
at+crsm=178,28613,1,4,28
其中,178指的是Read Record操作;
28613是指读取的文件ID('6F C5');
1是指要读的记录;
4是指采用absolute模式读取(可以指定记录);
28是指记录的长度;
提醒:
命令参数的说明及意义,可参考SIM/USIM的Spec中关于Command描述的部分;
+CRSM的使用及功能介绍,可参考 AT_DOCUMENT_FeaturePhone.pdf;[AT Command][SIM]如何用AT命令修改PIN
[FAQ03693][AT Command][SIM]如
AT+CRSM读取SIM卡文件
[DESCRIPTION]
如何使用AT命令读取SIM卡文件
[SOLUTION]
可以使用+CRSM命令来访问文件。
Read a EF_PNN (file_idx= 0x6FC5 , structure: Linear fixed),6FC5的十进制是28613。
1、先获取文件信息
(1)GET RESPONSE first
at+crsm=192,28613
+CRSM: 144, 0, "621F82054221001C0583026FC5A5038001718A01058B036F060C8002008C8801C8"
OK
// 从响应数据可以区分出是SIM还是USIM。
根据USIM Spec,响应数据中,第一个字节是FCP模板的标签,也就是'62'.
所以有:'62......'
根据SIM Spec,响应数据中,前两个字节是RFU,GSM规范的卡是'0000'.
所以有:'0000.....
// 从当前的响应结果看,这个是USIM卡。因此根据USIM的Spec进行解析。
62 1F :'62'是FCP模板的标签,'1F'是FCP模板长度;
82 05 42 21 : '82'是文件描述符的标签, '05'是文件描述符长度, '42'是文件描述符, '21'是数据编码;
00 1C: '001C'是指记录长度;
05 :'05'是指记录个数;
83 02 6F C5 :'83'是文件标识符的标签, '02'是长度, '6F C5'是文件标识符;
A5 03 : 'A5'是专有信息的标签,'03'是长度;
80 01 71: '80'是UICC特性的标签,'01'是长度,'71'是特性字节;
8A 01 05: '8A'是生存周期的标签,'01'是长度,'05'是生存肘周期编码;
8B 03 6F 06 0C :'8B'是索引到扩展模式, '03'是长度, '6F 06'是EFarr的文件标识符, '0C'是EFarr中对应的记录数;
80 02 00 8C:'80'是文件大小的标签,'02'是长度, '00 8C'是文件中数据字节的长度;
88 01 C8:'88'是文件短标示符的标签, '01'是长度, 'C8'是短标识符。
从这上面,我们需要知道的信息主要是:00 1C: '001C'是指记录长度,为28;
05 :'05'是指记录个数;
注意:
如果是SIM卡的响应结果,则需要根据SIM的Spec进行解析。
例如,SIM卡的EF_ADN的响应结果为:
"00001D4C6F3A04001100220502011E"。
其中,
......
'1D4C'是文件中数据字节的长度, 为7500;
......
'1E'是一个记录的长度, 为30。
那么记录个数为7500/30 = 250.
2、读取记录,由于是Linear fixed的文件,可以使用read record读取记录。
(2) READ RECORD
at+crsm=178,28613,1,4,28
其中,178指的是Read Record操作;
28613是指读取的文件ID('6F C5');
1是指要读的记录;
4是指采用absolute模式读取(可以指定记录);
28是指记录的长度;
提醒:
命令参数的说明及意义,可参考SIM/USIM的Spec中关于Command描述的部分;
+CRSM的使用及功能介绍,可参考 AT_DOCUMENT_FeaturePhone.pdf;[AT Command][SIM]如何用AT命令修改PIN
[FAQ03693][AT Command][SIM]如