add SIM REFRESH command after IMSI change

This commit is contained in:
Neels Hofmeyr 2020-02-26 02:02:53 +01:00
parent 872140db64
commit 4ac43a2f1b
1 changed files with 28 additions and 0 deletions

View File

@ -210,6 +210,7 @@ public class IMSIPseudo extends Applet implements ToolkitInterface, ToolkitConst
mi = MobileIdentity.str2mi(newIMSI_str, MobileIdentity.MI_IMSI, (byte)9);
writeIMSI(mi);
showMsg(changed);
refreshIMSI();
} catch (Exception e) {
showError((short)42);
}
@ -232,4 +233,31 @@ public class IMSIPseudo extends Applet implements ToolkitInterface, ToolkitConst
gsmFile.select((short) SIMView.FID_EF_IMSI);
gsmFile.updateBinary((short)0, mi, (short)0, (short)mi.length);
}
/*
* - command qualifiers for REFRESH,
* ETSI TS 101 267 / 3GPP TS 11.14 chapter 12.6 "Command details":
* '00' =SIM Initialization and Full File Change Notification;
* '01' = File Change Notification;
* '02' = SIM Initialization and File Change Notification;
* '03' = SIM Initialization;
* '04' = SIM Reset;
* '05' to 'FF' = reserved values.
*/
public static final byte SIM_REFRESH_SIM_INIT_FULL_FILE_CHANGE = 0x00;
public static final byte SIM_REFRESH_FILE_CHANGE = 0x01;
public static final byte SIM_REFRESH_SIM_INIT_FILE_CHANGE = 0x02;
public static final byte SIM_REFRESH_SIM_INIT = 0x03;
public static final byte SIM_REFRESH_SIM_RESET = 0x04;
/* Run the Proactive SIM REFRESH command for the FID_EF_IMSI. */
private void refreshIMSI()
{
/* See ETSI TS 101 267 / 3GPP TS 11.14 section 6.4.7.1 "EF IMSI changing procedure":
* Valid qualifiers are SIM_REFRESH_SIM_INIT_FILE_CHANGE and SIM_REFRESH_SIM_INIT_FULL_FILE_CHANGE.
*/
ProactiveHandler proHdlr = ProactiveHandler.getTheHandler();
proHdlr.init((byte)PRO_CMD_REFRESH, SIM_REFRESH_SIM_INIT_FULL_FILE_CHANGE, DEV_ID_ME);
proHdlr.send();
}
}