# HG changeset patch # User Mychaela Falconia # Date 1613349416 0 # Node ID 105aa3d1a494883b85cf5390f01cd24fdaa9d85a # Parent 9ff7ee99346fad1a49dc8bd1f6db7fc2f34ea5f7 fc-simtool write-iccid command implemented diff -r 9ff7ee99346f -r 105aa3d1a494 simtool/dispatch.c --- a/simtool/dispatch.c Mon Feb 15 00:30:08 2021 +0000 +++ b/simtool/dispatch.c Mon Feb 15 00:36:56 2021 +0000 @@ -64,6 +64,7 @@ extern int cmd_verify_chv(); extern int cmd_verify_ext(); extern int cmd_verify_hex(); +extern int cmd_write_iccid(); extern int cmd_write_imsi(); extern int display_sim_resp_in_hex(); @@ -155,6 +156,7 @@ {"verify-hex", 2, 2, cmd_verify_hex}, {"verify-pin1", 1, 1, cmd_verify_chv}, {"verify-pin2", 1, 1, cmd_verify_chv}, + {"write-iccid", 1, 1, cmd_write_iccid}, {"write-imsi", 1, 1, cmd_write_imsi}, {0, 0, 0, 0} }; diff -r 9ff7ee99346f -r 105aa3d1a494 simtool/miscadm.c --- a/simtool/miscadm.c Mon Feb 15 00:30:08 2021 +0000 +++ b/simtool/miscadm.c Mon Feb 15 00:36:56 2021 +0000 @@ -9,6 +9,33 @@ #include "curfile.h" #include "file_id.h" +cmd_write_iccid(argc, argv) + char **argv; +{ + int rc; + u_char nibbles[20], binrec[10]; + + rc = parse_decimal_string_arg(argv[1], nibbles, 20); + if (rc < 0) + return(rc); + pack_reversed_nibbles(nibbles, binrec, 10); + rc = select_op(FILEID_MF); + if (rc < 0) + return(rc); + rc = select_op(EF_ICCID); + if (rc < 0) + return(rc); + rc = parse_ef_select_response(); + if (rc < 0) + return(rc); + if (curfile_structure != 0x00 || curfile_total_size != 10) { + fprintf(stderr, + "error: EF_ICCID is not a transparent EF of 10 bytes\n"); + return(-1); + } + return update_bin_op(0, binrec, 10); +} + cmd_write_imsi(argc, argv) char **argv; {