A4-SELECT
A4即select(选择)文件路径,该指令是一切指令的起始,不管是后面的C0/B0/B2/F2等都是在A4的基础上进行判断的。因为只有选择了文件的路径后才能取得该文件里面的内容。
A4命令格式如下:
格式 | 定义 |
---|---|
CLA | 00-USIM/A0-SIM |
INS | ‘ A4’ |
P1 | 选择控制 见下表 |
P2 | 选择选项 见下表 |
L c 字段 | 空或后续数据字段的长度 |
数据字段 | 文件标识符,DF名称,或路径,与P1的值相关 |
L e 字段 | 空或在响应时期望的数据最大长度 |
b8 b7 b6 b5 b4 b3 b2 b1 | P1含义 |
---|---|
0 0 0 0 0 0 0 0 | 选择 DF, EF或MF,通过文件标识符 |
0 0 0 0 0 0 0 1 | 选择当前DF的子DF |
0 0 0 0 0 0 1 1 | 选择当前DF的父DF |
0 0 0 0 0 1 0 0 | 通过DF名称选择应用-参见注解 |
0 0 0 0 1 0 0 0 | 以MF为起始,路径选择 |
0 0 0 0 1 0 0 1 | 以当前DF为起始,路径选择 |
上面的这么多种方式,最常使用的P1是0x00和0x80
b8 B7 b6 b5 b4 b3 b2 b1 | P2含义 |
---|---|
| 应用进程控制,参见注解2 |
|
|
|
|
0 - - 0 0 1 0 0 | 要求返回 FCP 模板 |
0 - - 0 1 1 0 0 | 无数据返回 |
| 按照AID选择 |
|
|
|
|
|
|
|
|
最常使用的P2是0x04
P1为0x00时,表示是在当前路径的基础上进行选择的文件,所以如果要选择某个DF下面的EF,必须先进入DF后才可以选择EF
1.正常读取
ICCID:3F00->7FE2
=>00 A4 00 04 02
<=A4
=>3F 00
<=61 2F
=>00 A4 00 04 02
<=A4
=>2F E2
<=61 19
IMSI: 3F00->7F20->6F07
=>00 A4 00 04 02
<=A4
=>3F 00
<=61 2F
=>00 A4 00 04 02
<=A4
=>7f 20
<=61 1a
=>00 A4 00 04 02
<=A4
=>6F 07
<=61 18
直接选择法,IMSI:7F206F07
=>00 A4 08 04 04
<=A4
=>7F 20 6F 07
<=61 18
2.错误路径,文件找不到
IMSI: 3F00->6F07
=>00 A4 00 04 02
<=A4
=>3F 00
<=61 2F
=>00 A4 00 04 02
<=A4
=>6F 07
<=6A 82
直接选择法,IMSI:6F07
=>00 A4 08 04 02
<=A4
=>6F 07
<=6A 82