laforge has uploaded this change for review.

View Change

_match_applications: catch SwMatchError e.g. if permission denied

There are some SIM cards (e.g. those of sipgate), which return
an undefined error status word if one tries to select some of the
applications the card itself lists in EF.DIR. Let's handle this
situation gracefully rather than printing python exceptions.

Change-Id: Id03a44c84cc8939908bc15f9fe42a9955d58c643
Closes: OS#5409
---
M pySim/filesystem.py
1 file changed, 7 insertions(+), 4 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/61/26961/1
diff --git a/pySim/filesystem.py b/pySim/filesystem.py
index dfe1677..785108c 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -1113,10 +1113,13 @@
# Some card applications may not be registered in EF.DIR, we will actively
# probe for those applications
for f in set(apps_profile) - set(apps_taken):
- data, sw = self.card.select_adf_by_aid(f.aid)
- if sw == "9000":
- print(" %s: %s" % (f.name, f.aid))
- apps_taken.append(f)
+ try:
+ data, sw = self.card.select_adf_by_aid(f.aid)
+ if sw == "9000":
+ print(" %s: %s" % (f.name, f.aid))
+ apps_taken.append(f)
+ except SwMatchError as e:
+ print(" ERROR: %s: %s: Unable to select: %s" % (f.name, f.aid, e))

return apps_taken


To view, visit change 26961. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Id03a44c84cc8939908bc15f9fe42a9955d58c643
Gerrit-Change-Number: 26961
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge@osmocom.org>
Gerrit-MessageType: newchange