From 14d6e68ff796320a76bcf5a66559891c0b8202be Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 12 Jan 2025 14:03:06 +0100 Subject: [PATCH] cards: Avoid exception seen with (some) GSM-R SIM cards Some old cards are classic SIM and not based on UICCs. Such cards do not offer the capability of selecting applications. Let's avoid running into an exception by providing dummy methods that simply fail for each AID selection. Change-Id: Ib3457496380c0c5096052ad7799970ee620dee33 Closes: OS#6691 --- pySim/cards.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pySim/cards.py b/pySim/cards.py index b7958f43..dedb2d67 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -73,6 +73,16 @@ class CardBase: # callers having to do hasattr('read_aids') ahead of every call. return [] + def adf_present(self, adf: str = "usim") -> bool: + # a non-UICC doesn't have any applications. Convenience helper to avoid + # callers having to do hasattr('adf_present') ahead of every call. + return False + + def select_adf_by_aid(self, adf: str = "usim", scc: Optional[SimCardCommands] = None) -> Tuple[Optional[Hexstr], Optional[SwHexstr]]: + # a non-UICC doesn't have any applications. Convenience helper to avoid + # callers having to do hasattr('select_adf_by_aid') ahead of every call. + return (None, None) + class SimCardBase(CardBase): """Here we only add methods for commands specified in TS 51.011, without