Feature #6086
openimplement features of sysmo-{usim,isim}-tool
0%
Description
I always found it rather odd that there are OS-specific executables in the sysmo-usim-tool software. The purpose was always to have a separate tool for those bits which are sysmo*SIM specific, and not normal ETSI/3GPP Standard. However, that was designed at a time before pySim-shell existed, and only pySim-prog was available.
As more sysmocom card models got introduced, those were not supported from within one sysmo-*sim-tool program, but with copy+pasted+edited command line tools. As a result, users need to know which card they have and execute the right tool for it, which is cumbersome. Even more so, as there are tools (specifically, the sysmo-isim-tool.sja2.py) which actually also supports the sysmoTSIM (3GPP Test profile).
Rather than unifying this inside the sysmo-usim-tool.git repo, I think it's better to reimplement the same functionality based on (and likely inside) pysim.git.
Now that we have the "new" capabilities of pySim-shell and its associated class model, we shouldn't really need separate[ly maintained] software for the actual functionality.
What can sysmo-usim-tool do is:- set the imsi
- 3GPP standard, not sysmocom specific
- set mnc length
- 3GPP standard, not sysmocom specific
- show ICCID
- 3GPP standard
- show AID list
- 3GPP standard
- show milenage parameters
- set milenage parameters
- show ki value
- set ki value
- show [supported and configured] authentication algorithms
- set 2g/3g auth algo
- show OP/OPc configuration
- set OP/OPc
- show milenage SEQ/SQN parameters
- set milenage SEQ/SQN parameters to default
- dump proprietary file contents
Let's add whatever functionality is missing to the pySim class model, and then try to implement a potentially command-line compatible replacement for at least the most common operations. For the more esoteric ones (like milenage parameters), I think it's fine to have the user go through pySim-shell and do an edit_binary_decoded or something like that to change the parameters.
Updated by laforge 5 months ago
this is currently waiting for a considerable number of pySim code cleanup/refactoring (most of it in gerrit), whose purpose is to make it as easy as possible to write other applications (beyond pySim-shell) to use all of the infrastructure without any code duplication.