Android SIM卡pass through模式

将SIM卡先Power Down, 然后在Power up pass through, 就可以将 SIM设置为直通(pass through)模式.

当初sim卡处于直通模式时,modem不发送其他任何指令(包括选择MF文件,TERMINAL CAPABILITY)。sim卡完全被Telephony控制, 直接发送 APDU. SIM卡的状态,将被设置为RIL_CARDSTATE_PRESENT, card apps的数目将是0. 不会生成任何错误代码。紧急呼叫将被支持,就如同SIM不存在时,也可以支持紧急呼叫那样。

直通模式,只对 激活它的 特定会话 有效。当卡下次初始化时, 就回到普通模式,除非你 再次请求直通模式。也就是说,手机重启后, SIM卡将回到 正常模式。

调用者应该监视 TelephonyIntents#ACTION_SIM_STATE_CHANGED 广播,来决定 成功或者失败,以及是否超时. 但新设备上,不保证会触发 广播。 请用新接口 setSimPowerState(int, Executor, Consumer_integer)

回调可能的值:
SET_SIM_POWER_STATE_SUCCESS
SET_SIM_POWER_STATE_ALREADY_IN_STATE
SET_SIM_POWER_STATE_MODEM_ERROR
SET_SIM_POWER_STATE_SIM_ERROR
SET_SIM_POWER_STATE_NOT_SUPPORTED
如果请求的 sim卡状态不对,将抛出 IllegalArgumentException 异常。

platform/hardware/interfaces/+/master/radio/1.6/IRadio.hal

oneway setSimCardPower_1_6(int32_t serial, CardPowerState powerUp);
设置SIM卡电源状态。
请求关掉 或者打开 sim卡的电源。
它不应该生成一个 CardState.CARDSTATE_ABSEND指示。
因为SIM卡还是物理插入在卡槽的。

当SIM卡处于直通模式时, modem不发送任何指定给sim卡,(比如
SELECT MF或者TERMINAL CAPABILITY指令)。SIM卡完全被
Telephony控制发送APDU.
SIM卡的状态必须是 RIL_CAFDSTATE_PERSENT
卡上的apps数量将为0
不会生成新的错误代码。
在切换为POWER_UP/POWE_UP_PASS_THROUGH状态前,SIM卡必须处于power down.

在手机power up时, SIM卡接口也会自动power up
关sim,开sim,这些请求,必须等前一个请求完成后,才能处理。

关卡状态,在CardStatus.applicaont中, modem发送一个空的AppStatus向量。

在关卡状态是,如果物理移除并插入新的sim卡,新卡必须默认处于开卡状态。

oneway setSimCardPower_1_1(int32_t serial, CardPowerState powerUp);

hardware/interfaces/radio/aidl/android/hardware/radio/sim/IRadioSim.aidl
void setSimCardPower(in int serial, in CardPowerState powerUp);

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注