diff options
-rwxr-xr-x | pySim-read.py | 20 | ||||
-rw-r--r-- | pySim/cards.py | 12 |
2 files changed, 23 insertions, 9 deletions
diff --git a/pySim-read.py b/pySim-read.py index a4f15f8..3e19a02 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -256,14 +256,20 @@ if __name__ == '__main__': print("EHPLMN:\n%s" % (res)) else: print("EHPLMN: Can't read, response code = %s" % (sw,)) + # EF.UST - (res, sw) = card.read_binary(EF_USIM_ADF_map['UST']) - if sw == '9000': - print("USIM Service Table: %s" % res) - # Print those which are available - print("%s" % dec_st(res, table="usim")) - else: - print("USIM Service Table: Can't read, response code = %s" % (sw,)) + try: + if card.file_exists(EF_USIM_ADF_map['UST']): + # res[0] - EF content of UST + # res[1] - Human readable format of services marked available in UST + (res, sw) = card.read_ust() + if sw == '9000': + print("USIM Service Table: %s" % res[0]) + print("%s" % res[1]) + else: + print("USIM Service Table: Can't read, response code = %s" % (sw,)) + except Exception as e: + print("USIM Service Table: Can't read file -- " + str(e)) #EF.ePDGId - Home ePDG Identifier try: diff --git a/pySim/cards.py b/pySim/cards.py index f2f79e4..a67540f 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -277,6 +277,14 @@ class UsimCard(Card): EF_USIM_ADF_map['ePDGId'], epdgid_tlv) return sw + def read_ust(self): + (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['UST']) + if sw == '9000': + # Print those which are available + return ([res, dec_st(res, table="usim")], sw) + else: + return ([None, None], sw) + class _MagicSimBase(Card): """ @@ -772,7 +780,7 @@ class SysmoUSIMSJS1(UsimCard): data, sw = self._scc.update_record('6F40', 1, data, force_len=True) -class FairwavesSIM(Card): +class FairwavesSIM(UsimCard): """ FairwavesSIM @@ -961,7 +969,7 @@ class OpenCellsSim(Card): # write EF.IMSI data, sw = self._scc.update_binary('6f07', enc_imsi(p['imsi'])) -class WavemobileSim(Card): +class WavemobileSim(UsimCard): """ WavemobileSim |