diff --git a/pySim/cards.py b/pySim/cards.py index dedb2d67..58e8503e 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -112,6 +112,8 @@ class UiccCardBase(SimCardBase): def probe(self) -> bool: # EF.DIR is a mandatory EF on all ICCIDs; however it *may* also exist on a TS 51.011 SIM ef_dir = EF_DIR() + # select MF first + self.file_exists("3f00") return self.file_exists(ef_dir.fid) def read_aids(self) -> List[Hexstr]: diff --git a/pySim/runtime.py b/pySim/runtime.py index ec19cb41..22059575 100644 --- a/pySim/runtime.py +++ b/pySim/runtime.py @@ -60,6 +60,9 @@ class RuntimeState: self.card.set_apdu_parameter( cla=self.profile.cla, sel_ctrl=self.profile.sel_ctrl) + # make sure MF is selected before probing for Addons + self.lchan[0].select('MF') + for addon_cls in self.profile.addons: addon = addon_cls() if addon.probe(self.card):