diff --git a/src/sim/card_fs_uicc.c b/src/sim/card_fs_uicc.c index c73fc9a29..5dcaaa126 100644 --- a/src/sim/card_fs_uicc.c +++ b/src/sim/card_fs_uicc.c @@ -231,7 +231,7 @@ const struct tlv_definition ts102221_fcp_tlv_def = { /* Annex E - TS 101 220 */ static const uint8_t __attribute__((__unused__)) adf_uicc_aid[] = { 0xA0, 0x00, 0x00, 0x00, 0x87, 0x10, 0x01 }; -struct osim_card_profile *osim_cprof_uicc(void *ctx) +struct osim_card_profile *osim_cprof_uicc(void *ctx, bool have_df_gsm) { struct osim_card_profile *cprof; struct osim_file_desc *mf; @@ -255,5 +255,14 @@ struct osim_card_profile *osim_cprof_uicc(void *ctx) return NULL; } + if (have_df_gsm) { + /* DF.GSM as sub-directory of MF */ + rc = osim_int_cprof_add_gsm(mf); + if (rc != 0) { + talloc_free(cprof); + return NULL; + } + } + return cprof; } diff --git a/src/sim/card_fs_usim.c b/src/sim/card_fs_usim.c index 97f712ac5..d5d273645 100644 --- a/src/sim/card_fs_usim.c +++ b/src/sim/card_fs_usim.c @@ -345,14 +345,5 @@ struct osim_card_app_profile *osim_aprof_usim(void *ctx) /* OMA BCAST Smart Card Profile */ add_df_with_ef(uadf, 0x5F80, "DF.BCAST", NULL, 0); -#if 0 - /* DF.GSM as sub-directory of MF */ - rc = osim_int_cprof_add_gsm(mf); - if (rc != 0) { - talloc_free(cprof); - return NULL; - } -#endif - return aprof; } diff --git a/utils/osmo-sim-test.c b/utils/osmo-sim-test.c index e71d0ef1b..6cf36a6a0 100644 --- a/utils/osmo-sim-test.c +++ b/utils/osmo-sim-test.c @@ -341,7 +341,7 @@ static int osim_uicc_scan_apps(struct osim_chan_hdl *st) extern struct osim_card_profile *osim_cprof_sim(void *ctx); -extern struct osim_card_profile *osim_cprof_uicc(void *ctx); +extern struct osim_card_profile *osim_cprof_uicc(void *ctx, bool have_df_gsm); static int dump_file(struct osim_chan_hdl *chan, const char *short_name, uint16_t fid) { @@ -652,7 +652,7 @@ int main(int argc, char **argv) rc = osim_uicc_scan_apps(chan); if (rc >= 0) { - chan->card->prof = osim_cprof_uicc(chan->card); + chan->card->prof = osim_cprof_uicc(chan->card, true); chan->cwd = chan->card->prof->mf; } else if (rc == -0x6e00) { /* CLA not supported: must be classic SIM, not USIM */