This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. Change subject: add support for open cells SIM cards ...................................................................... add support for open cells SIM cards Change-Id: I4df5681952eefd7a67f5e2b0a96a9e01c9d960d2 --- M pySim-prog.py M pySim/cards.py 2 files changed, 54 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/pySim-prog.py b/pySim-prog.py index f27daf0..0c9f749 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -254,8 +254,8 @@ # ICCID (19 digits, E.118), though some phase1 vendors use 20 :( if opts.iccid is not None: iccid = opts.iccid - if not _isnum(iccid, 19): - raise ValueError('ICCID must be 19 digits !'); + if not _isnum(iccid, 19) and not _isnum(iccid, 20): + raise ValueError('ICCID must be 19 or 20 digits !'); else: if opts.num is None: diff --git a/pySim/cards.py b/pySim/cards.py index e324857..0c9c2b8 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -687,10 +687,60 @@ return - # In order for autodetection ... +class OpenCellsSim(Card): + """ + OpenCellsSim + + """ + + name = 'OpenCells SIM' + + def __init__(self, ssc): + super(OpenCellsSim, self).__init__(ssc) + self._adm_chv_num = 0x0A + + + @classmethod + def autodetect(kls, scc): + try: + # Look for ATR + if scc.get_atr() == toBytes("3B 9F 95 80 1F C3 80 31 E0 73 FE 21 13 57 86 81 02 86 98 44 18 A8"): + return kls(scc) + except: + return None + return None + + + def program(self, p): + if not p['pin_adm']: + raise ValueError("Please provide a PIN-ADM as there is no default one") + self._scc.verify_chv(0x0A, h2b(p['pin_adm'])) + + # select MF + r = self._scc.select_file(['3f00']) + + # write EF.ICCID + data, sw = self._scc.update_binary('2fe2', enc_iccid(p['iccid'])) + + r = self._scc.select_file(['7ff0']) + + # set Ki in proprietary file + data, sw = self._scc.update_binary('FF02', p['ki']) + + # set OPC in proprietary file + data, sw = self._scc.update_binary('FF01', p['opc']) + + # select DF_GSM + r = self._scc.select_file(['7f20']) + + # write EF.IMSI + data, sw = self._scc.update_binary('6f07', enc_imsi(p['imsi'])) + + +# In order for autodetection ... _cards_classes = [ FakeMagicSim, SuperSim, MagicSim, GrcardSim, SysmoSIMgr1, SysmoSIMgr2, SysmoUSIMgr1, SysmoUSIMSJS1, - FairwavesSIM ] + FairwavesSIM, OpenCellsSim ] def card_autodetect(scc): for kls in _cards_classes: -- To view, visit https://gerrit.osmocom.org/7932 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I4df5681952eefd7a67f5e2b0a96a9e01c9d960d2 Gerrit-PatchSet: 4 Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Owner: Todd Neal <todd at tneal.org> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Todd Neal <todd at tneal.org> Gerrit-Reviewer: Vadim Yanitskiy <axilirator at gmail.com>