UICC interface


We released our software to program UICC/SIM/USIM cards.

We tested and support it only with our cards and our card reader, nevertheless it is GPL license open source.

Please provide us with enhancements source code, as per GPL license rules


We offer support as comments on this blog page, and a FAQ

(if your question is very confidential, send us a mail)

10 thoughts on “UICC interface”

  1. Hello,
    I have your sim-card and sim-card reader. I want to know that how can I read or set values in the sim-card. In fact, I use Ubuntu 16.04. could you tell me in details.


    1. Hello,
      Ubuntu 16 is fine, the instructions are on the page “uicc-software” (the link in blue).

      1. sorry to bother you again.
        In fact, I am not professional user in Linux.
        in the aforementioned link, it explains about the commands. could you please tell me that how can I open the serial link in Ubuntu?

        Many Thanks.

        1. Hi Eshagh,

          I may misunderstand your question.
          The serial link is shown as /dev/ttyUSB0 (if it is the only serial interface in the Linux machine).
          But you don’t have to manage this: just run the program as per the manual.

          Let’s try to re-explain:
          – down load the source code: clic on “source code”
          say “yes” to “open with archive manager”
          clic on “extract” and put the directory where ever you prefer in your disk
          – open a “terminal”: CRTL+ALT+T shortcut
          – go to the directory: cd – compile, so type: make
          – type: sudo ./program_uicc –help
          will display the options
          – type sudo ./program_uicc –adm

          1. thank you. my problem was ./program_uicc. I did not use “adm”.
            Sorry, My last question is:
            Is there any possibility to change Mobile Country Code(MCC) of the sim-card? I mean the MCC of the sim-card is 208. can I change it to 232 for instance?

          2. Hi,
            yes of course.
            You need only to define the IMSI, that starts by the MCC.
            the other USIM files that are related to the MCC with be automatically computed by “program_uicc”
            the next field in the IMSI is MNC: by default it is 2 digits.
            If you set a 3 digits MNC, you have to specify this (see program_uicc –help)

  2. Hi,
    If HSS has:
    ## HSS options
    OPERATOR_key = “1006020f0a478bf6b699f15c062e42b3”; # OP key matching your database
    and hss-dump-users has:
    imsi | mmeidentity_idmmeidentity | hex(users.key) | sqn | hex(rand) | hex(OPc)
    208920100001106 7 8BAF473F2F8FD09487CCCBD7097C6862 00000000000000000021 33353336363633303332333633313634 E734F8734007D6C5CE7A0508809E7E9C

    Is it correct to set value for the SIM as:
    ./program_uicc –adm –key 8BAF473F2F8FD09487CCCBD7097C6862 –opc 1006020f0a478bf6b699f15c062e42b3

    I’m confused with options –opc and –xx.


  3. Hello,

    I recently ordered a opencells SIM card and SIM reader.
    When I run command: sudo ./program_uicc
    I receive following values:
    No adm code supplied, the USIM current values are:
    ICCID: 89860061100000000001
    WARNING: iccid luhn encoding of last digit not done
    USIM IMSI: 208920100001101
    USIM MSISDN: 00000001
    USIM Service Provider Name: OpenCells01

    I also ran sudo DEBUG=y ./program_uicc but did not help.

    How do I read the other values burnt in SIM like Opc, Key, Op Key ??

    Request you to please help at the earliest.

    1. Dear Sumi,

      3GPP defines key, OPc, … as write only files.
      The values we have set are in the OAI HSS database example we deliver
      You can overwrite these values if you provide –adm with the ADM value of your cards.
      Be careful of not testing a lot (10) of wrong ADM: the cards will lock themselves considering you as a hacker.
      You can also test milenage authentication (so test the Ki and the OPc values) with program_uicc

Leave a Reply

Your email address will not be published. Required fields are marked *