Feature #6086


implement features of sysmo-{usim,isim}-tool

Added by laforge 8 months ago. Updated 8 months ago.

Target version:
Start date:
Due date:
% Done:


Spec Reference:


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 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.

Actions #1

Updated by laforge 8 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.


Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)