filesystem: add flag to tell whether an ADF supports an FS or not
An ADF may or may not support a file system. For example ADF.ARA-M does
not have any filesystem support, which means the SELECT we may use from
this ADF is limited and an can only select a different application. To
know about this in advance let's add a flag that we set when we
instantiate an ADF.
Change-Id: Ifd0f7c34164685ea18d8a746394e55416fa0aa66
Related: OS#5418
diff --git a/pySim/filesystem.py b/pySim/filesystem.py
index 800f2cc..d39162c 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -504,11 +504,12 @@
class CardADF(CardDF):
"""ADF (Application Dedicated File) in the smart card filesystem"""
- def __init__(self, aid: str, **kwargs):
+ def __init__(self, aid: str, has_fs: bool=False, **kwargs):
super().__init__(**kwargs)
# reference to CardApplication may be set from CardApplication constructor
self.application = None # type: Optional[CardApplication]
self.aid = aid # Application Identifier
+ self.has_fs = has_fs # Flag to tell whether the ADF supports a filesystem or not
mf = self.get_mf()
if mf:
mf.add_application_df(self)
diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py
index 0fcf883..28781e1 100644
--- a/pySim/ts_31_102.py
+++ b/pySim/ts_31_102.py
@@ -1369,9 +1369,9 @@
class ADF_USIM(CardADF):
- def __init__(self, aid='a0000000871002', name='ADF.USIM', fid=None, sfid=None,
+ def __init__(self, aid='a0000000871002', has_fs=True, name='ADF.USIM', fid=None, sfid=None,
desc='USIM Application'):
- super().__init__(aid=aid, fid=fid, sfid=sfid, name=name, desc=desc)
+ super().__init__(aid=aid, has_fs=has_fs, fid=fid, sfid=sfid, name=name, desc=desc)
# add those commands to the general commands of a TransparentEF
self.shell_commands += [self.AddlShellCommands()]
diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py
index 4327a1a..5268c70 100644
--- a/pySim/ts_31_103.py
+++ b/pySim/ts_31_103.py
@@ -258,9 +258,9 @@
class ADF_ISIM(CardADF):
- def __init__(self, aid='a0000000871004', name='ADF.ISIM', fid=None, sfid=None,
+ def __init__(self, aid='a0000000871004', has_fs=True, name='ADF.ISIM', fid=None, sfid=None,
desc='ISIM Application'):
- super().__init__(aid=aid, fid=fid, sfid=sfid, name=name, desc=desc)
+ super().__init__(aid=aid, has_fs=has_fs, fid=fid, sfid=sfid, name=name, desc=desc)
files = [
EF_IMPI(),
diff --git a/pySim/ts_31_104.py b/pySim/ts_31_104.py
index 0adafba..239acbf 100644
--- a/pySim/ts_31_104.py
+++ b/pySim/ts_31_104.py
@@ -30,9 +30,9 @@
class ADF_HPSIM(CardADF):
- def __init__(self, aid='a000000087100A', name='ADF.HPSIM', fid=None, sfid=None,
+ def __init__(self, aid='a000000087100A', has_fs=True, name='ADF.HPSIM', fid=None, sfid=None,
desc='HPSIM Application'):
- super().__init__(aid=aid, fid=fid, sfid=sfid, name=name, desc=desc)
+ super().__init__(aid=aid, has_fs=has_fs, fid=fid, sfid=sfid, name=name, desc=desc)
files = [
EF_ARR(fid='6f06', sfid=0x06),