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/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23473 ) Change subject: pySim-shell: add ADF.ISIM / ADF.USIM dynamically ...................................................................... pySim-shell: add ADF.ISIM / ADF.USIM dynamically currently ADF.ISIM and ADF.USIM are always added regardless if there is a matching application on the card or not. Lets check what applications are actually installed and add ADF.ISIM and ADF.USIM dynamically. Change-Id: I42ee23375f98e6322708c1c4db6d65e1425feecd Related: OS#4963 --- M pySim-shell.py M pySim/cards.py M pySim/filesystem.py 3 files changed, 29 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index 946b3e5..e7bb7c0 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -58,8 +58,6 @@ self.card = card self.rs = rs self.py_locals = { 'card': self.card, 'rs' : self.rs } - self.card.read_aids() - self.poutput('AIDs on card: %s' % (self.card._aids)) self.numeric_path = False self.add_settable(cmd2.Settable('numeric_path', bool, 'Print File IDs instead of names', onchange_cb=self._onchange_numeric_path)) @@ -254,13 +252,14 @@ sys.exit(2) profile = CardProfileUICC() + profile.add_application(ADF_USIM()) + profile.add_application(ADF_ISIM()) + rs = RuntimeState(card, profile) # FIXME: do this dynamically rs.mf.add_file(DF_TELECOM()) rs.mf.add_file(DF_GSM()) - rs.mf.add_application(ADF_USIM()) - rs.mf.add_application(ADF_ISIM()) app = PysimApp(card, rs) rs.select('MF', app) diff --git a/pySim/cards.py b/pySim/cards.py index c640591..857d0b6 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -207,6 +207,7 @@ # Fetch all the AIDs present on UICC def read_aids(self): + self._aids = [] try: # Find out how many records the EF.DIR has # and store all the AIDs in the UICC @@ -218,6 +219,8 @@ self._aids.append(rec[0][8:8 + int(rec[0][6:8], 16) * 2]) except Exception as e: print("Can't read AIDs from SIM -- %s" % (str(e),)) + self._aids = [] + return self._aids # Select ADF.U/ISIM in the Card using its full AID def select_adf_by_aid(self, adf="usim"): diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 0494df7..a1bb127 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -550,11 +550,33 @@ self.selected_file = self.mf self.profile = profile # add applications + MF-files from profile - for a in self.profile.applications: + apps = self._match_applications() + for a in apps: self.mf.add_application(a) for f in self.profile.files_in_mf: self.mf.add_file(f) + def _match_applications(self): + """match the applications from the profile with applications on the card""" + apps_profile = self.profile.applications + aids_card = self.card.read_aids() + apps_taken = [] + if aids_card: + aids_taken = [] + print("AIDs on card:") + for a in aids_card: + for f in apps_profile: + if f.aid in a: + print(" %s: %s" % (f.name, a)) + aids_taken.append(a) + apps_taken.append(f) + aids_unknown = set(aids_card) - set(aids_taken) + for a in aids_unknown: + print(" unknown: %s" % a) + else: + print("error: could not determine card applications") + return apps_taken + def get_cwd(self): """Obtain the current working directory.""" if isinstance(self.selected_file, CardDF): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I42ee23375f98e6322708c1c4db6d65e1425feecd Gerrit-Change-Number: 23473 Gerrit-PatchSet: 3 Gerrit-Owner: dexter <pmaier at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann at sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210327/7e69e24c/attachment.htm>