# HG changeset patch # User Mychaela Falconia # Date 1611807592 0 # Node ID c77b0d4cf89faa75957e81311776cb3d9467e714 # Parent b563ff1c1a2a6a2920d203b83d60c59986c14bb8 fc-simtool: save-sms-bin command implemented diff -r b563ff1c1a2a -r c77b0d4cf89f simtool/dispatch.c --- a/simtool/dispatch.c Thu Jan 28 04:11:28 2021 +0000 +++ b/simtool/dispatch.c Thu Jan 28 04:19:52 2021 +0000 @@ -28,6 +28,7 @@ extern int cmd_readrec(); extern int cmd_restore_file(); extern int cmd_savebin(); +extern int cmd_save_sms_bin(); extern int cmd_select(); extern int cmd_spn(); extern int cmd_telecom_sum(); @@ -75,6 +76,7 @@ {"readrec", 1, 2, cmd_readrec}, {"restore-file", 2, 2, cmd_restore_file}, {"savebin", 2, 2, cmd_savebin}, + {"save-sms-bin", 1, 1, cmd_save_sms_bin}, {"select", 1, 1, cmd_select}, {"sim-resp", 0, 0, display_sim_resp_in_hex}, {"spn", 0, 0, cmd_spn}, diff -r b563ff1c1a2a -r c77b0d4cf89f simtool/saverestore.c --- a/simtool/saverestore.c Thu Jan 28 04:11:28 2021 +0000 +++ b/simtool/saverestore.c Thu Jan 28 04:19:52 2021 +0000 @@ -12,6 +12,7 @@ #include #include #include "globals.h" +#include "file_id.h" static savebin_transparent(outf) @@ -90,6 +91,36 @@ return(rc); } +cmd_save_sms_bin(argc, argv) + char **argv; +{ + int rc; + FILE *of; + + rc = select_op(DF_TELECOM); + if (rc < 0) + return(rc); + rc = select_op(EF_SMS); + if (rc < 0) + return(rc); + rc = parse_ef_select_response(); + if (rc < 0) + return(rc); + if (curfile_structure != 0x01 || curfile_record_len != 176) { + fprintf(stderr, + "error: EF_SMS is not linear fixed with 176-byte records\n"); + return(-1); + } + of = fopen(argv[1], "w"); + if (!of) { + perror(argv[1]); + return(-1); + } + rc = savebin_records(of); + fclose(of); + return(rc); +} + static restore_transparent(data) u_char *data;