From 4a3580b4c17e286f0613febf9d8d3594734ed6a0 Mon Sep 17 00:00:00 2001 From: herlesupreeth Date: Tue, 29 Sep 2020 10:11:36 +0200 Subject: [PATCH] Move reading of USIM service table to generic USIM class Change-Id: I537547f3bd01a547310358f8a8fceddcb4c79f37 --- pySim-read.py | 20 +++++++++++++------- pySim/cards.py | 12 ++++++++++-- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/pySim-read.py b/pySim-read.py index a4f15f8a..3e19a022 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 f2f79e40..a67540fb 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