作者归档:softsim

管理Java卡工具

GlobalPlatformPro

java -jar gp.jar -info

支持 PC/SC 读卡器

支持  SCP01, SCP02 和 SCP03 安全通道协议

支持 GlobalPlatform所有版本的规范

java -jar gp.jar -acr-list
Warning: no keys given, using default test key 404142434445464748494A4B4C4D4E4F
Read more from https://github.com/martinpaljak/GlobalPlatformPro/wiki/Keys
STRICT WARNING: Card cryptogram invalid!
Card: 95C64148BAF3A1B4
Host: 4FA77C59F1AE0187
!!! DO NOT RE-TRY THE SAME COMMAND/KEYS OR YOU MAY BRICK YOUR CARD !!!

关于key

Command line samples assume default test keys of 404142434445464748494A4B4C4D4E4F. If you need a custom key, specify it with -key (you can give separate keyset components with -key-mac, -key-enc and -key-kek. You need to know the details or ask your card provider. Some cards require key diversification with -emv or -visa2 (ask your vendor if unsure). A Key Check Value can be given with -kcv option.

另外一个工具

中国联通PKCS15

中国联通基于UICC平台的Java卡互操作技术规范 v3.0 第二部分:SWP卡

附录D 卡片安全访问控制机制

SIM卡访问控制机制涉及以下实体:
1) SIM卡:存储访问控制主文件,访问控制规则文件及访问控制条件文件,文件结构定义需遵循PKCS#15规范
2) 手机终端:需提供终端专有访问控制模块,以实现手机客户端对SIM卡的访问控制功能。
3) 手机钱包客户端:提供应用下载和规则管理的管理界面。
4) 手机钱包平台:对卡片内手机钱包相关应用、安全域以及访问控制规则进行管理操作。
5) 终端专有访问控制模块:是集成在手机终端操作系统I中的一个模块,此模块能够从PKCS#15应用的规则文件中读取访问规则文件,并且依据这些客户端的证书判断客户端程序是否可以访问SIM卡。如果支持APDU过滤列表功能,客户端与SIM卡applet程序之间通讯的APDU指令会被检查。终端专有访问控制模块本身不存储规则,所有的规则储存在SIM卡的PKCS#15规则文件中。
6) PKCS#15应用:此应用下属的文件系统用于存储访问控制数据,这些数据包含了一个被授权的客户端应用发布者证书的SHA1算法的HASH值,及其对应的SIM卡程序的AID。

当手机客户端访问SIM卡端程序时,终端专有访问控制模块从PKCS#15应用下属文件系统中读取访问控制记录,此记录的标识为客户端程序所访问的SIM卡applet的AID值。如果所读取的访问控制条件文件中的客户端应用发布者证书的HASH值与当前客户端的证书HASH值匹配,客户端对此Applet的访问被允许,否则被拒绝。
若支持APDU过滤列表功能,如果客户端发往Applet的APDU命令与APDU过滤列表中的指令匹配,则允许客户端程序与此Applet之间的通讯。

PKCS#15应用AID
PKCS#15应用的AID为:A0 00 00 00 63 50 4B 43 53 2D 31 35。
开机后,读取EF DIR内容,解析出PKCS#15应用AID和对应的文件路径。
举例(EF DIR的第二条记录内容):
61 1C 4F 0C A0 00 00 00 63 50 4B 43 53 2D 31 35 50 06 50 4B 43 53 31 35 51 04 3F 007F 50 FF FF
其中:
• A0 00 00 00 63 50 4B 43 53 2D 31 35为PKCS#15应用的AID
• 3F 00 7F 50为对应的路径

PKCS#15 DF的文件ID为7F50。

ODF文件
此文件ID为5031,文件结构参照PKCS#15中PKCS#15Objects对象的定义,采用dataObjects属性。指向DODF文件。

DODF文件
此文件ID为5207,文件结构参见PKCS#15规范。指向ACMF文件。

DODF文件为访问控制数据读写入口,此入口采用GP定义的OID规则生成的

CMF文件
此文件为访问控制主文件(Access Control Main File),文件ID定义为4200。指向ACRF文件。

ACMF文件包含着刷新的tag以及指向ACRF文件的路径(支持访问安全规则)。
二进制内容举例:0x301004080000000000000001300404024300
• 排序编码 0x3010
0x30 = tag “sequence”
0x10 接下来数据的长度
• 刷新的tag在ASN.1 中以0x04080000000000000001格式编码.
0x04 = tag
0X08 = 数据长度
0x0000000000000001 = 刷新的tag值 (示例数据,可以为任何值)

• ACRF文件路径 0x300404024300
0x30 = tag “排序” (ASN.1路径是一种排序)
0x04 = 数据长度
0x04 = tag “路径”
0x02 = 长度
0x4300 = 文件标识符 (示例标识符)

远程公交卡

http://frankmorgner.github.io/vsmartcard/ACardEmulator/README.html

就是将公交卡放在家里,插在读卡器上,读卡器通过usb连接到电脑
电脑连着internet
电脑上运行一个服务

android应用将自己的nfc手机,模拟成这张公交卡

是不是很折腾?

SIM卡切换IMSI

EVENT_LOCATION_STATUS 0x87    …….Setup Event List时用到

TAG_LOCATION_STATUS 0x1b

ER_TLV_ME_TO_SIM_EVENT_DOWNLOAD 0xd6  

参考  ETSI TS 101 220 V15.1.0 (2019-05) 第16页

COMPREHENSION
-TLV tag
(CR and Tag value)

Location status tag

‘1B’ or ‘9B’

参考  ETSI TS 101 220 V15.1.0 (2019-05) 第18页

===========================================

如果通过Setup Event List命令将location status event方法到当前的事件列表里,当终端进入空闲状态时,位置状态或者位置信息被改变或者更新时,终端应该通知UICC这个事件出现.

通过Enveloper(Event Download–location status)命令

格式:

(手机–>卡)

CLA

INS=’C2′

P1

P2

Lc [Lc DATA]

Le=00

(卡–>手机)

可能的回应:

SW1=’6F’||SW2=’XX’

Luicc DATA||SW1=’90’||SW2=’00’

Luicc DATA
||SW1=’62’or ’63’||SW2=’XX’

=========================

命令参数(LC长度的内容)

Event Download TAG(事件下载标签)                                       1个字节

Length (后面4个字段的长度)             1或2个字节

Event List

Device Identities

Location Status

Location Information

实例:

80 C2(Envelope指令) 00 00

D6 (EVENT DOWNLOAD TAG)

Length

19  (Event list tag) 01( EL_Len) 03(Location status)

02 (Device identity tag) 02  82(terminal) 81(UICC)

1B(Location Status Tag) 01 00 (Normal Service)

13(Location Information Tag) ) 05

64 F0 00 FF FF

所以

80 C2 00 00 13 D6 11 19 01 03 02 02 82 81 1B 01 00 13 05 32 F4 19 FF FF

就会让电信卡将IMSI切换到沃达丰

切换到中国

80 C2 00 00 13 D6 11 19 01 03 02 02 82 81 1B 01 00 13 05 64 F0 11 FF FF

如果需要切换,回应 91 0B

用Fetch取出数据
80 12 00 00 0B

D0 09 81 03 01 01 03 82 02 81 82 90 00

解释:

D0  主动SIM卡指令Tag

09   后续指令长度

81   指令细节Tag

03   指令细节长度

01  指令号

01   指令类型  (1 = resresh

03   指令限制符  (3号 reresh指令, usim重新初始化+ ef刷新)

82    设备标志Tag

02    设备标志长度

81   源设备: UICC

82   目标设备:terminal/UE

切换到沃达丰

80 C2 00 00 13 D6 11 19 01 03 02 02 82 81 1B 01 00 13 05 32 F4 19 FF FF
80 12 00 00 0B

当终端接收到一个来自USIM的命令,它应该马上处理该命令。
如果该命令成功执行,终端应该使用TERMINAL RESPONSE命令尽快通知USIM;
如果命令没有成功执行,终端应该使用带有错误状态的TERMINAL RESPONSE命令尽快通知USIM。

如果是 REFRESH-5 命令(USIM RESET),  终端不发送TERMINAL RESPONSE;这是正常过程
的一个例外。 USIM把该复位当作一个隐含的TERMINAL RESPONSE 。当STK需要执行ATR或者全部UIM初始
化过程时,使用USIM复位模式。

==================

80 C2 00 00 13 D6 11 19 01 03 02 02 82 81 1B 01 00 13 05 32 F4 19 FF FF

80 12 00 00 0B

80 14 00 00 09 81 03 01 01 03 82 02 82 81

80 C2 00 00 13 D6 11 19 01 03 02 02 82 81 1B 01 00 13 05 64 F0 11 FF FF
80 12 00 00 0B
80 14 00 00 09 81 03 01 01 03 82 02 82 81

00A40004023F00
00A4000C027FF0
00A4000C026F07
00B0000009

String resp = defaultMgr.sendEnvelopeWithStatus(“D611190103020282811B0100130564F011FFFF”);

Log.i(TAG, “loc resp:” + resp);

可以正常切换

花海做的不规范的电信卡,切换

需要先回应一个 91 0E ,表示有 sim卡有长度为E的命令给 modem

>> 910E

80 12 00 00 0E
D0 (SIM卡命令) 0C
81 ((Command details tag) 03 01(cmd number) 05 (SET UP EVENT LIST) 00
82 02 81 82
99 (Event list tag) 01 03 (Location status) ### Fetch or Terminal_Response

>> 9000

801400000C
81 03 01 05 (SET UP EVENT LIST) 00
02 02 8281
03 (Result tag) 01 00 ### Fetch or Terminal_Response

>> 9000

80C2000017
D6 15
19 01 03
02 02 8281
1B 01 00
13 09 64F010 7166 1D2AD1BF ### ENVELOPE

>>910B

801200000B
D0 (Proactive UICC command tag) 09
81 03 01 01 (Reresh) 03
82 02 81 82 ### Fetch or Terminal_Response

>> 9000

LPA功能要求

当TEE eSIM模拟实现eUICC芯片并实现GSMA规范SGP.22所定义的功能时应具备该组件。LPA的功能需完全遵循GSMA规范SGP.22的要求,实现LDS、LPD,LUI的所有功能。

LPA在终端内部,运行于REE中,与终端外部SM-DP+、证书和EID颁发实体通过相应接口连接。

终端LPA在应具备如下功能:
(1) eSIM的初始化
申请EID,并协助eSIM TA申请eSIM证书。

(2) Profile的下载
获取eSIM TA信息,并与eSIM TA协作从eSIM管理平台下载Profile密文,并下传到eSIM TA。

(3) 为业务受理App提供Profile管理的访问接口
接收终端用户通过业务受理App发出关于Profile的管理指令。

(4) Profile的激活
对eSIM TA中已安装的Profile发出激活指令。

(5) Profile的去激活
对eSIM TA中已安装的Profile发出去激活指令。

(6) Profile的删除
对eSIM TA中已安装的Profile发出删除指令。

(7) 提供Profile信息
向业务受理App提供Profile的相关信息。

eSIM证书分配与管理应由具有相应资质的证书发行机构发行。证书分配与管理可根据需求采用出厂预置或空中发行方案。
(1) 对于采用出厂预置TEE eSIM证书的方案,eSIM相关证书应在设备出厂前完成预置,按照相关标准对证书进行相应的存储和管理。
(2) 对于采用空中发行TEE eSIM证书的方案,在发行前应在线验证TEE终端的合法性和eSIM TA的合法性。TEE eSIM应使用TEE本身的根密钥对证书的申请信息进行加密及签名,同时服务器下发的证书也必须采用TEE的根密钥进行签名保护。

REFRESH proactive

REFRESH proactive SIM RESET<

0)USIM card SAT Java applet changing the EF_IMSI and EF_SMSP data to a set number 2
1)USIM applet sends the REFRESH (SIM reset) proactive command to the terminal device
2)device performing the Reset on USIM interface and re-initializing the USIM card (full initialization)
3)new IMSI and new SMSC parameters are uploaded from the USIM card
4) terminal device registering to the Network with the new IMSI

APDU:
80 12 00 00 0B
12
D0 09 81 03 01 01 04(reset) 82 02 81 82 90 00

=========================

’00’ = NAA Initialization and Full File Change Notification;
执行类似03的初始化, 只是如果modem有EF文件镜像的话,应该执行完全的更新

’01’ = File Change Notification;
此模式告诉 modem, NAA和DF_TELECOM目录下的,EF实体 的结构/内容 已经改变。
如果modem的内存里有NAA EF的镜像,那么可能它需要更新这些镜像

’02’ = NAA Initialization and File Change Notification;
此模式,是上述 01 和 03 模式的组合

’03’ = NAA Initialization;
此模式 告诉 modem应该执行完整的NAA应用初始化,开始pin验证之后的流程

’04’ = UICC Reset;
modem终止与卡的会话(按照ETSI TS 102.221定义的流程).
然后,丢弃缓存的所有UICC的值。
执行一个sim卡的热启动。
开始新的卡会话。
modem/terminal 不应该发送Terminal Response给卡。
因为 terminal response是普通的命令的响应。这里卡都重启了,不需要收这个响应。

’05’ = NAA Application Reset, only applicable for a 3G platform;
终止NAA会话,开启新的会话,只能用于3G以上的平台,不应该用于2G平台

’06’ = NAA Session Reset, only applicable for a 3G platform;
这个模式等同于 NAA Initilaization和File Change Notification (02)模式,加上额外的NAA初始化过程

07 = Steering of Roaming Refresh Support

08 = Steering of Roaming I-WLAN

09 = eUICC Profile State Change
这个模式用于eSIM, 定义在 GSMA SGP.22
用来改变 Profile, 但不要求重启sim.
终止会话,丢弃缓存的profile相关的值,包括EF_ICCID, EF_DIR.
发送Terminal Response

0A = Application Update
非NAA更新

步骤
1.UICC在应该回应 90 00 的时候,回应 91 xx
2. 然后ME发送FETCH 指令
3. UICC 发送 REFRESH (D0 09 81 03 01 01 04 82 02 81 82)
4. ME 取UICC状态 (P1=02)
5.  ME重启UICC

中兴视通的双IMSI就是

80 12 00 00 0E
12 
D0 0C
    81 (Command details tag)03 01 01(类型为Refresh) 04 (Reresh类型为重启)
    82 (Device identity tag)02 81 (UICC) 82 (ME)
    12 (File List tag)  01 00
90 00

USIM可能有多个应用,但至少应该有一个应用,是为了让手机访问网络的。
这个应用就称为 Network Access Application (NAA)

途宝飞鲸软卡

80 12 00 00 0B
 
D0 09
   81 03 01 (命令序号) 01(Refresh命令) 04 (SIM Reset)
   82 02 8182

stk(sat) refresh apdu

1) 终端向 SIM 卡下发 的封装指令 ( envelope command )
2) SIM 卡向终端发起 的主动上 艮指令 ( proactive command )

10 Terminal Profile
AA Terminal Capability
C2 Envolope
12 Fetch
14 Terminal Respone

跨 国运 营商在 不 同的地 区的归属 PLMN 、运 营商优先注册 网络 、竟争对手各不相 同,无法使用一张简单 的 EHPLMN/OPLMN/FPLMN 列表控制终端在 不同地 区的 网络接入 。

SIM 卡 可 以通 过 刷 新 (Refresh ) 方 式 通 知 终 端 更新EHPLMN/OPLMN/FPLMN 文件

REFRESH: 请求ME执行SIM卡的初始化过程,和/或提示ME SIM卡中的EF文件内容或结
构已经更高.命令可以使ME复位SIM卡,从而重新启动一个会话.

支持5种不同模式:
1) SIM卡初始化.
此模式通知ME在CHV1校验后,对SIM卡进行初始化
ME不应该电复位SIM卡

2)文件改变通知
词模式通知ME在SIM卡中文件结构或者内容已经改变的

3) SIM卡初始化和文件改变通知

4)SIM卡初始化和文件改变全部通知

5)SIM卡复位
此模式可使 ME终止绘画,并去激活SIM卡.随后,ME再次激活SIM卡,并开始新的SIM卡会话.

若ME采用3V电压, 上述过程中 ME确定SIM没有被更换的情况下,ME将沿用
前一会话所使用的电压,重启SIM卡.否则,ME应该进行电压转换.

一般情况下,命令完成后,发送 Terminal Respone. 然而,此模式 ME不发送.
这是正常的.

EF_IMSI更改过程
如果通过Data Download 或者 SIM卡应用工具箱   和 SIM卡发送的REFRESH命令
对EF_IMSI文件进行更改,下面的规定适用于SIM卡工具箱和ME:
1) SIM卡初始化.若 EF_IMSI文件发生改变, 此命令不被使用,因为MS的行为不可预知.
2)文件改变通知.若EF_IMSI文件发生改变,此命令不被使用,因为MS的行为不可预知
3)SIM卡初始化和文件改变通知.若EF_IMSI是文件通知改变的文件之一
那么ME将激活SIM重启过程.
4)文件初始化和文件全部改变通知,ME将激活MM重启过程
5) SIM卡复位.执行正常的SIM卡复位过程.

A typical 10-step IMSI swap scenario
In the example below, we describe the IMSI swap scenario. In this scenario, a vehicle with an embedded SIM is connected through a device to a German Network Partner with a specific IMSI (IMSI1). Later on, the vehicle is redeployed to Argentina and connects to an Argentine Network Partner of EMnify with a new IMSI (IMSI2).

1)SIM is initially provisioned with IMSI 1 as an active IMSI
2)SIM attaches the German Network (MCC 262)
3)SIM moves to Argentine (MCC 722)
4)SIM tries to reach network in Argentina with IMSI1
5)No roaming agreement is allowed. IMSI1 is rejected by the visited network.
6)The following message is displayed on the EMnify User Interface: “Location update rejected from VLR 34656022000 for IMSI 26201101234567891. This operator is currently not supported for this IMSI. A different IMSI or operator will be used for the network registration.”
7)SIM applet finds Argentina (MCC 722) as the new location
8)SIM Applet overwrites the active IMSI. IMSI1 is replaced with IMSI 3 according to IMSI Selection Table
9)SIM sends a refresh command to the device and a new network attach with IMSI3 is performed
10)SIM is connected with IMSI3 on an Argentine Network Partner of EMnify


Proactive Command:
Timer Managerment
Refresh
Poll Interval

Provide Locall Information

从TS 131.111的Rel 7中,ETSI定义了一个新的特性,在PRO_CMD_REFRESH指令中,增加了一个新的命令细节“Steering of Roaming”。通过这个命令,UICC可以发送一个PLMN列表给ME,达到如下的目的

替换EF_OPLMN中的PLMN列表,从最高优先级开始替换
从SIM和ME内存的FPLMN列表中删除相关PLMN信息
在接下来的流程中,优先使用此列表尝试
如果T计时器超时,优先尝试使用此列表PLMN来维持服务

SUBSCRIPTION_HOME和SUBSCRIPTION_ROAMING一般有不同的覆盖区域。

例如:
SUBSCRIPTION_HOME:覆盖区域A
SUBSCRIPTION_ROAMING:覆盖区域B、C、D

在A、B不交界的情况下,切换不会有任何问题。用户从A移动到B,SIM探测到这个位置切换,就自动把Subscription数据切换为Roaming subscription。

如果A、C交界。在A、C边境区域,可能C信号稍强,此时会尝试登陆C的网络,但是SIM还处于SUBSCRIPTION_HOME。这种情况下,就会导致“PLMN not allowed”结果。ME就会根据标准规定,把当前网络C写入了EF_FPLMN。在这种情况下,即使号码切换到SUBSCRIPTION_ROAMING,按照标准规定,手机也不会再尝试在EF_FPLMN中的网络。导致客户只能通过手动选择网络的方式,才能选到网络。

TS 131.122, $4.4.6 Steering of Roaming
If the MS receives a USAT REFRESH command qualifier (3GPP TS 31.111 [41]) of type “Steering of Roaming”, the MS shall:
a) replace the highest priority entries in the “Operator Controlled PLMN Selector with Access Technology” list with the list provided in the REFRESH command;
b) delete the PLMNs identified by the list in the REFRESH command from the Forbidden PLMN list and from the Forbidden PLMNs for GPRS service list, if they are present in these lists. This includes any information stored
in the SIM and the ME internal memory;
c) take the new information into account in subsequent attempts to access a higher priority PLMN; and
d) attempt to obtain service on a higher priority PLMN as specified in subclause 4.4.3.3 by acting as if timer T that controls periodic attempts has expired.
In order to avoid unnecessary signalling, the network operator should avoid repeatedly using steering of roaming of a particular MS.

NFC SWP SIM卡

SWP(Single Wire Protocol)是物理层和数据链路层协议,提供了基于UICC卡C6触点的定义,电压信号S1、电流信号S2的定义,及数据比特流传输服务、总线管理,并进行错误检测、丢失重发、流量控制等机制

SWP 协议即单线协议(Single Wire Protocol),是目前 在ETSI 已有成熟技术要求和测试方法的一种用于在非接触通信模块(ContactLess Frontend: CLF)与 USIM 卡间传输信息的接口协议,确切来说 SWP 协议定义了 CLF 模块和 USIM 卡内的 SE 芯片传输信息的物理连接形式和底层信号传输要求等(包括物理层、数据链路层)。

ETSI TS 102.613
ETSI TS 102.694-1
ETSI TS 102.694-2

SWP 实现物理层和数据链路层的连接,通过 UICC 上的一个触点 C6 的电流电压变化来传递信息,实现物理数据传输、数据链路层无误传输数据、对接收和发送的数据排序、数据链路层流量控制等功能。

SWP 协议是基于全双工数字传输的模式。S1 信号通过电压的数字调制(L或 H)来传送从 CLF 到 UICC 的信息,S2 信号通过对电流的数据调制(L 或 H)来传送从 UICC 到 CLF 的信号。这样通过一个触点,单线连接即可完成信息的交互,因此,该协议被称之为单线协议。

SWP 接口可工作于两种功耗模式之下:低功耗模式和全功耗模式。如果 UICC卡处于低功耗模式,终端不应激活 YD/T1762.1-2008 的接口;如果 UICC 支持3GPP TS 102 600 中定义的 USB 接口,终端不应执行 USB 接口的附着。如果 UICC卡处于全功耗模式,终端可以独立激活任何其它 UICC 接口。

支持SWP接口,可以在手机关机的情况下,进行刷卡.

为了保证手机没电时移动支付的正常进行,标签模式需要支持无源工作,其工作原理基于电磁感应。阅读器的天线线圈产生高频的强电磁场,这种磁场穿过线圈横截面和线圈周围的空间。发射磁场的一部分磁力线穿过距阅读器线圈有一定距离的应答器的天线线圈。通过感应在天线线圈上产生电压,将其整流后作为电源提供给NFC芯片和SIM卡。为了保证手机没电时移动支付的正常进行,标签模式需要支持无源工作,其工作原理基于电磁感应。阅读器的天线线圈产生高频的强电磁场,这种磁场穿过线圈横截面和线圈周围的空间。发射磁场的一部分磁力线穿过距阅读器线圈有一定距离的应答器的天线线圈。通过感应在天线线圈上产生电压,将其整流后作为电源提供给NFC芯片和SIM卡


NFC终端不同模式下信息路由机制是不同的,在NFC终端工作在卡模拟模式时,外界POS机发送的信号会通过NFC Controller转发到SIM卡中处理,而当NFC终端工作在读写器、点对点模式时,从外部卡片或手机读取的信息将通过NFC Controller转发到NFC协议栈解析,最终转交给操作系统或客户端应用程序处理。

Android手机sim重启

IExtTelephony extPhone = IExtTelephony$Stub.asInterface(ServiceManager.getService(“extphone”));

extPhone.deactivateUiccCard(1)
extPhone.activateUiccCard(1);

com.qti.internal.telephony.ExtTelephonyServiceImpl

public int activateUiccCard(int slotId) {
return this.mCardProvisioner.activateUiccCard(slotId);
}

public int deactivateUiccCard(int slotId) {
return this.mCardProvisioner.deactivateUiccCard(slotId);
}

bindIExtTelephony.Stub(ExtTelephonyServiceImpl.activateUiccCard)

https://android.googlesource.com/device/google/marlin/+/master/telephony/internal/src/org/codeaurora/internal/IExtTelephony.aidl

TelephonyExtUtils extTelephony = TelephonyExtUtils.getInstance(mContext);

TelephonyExtUtils extTelephony = TelephonyExtUtils.getInstance(mContext);
int result = mIsChecked ?
extTelephony.activateUiccCard(mSlotId) :
extTelephony.deactivateUiccCard(mSlotId);
newProvisionedState =
extTelephony.getCurrentUiccCardProvisioningStatus(mSlotId);
return result;

https://gitlab.e.foundation/e/os/android_packages_apps_Settings/blob/v1-pie/src/com/android/settings/sim/SimSettings.java

mExtTelephony = IExtTelephony.Stub.asInterface(ServiceManager.getService(“extphone”));

ARR实例分析

Access Rule Reference 讲述了一些基本规则

ICCID的访问规则
800101900080017AA40683010A950108FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

80 (AM_TAG) 01 (Length) 01( AM_VALUE) 90 (SC_TAG) 00 (Length) 表示读和搜索,总是允许
80 01 7A (删除,终止,激活,取消,更新等操作)
A4 (根据CRT用途,要求认证) 06 83 (密钥引用标签)01 0A (ADM-1) 95 ( 使用限定标签)01 08

规则解释:
读和搜索,总是允许
删除,终止,激活,取消,更新 等操作,需要ADM-1

IMSI的访问规则
800111A40683010195010880016AA40683010A950108FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

80 01 11 (激活 和 读) A4 06 83 01 01(PIN-1) 95 01 08
80 01 6A(删除,终止,取消,更新) A4 06 83 01 0A (ADM-1) 95 01 08

800101A40683010195010880011AA40683010A950108FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

80 01 01 (读取) A4 06 83 01 01 95 01 08
80 01 1A ( 激活,取消,更新,) A4 06 83 01 0A (ADM-1)95 01 08

Ki的规则

80 01 01 (读取) 9700 (禁止)
80 01 1A (激活,取消,更新) A4 06 83 01 0A (ADM-1)950108

Opc 的规则

80 01 7B(删除,终止,激活,取消,更新,读)A4 06 83 01 0A(ADM-1) 950108

ARR自己的规则,同ICCID

ACC 同 IMSI-4

FPLMN的规则
80 01 03( 更新,读) A4 06 83 01 01 (PIN-1) 95 01 08
80 01 78(删除,终止,激活,取消) A4 06 83 01 0A (ADM-1)950108

SPN同ICCID

LOCI同FPLMN

EHPLMN同IMSI

EPS_LOCI同FPLMN
EPS_NSC同FPLMN

GSM PLMNSel同FPLMN

动态更新文件,需要修改IMSI, ICCID, Ki, OPC四个文件的访问规则)

将 1
4
7
A
F 的ARR记录内容改为
800103A406830101950108800178A40683010A950108FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
即可