From 931bc66331c78b1c1eb8ce48276c29aea4b691ea Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Thu, 18 Nov 2021 11:25:34 +0100 Subject: [PATCH] cards: Make select_adf_by_aid() use prefix AID selection There is no need for us to expand a partial AID to the full AID before selecting that ADF. The UICC specifications permit AID selection by prefix only. So we could pass the prefix to the card, and the card would do the prefix matching. In order to avoid problems with cards that fail to do the prefix matching themselves we will still do the AID completion, but in case we cannot complete the AID (AID not listed in EF.DIR), we will try with the AID prefix anyway. From the API user point of view, this allows us to select applications not listed in EF.DIR Change-Id: I0747b4e46ca7e30bd96d76053765080367ac1317 --- pySim/cards.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pySim/cards.py b/pySim/cards.py index a8221613..45e44a2b 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -308,6 +308,9 @@ class SimCard(object): aid_full = self._complete_aid(aid) if aid_full: return self._scc.select_adf(aid_full) + else: + # If we cannot get the full AID, try with short AID + return self._scc.select_adf(aid) return (None, None) def erase_binary(self, ef):