From acc222f9f082983b642c60120fd941e34638d81a Mon Sep 17 00:00:00 2001 From: Supreeth Herle Date: Tue, 24 Mar 2020 13:26:53 +0100 Subject: [PATCH] sysmoISIM-SJA2: Enable Service 106 and 107 after successfully programming EF.ePDGId and EF.ePDGSelection Service 106 and 107 must be set available in order to ME to consider as supported in USIM: 1. ePDG configuration Information support 2. ePDG configuration Information configured Change-Id: Ica067915b9d06ba67f53da7d628f8bacde1ab80e --- pySim/cards.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pySim/cards.py b/pySim/cards.py index dc612dfe..10367177 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -302,6 +302,13 @@ class UsimCard(Card): else: return ([None, None], sw) + def update_ust(self, service, bit=1): + (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['UST']) + if sw == '9000': + content = enc_st(res, service, bit) + (res, sw) = self._scc.update_binary(EF_USIM_ADF_map['UST'], content) + return sw + class _MagicSimBase(Card): """ @@ -1216,6 +1223,17 @@ class SysmoISIMSJA2(UsimCard): print("Programming ePDGSelection failed with code %s"%sw) + # After successfully programming EF.ePDGId and EF.ePDGSelection, + # Set service 106 and 107 as available in EF.UST + if self.file_exists(EF_USIM_ADF_map['UST']): + if p.get('epdgSelection') and p.get('epdgid'): + sw = self.update_ust(106, 1) + if sw != '9000': + print("Programming UST failed with code %s"%sw) + sw = self.update_ust(107, 1) + if sw != '9000': + print("Programming UST failed with code %s"%sw) + return