文件标识符(FID)用来定位和识别一个特定的文件。
同一父目录下的任何两个文件都不应具有相同的FID
当前目录的子文件或者子目录,当前目录的父目录, 当前目录的兄弟目录,这三者不能有相同的FID
短文件标识符 (SFI) 编码为 5 位,取值范围为 1 至 30。同一父级下的任何两个文件都不应具有相同的 SFI。
保留的 FID–7FFF可用作给定逻辑通道上当前活动应用程序的 ADF 的 FID。
DF除了有FID外,还可以有名字,名字就是AID, AID在每张卡上都应该唯一。 AID的长度,从1到16个字节。
——
在 UICC 激活和发送ATR给读卡器或者modem后,主文件 (MF) 被隐式选择,并成为当前目录。
(1) 通过FID应用来选择文件或者目录
选择 DF、ADF 或 MF, 都会改变当前目录, 当前EF为空,也就是不存在当前EF
选择EF, 会改变当前EF,但不会当前目录, 目录还是之前的目录,并且这个目录就是当前EF的父目录。
通过文件FID, 可以选择
[1]当前目录的直接子级的任何EF文件
[2]当前 DF 父级的直接子级的任何DF, 也就是当前目录任何兄弟DF
[3]当前目录的父级
[4]当前 DF
[5]当前活动应用的ADF
[6]MF, 也就是3F00
(2)通过 路径 来选择
路径 有3种模式:
[1] 从MF开始
[2] 从ADF开始
[3] 从当前DF开始
MF模式下,终端不得在路径开头使用 MF 的文件标识(即3F00)。
当前DF模式下,终端不得在路径开头使用特殊文件 ID–7FFF。
MF模式或者当前DF模式,终端不得使用当前 DF 的文件标识, 也不得使用空数据字段(也就空选择)。
———-
通过使用 AID 显式选择应用,就可以激活应用,并把选择的应用的 ADF 设置为当前 ADF。
当前 ADF 可以通过 FID 引用,隐式引用值为 7FFF
一个可以被选择的应用,可以通过部分DF名称模式选择,此时应该将P1 设置为 ’04’。部分选择的情况下,DF名称被右截断。
如果卡上有多个应用,它们的AID的开头的内容相同,如果采用部分DF名称模式,具体应该选择那个AID,应取决于P2值。如果P2的值表示”last”,那么选择的应该是与部分 DF 名称匹配的最后一个活动应用。
对于单应用卡,使用部分 DF 名称选择应用是可选的,但多应用卡应支持 部分DF名称选择模式。卡应该在ATR 历史字节的”卡服务数据”和”卡功能”压缩 TLV 对象中指示对此功能的支持.
如果 UICC 不支持使用部分 DF 名称进行选择,则 UICC 应以适当的响应进行响应(例如,不支持命令参数6A86)。
—————–
P1
00 通过FID选择DF, EF 或者 MF
01 选择当前DF下的子DF
03 当前DF的父DF
04 通过DF的名称(也就是AID)来选择
08 通过从MF开始的路径 来选择
09 通过从当前DF开始的路径来选择
如果 P1 = ’00’ 且数据字段为空,则应将 P2 设置为 ‘0C’(“无数据返回”)。然后,MF 被设置为当前目录。
为避免 P1 = ’00’ 时出现歧义,在选择以文件 ID (FID) 为参数的文件时,应遵循以下搜索顺序:
[1]当前 DF 的直接子文件
[2] 父 DF
[3] 父 DF 的直接子文件
当 P1 ≠ ’04’ 时,P2 的位 b2 和 b1 没有意义,应设置为 0。
当 P1 = ’04’(即通过 AID 选择)时,可以在数据字段中指定右截断 AID。
P2=04, 要求返回FCP模板
P2=0C, 不要求返回数据