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)
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.
Thanks
Hello,
Ubuntu 16 is fine, the instructions are on the page “uicc-software” (the link in blue).
Regards,
Laurent
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.
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:
– compile, so type: make
– 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
– type: sudo ./program_uicc –help
will display the options
– type sudo ./program_uicc –adm
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?
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)
BR,
Laurent
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.
Thanks,
Thuy
Hi Thuy,
We updated the FAQ with the answer.
Regards,
Laurent
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.
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
regards,
Laurent
Hello,
I am currently trying to write to one of my SIM cards. Unfortunately for some reason the card cannot be writed. The ADM key is the one that is printed on the card itself and starts with OC, correct? (8 digits)
I’m getting this issue:
./program_uicc –adm OC003617 –imsi 262802019092123 –opc cdc202d5123e20f62b6d676ac72cb318 –key 465b5ce8b199b49faa5f0a2ee238a6bc –spn ICN
Setting new values
WARNING: Non standard packet sent
ret is not right size
expect: 0x9000
answer: 0xfe
chv 0a Nok
BAD return code
Expected: : 0x9000
got answer: : 0x63c9
chv 0a Nok
Read new values in UICC
ICCID: 89860061100000000003
WARNING: iccid luhn encoding of last digit not done
USIM IMSI: 208920100001103
USIM MSISDN: 00000003
USIM Service Provider Name: OpenCells03
Hi,
The ADM code should be on each invoice.
In your case, we missed to add this code on the invoice.
We sent you new cards.
Regards,
Laurent
Hi,
I have entered the adm code correct, but when I ran the program
~/Downloads/uicc-v2.3$ sudo ./program_uicc –adm 80508050 –imsi 404010100000001 –key 0c0a34601d4f07677303652c0462535b –xx 63bfa50ee6523365ff14c1f45f88737d
Existing values in USIM
ICCID: 89860061100000000009
WARNING: iccid luhn encoding of last digit not done
USIM IMSI: 208920100001109
USIM MSISDN: 000000
USIM Service Provider Name: OpenCells09
Computed OPc from OP and Ki as: ba05688178e398bedc100674071002cb
Setting new values
Expected: : 0x9000
got answer: : 0x9840
BAD return code 9840
chv 0a Nok
Expected: : 0x9000
got answer: : 0x6983
BAD return code 6983
chv 0a Nok
Reading UICC values after uploading new values
ICCID: 89860061100000000009
WARNING: iccid luhn encoding of last digit not done
USIM IMSI: 208920100001109
USIM MSISDN: 000000
USIM Service Provider Name: OpenCells09
I got this error, why it is not able to set the imsi of our choice as we are testing in indian location.
Dear Ranjith,
It should work and the trace is clear: the adm code is not right.
This won’t occur with new firmware: what is the serial number of your card?
Laurent
I see: the dicussion started months ago.
I see you have probably put the serial number in the adm code months ago.
I guess you have tried about 10 times or more.
Reading manual before is always better.
The card is now blocked.
We can offer a new card, please write us by mail.
Laurent
No Sir,
We are using the 0c003 series one and we have the adm code as 80508050 on our invoice.
I am not able to understand what this means (
Setting new values
Expected: : 0x9000
got answer: : 0x9840
BAD return code 9840
chv 0a Nok
Expected: : 0x9000
got answer: : 0x6983
BAD return code 6983
chv 0a Nok
)
.
I used uicc-v2.3
Kindly Help us in resolving it.
Dear Ranjith,
A random generator was making these ADM for each order.
From you serial, I found the invoice.
80508050 is not the code 🙂 it doesn’t look like a randomized number
Please write me a mail explaining in private how you got the card.
If you try more that 8 consecutive times a wrong ADM password, the card will block forever. It will still work fine in a phone with existing values, but you will not be able to flash new values.
I think it is already the case: ‘9840’: CHV blocked
It is normalized retun codes, that you can find in smartcards (UICC) standard documents.
Best regards,
Laurent
Hi,
I want to connect OAI eNB and OAI UE according to this page :https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectOAIENBWithOAIUEWithoutS1Interface. After HW setup and building OAI eNB and OAI UE successfully, I try to run it with tunnel interfaces but something wrong happen.
I run eNB with this command:
sudo -E ./lte_build_oai/build/lte-softmodem -O /home/user/openairinterface5g/ci-scripts/conf_files/ enb.band7.tm1.25PRB.usrpb210.conf –nokrnmod 1 –noS1 –eNBs.[0].rrc_inactivity_threshold 0 2>&1 | tee ENB.log
I run UE with this command:
sudo ./lte-uesoftmodem -C 2680000000 -r 25 –ue-rxgain 117 –usrp-args “addr=192.168.40.2” –ue-txgain 0 –ue-max-power 0 –ue-scan-carrier –nokrnmod 1 –noS1 2>&1 | tee UE.log
In my case,after running OAI ENB and UE,it can ping with each other. The first question is when I increased the ping packet size to about 300 Byte, the OAI UE would shutdown and show a lot of “bad DCI 1A”,“retransmission but TBS different” or “preoblem in DCI” . Looks like something is wrong with PDSCH. The second question is that I could not be able to test my throughput with iperf and The server did not seem to be receiving even one packet!
Do you have any suggestions that can help me debug this problem?
Hi,
This is OAI issue, no relation with our products.
for bad DCI see hereafter.
For no IP packet at all, it seems your IP configuration is wrong.
We will not test or debug OAI wiki pages.
Laurent
Hi,
I want to Connect OAI eNB with OAI UE without S1 Interface based on this page: https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectOAIENBWithOAIUEWithoutS1Interface;
In my case,after running OAI ENB and UE,it can ping with each other with 5%-10% packet loss. The first question is when I increased the ping packet size to about 300 Byte, the OAI UE would shutdown and show a lot of “bad DCI 1A” or “preoblem in DCI” . Looks like something is wrong with PDSCH. The second question is that I could not be able to test my throughput with iperf and The server did not seem to be receiving any packet.
By the way
I use:
10gigabit ethernet to connect two USRP with 40 dB attenuation
Master v1.1.0
Ubuntu 16.04 4.4.0-170-lowlatency
Attenuator 40dB
USRP x310
Hi,
This is support page for the product we distribute, not for OAI.
Anyway:
*** bad DCI:
OAI official answer is the channel is noisy, so it is “normal”
On simulated channel, perfect I/Q sample, we can reproduce the same.
So, we think there are also bugs.
*** iperf fails
This is your IP configuration, or earlier defect.
Please follow our tutorial to heave first a working configuration.
Hello,
I’m attempting to configure a non-opencells SIM card using sudo ./program_uicc using uicc-v2.0. However I’m getting the following printout:
Existing values in USIM
Assertion ((fd=::open(portname, O_RDWR | O_NOCTTY | O_SYNC)) >=0) failed!
In open() ./uicc.h:331,
System error: No such file or directory
additional txt: Failed to open /dev/ttyUSB0
Exiting execution
I’m able to see the card and card reader info when I enter sudo pcsc_scan, as well as with ./pySim-read.py -p 0.
Thanks,
Adam
Dear Adam,
It seems you have not connected our reader (error: No such file or directory)
or maybe, you need to add “sudo” at beginning.
If you want to allow your curent user to use tty devices without sudo, in ubuntu:
sudo usermod -a -G dialout $USER
Regards,
Laurent
Laurent,
Thank you for the response. I tried adding myself to the dialout group and rebooting as well as running the command with sudo, however neither changes the output.
I am using a Dekart Sim Card Reader (1a1e:b100) , not the opencells one. Is it possible to use the program with a non-opencells reader?
Dear Adam,
See our product description: we use “raw” readers, not the M$ PC/SC protocol readers as the Dekart reader.
If you want to contribute, you could add PC/SC support to our program.
Else, any “raw” reader should work (we only select suppliers and test each reader before shipping).
Regards,
Laurent
Dear Adam,
I have trying write to my sim card but i doesn’t save my changes. I am doing the following:
sudo ./program_uicc –adm 05061670 –imsi 208920100001111 –opc 504F20634F6320504F50206363500A4F –key 6874736969202073796D4B2079650A73 –spn openair –authenticate
But I always get the above data
Not possible answer to milenage challenge: ffffff98, 62
UICC should answer the command but (6f,00)
terminate called after throwing an instance of ‘std::out_of_range’
what(): basic_string::substr: __pos (which is 18446744073709551614) > this->size() (which is 0)
Abortado
Dear Elisabeth,
Error 98,62 is: “Authentication Error, application specific (incorrect MAC)”
It should never append
Could you:
– retry with the latest program_uicc version on our web site
– if it doesn’t work, write us (contact@open-cells.com) with the card serial number and the information you can get to help in diagnosis
Best regards,
Laurent
How do i find the OPC and ki values.
Hi,
OPc and Ki need to be the same between HSS database and the USIM card.
LAurent
Can I use your card reader/writer product and source code to read the contents of my phone’s 5G SIM (specifically, the existing USIM service table)?
You can read the USIM service table with any software that can read a standard USIM file
Our Sw is not designed for this purpose, but, it debug mode it displays in human reading text the full UST file
It won’t do it directly: the ATR of your card will be different, so you will have to modify a little the source code.
Regards,
Laurent
Hello,
I have two card readers and some weeks ago they work perfectly, i could write two sim cards without major issues. Today I’m trying to set another sim card, but I’m finding a problem:
Failed to pen /dev/ttyUSB0
I found that when I inserted the card readers to the USB sockets, the led was red for a second or less and then stopped brighting, with both card readers. I tried two more computers but the same occurred.
Did you have this problem?
Kind regards,
Álex
Dear Alex,
The line above gives the Linux system call problem like:
System error: Permission denied
additional txt: Failed to open /dev/ttyUSB0
“permission denied” means I’m not “root” user
What is the error text in your case?
Regards,
Laurent
Dear Laurent,
In my case, I observe the next text:
Assertion ((ATR=USIMcard.open(port))!=””) failed!
In readUSIMvalues() program_uicc.c:62
System error: Invalid argument
additional txt: Failed to open /dev/ttyUSB0
Best,
Álex
Dear Alex,
This Linux error case is not very understandable.
The reader answers to Linux, but it considers there is no card inserted.
It might be a bad card insertion (see photos on our web site), or a faulty device: either the card or the reader.
Do you have spare cards and/or reader to validate ?
Regards,
Laurent
Hi Laurent,
Dear Laurent,
I did what you suggested, I get rid of the “1FF/2FF format converters” as in the image (I don’t know if it’s called like this, the sort of copper strip that connects the card reader with a plastic placeholder to put the cards in there) and in this way the card was readable/writable.
Maybe I wasn’t placing the cards right on the placeholder, anyway thank you.
Best,
Álex.
Dear Alex,
I have a symocom USIM card and when trying to read or write this USIM card using your writer device it show error –
sudo ./program_uicc –adm 05061670 –imsi 208920100001111 –opc 504F20634F6320504F50206363500A4F –key 6874736969202073796D4B2079650A73 –spn openair –authenticate
Existing values in USIM
ICCID: 8988211000000385685f
WARNING: iccid luhn encoding of last digit not done
Expected: : 0x9000
got answer: : 0x6a82
BAD return code 6a82
Expected: : 0x61
got answer: : 0x6a82
BAD return code 6a82
Segmentation fault
Regards,
veer
Hi,
Our software programs proprietary files for the operator setup part, as do all USIM vendors
You could find a full list of APDU return codes, like: https://www.eftlab.com/knowledge-base/complete-list-of-apdu-responses/
6a82 is file not found
The key, OPc, … files are not standardized
Regards,
Laurent
1. I am not getting the adm code to set the key and opc values. I got this error “No adm code of 8 figures, cannot program the UICC ”
2. Can we change the IMSI number to 208950000000040 from 208920100001101?
3. If we can change the IMSI number do we also need to change the service providers’ names that from “open cells” to “orange”.
4. MSISDN number from the UICC is 00000101 but in OAI database this value should be of 12 digits. What could be other 4 digits?
Dear Bharat,
Question 1
I suppose you have a a card with serial number > OC004100
The documentation tells you:
ADM code management changed in UICC version 4: you have to specify a ADM code to upload the UICC/SIM, nevertheless you can use any 8 figures value.
Question 2
see example command on bottom of page: https://open-cells.com/index.php/uiccsim-programing/
Question 3
Same as question 2, nevertheless you can set any string, it is only for display on smartphone screen
question 4
As long as we don’t demonstrate VoLTE in our tutorial, ISDN is not used
I think you can anyway set it with any length.
Regards,
Laurent
In case of you need to implement a actual ISDN number, ITU E.164 defines the format per country
Hi
I have your 5G sim-card and sim-card reader.
I want it can connect to OAI-5G-SA network, but it can’t work.
Maybe I miss something when i burn SIM, could you help me?
I want to make sure that the burn instruction (./program_uicc).
Information of core network(initial value of OAI):
OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1
Information of UE(initial value of OAI):
FULL_IMSI: ‘208990100001100’
FULL_KEY: ‘fec86ba6eb707ed08905757b1bb44b8f’
OPC: ‘C42449363BBAD02B66D16BC975D77CC1’
DNN: oai
NSSAI_SST: 1
NSSAI_SD: 1
Dear Richard,
I think you mix up OP (operator key) and OPc
OP is not used in the telecom messages and protocol
But there is a 3GPP suggested way to compute OPc from OP and Ki (key)
We implemented this in “program_uicc”: if you use parameter –xx, you can gice the OP and program_uicc will compute, as per suggested 3GPP algo, the OPc (and it will display the OPC it will set in the card)
Hi laurent,
Thank you and I used it.
But the UE(quectel RM500Q-GL) still can’t connect to OAI-5G-SA.
I want to make sure that the SIM can support to 5G-SA network.(https://open-cells.com/index.php/sim-cards/)
Have a nice day,
Dear Richard,
Please try to follow: https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/NR_SA_tutorials/doc/NR_SA_CN5G_gNB_N300_COTS_UE_Tutorial.md
Regards,
Hi laurent,
It’s working now!
Thank you so much,
Richard
Hello laurent
I have a basic question ?
How do i get the Ki for a USIM card ?
My IMSI :208920100001106
ADM : 0c004684
you can’t read Ki and OPc, these files are write only.
The default values we set in the cards we ship:
Ki: 6874736969202073796d4b2079650a73
OPc: 504f20634f6320504f50206363500a4f
Hello,
I am using your SIM cards with an embedded device and a LimeSDR running OSMO (2G). I am able to use data services and receive SMS messages. I’m unable to send SMS messages (I get a generic error code 547 with AT commands on the PLS62). Do I have to change the default SIM configuration? I have tried using this UST without success : 867F1F1C231E1002400050.
Thanks for any help
Dear Sebastian,
If I understand well, you have a modem (PLS62) and you use AT commands to interface with a application you are writing.
You send a AT command to request to the UE to send a SMS.
But the UE refuses with error code 547
You changed the USIM service table to enable some services (what service ?)
Maybe the most probable problem is the SMS center that is not set to the right value ?
We never used 2G, neither all the legacy “CS” (circuit switch) because we do only 4G and 5G.
Nevertheless I agree, it should be possible with our SIM cards.
Why do you think this error is a USIM configuration issue.
Regards,
Laurent
Hi again,
I check usim service table:
our default config is, for services related to SMS:
(10) Short_Message_Storage__SMS_
(11) Short_Message_Status_Reports__SMSR_
(12) Short_Message_Service_Parameters__SMSP_
(28) Data_download_via_SMS_PP
(29) Data_download_via_SMS_CB
(you can get it with DEBUG=y ./program_uicc)
I checkout what value we put in EF-SMSP (Short message service parameters)
I see we set it twice, so i cleaned the code of program_uicc (see version 2.6)
I see also we se a default value: you should probably replace the lines:
Assert(card.writeFile(“USIM Short Message Service Parameters”, makeBcdVect(“FFFFFFFFFFFFFFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFF 0191”,true,40)),
“can’t set SMSC”);
by your SMSC configuration or set it in the UE
Regards,
Laurent
Ok thank you for that !
Do you have any idea what value I should use ? Is it possible to read the correct value from a normal SIM card that works with my LimeSDR network using your USB tool ?
Thanks
Hi,
It is impossible to read the secret key of a normal SIM.
Regards,
Hi – We’re looking for a SIM writing solution for a lab & test environment exercising enterprise and industrial LTE applications and this looks like a really great fit – are there any known issues or concerns with writing SIMs for devices on systems that use solutions from some of the traditional infrastructure heavy weights (Ericsson/Samsung/Nokia/Huawei)?
Dear Patrick,
Could you formulate a specific concern ?
Dear Laurent-
Our team has experience working with commercial carriers but with our new enterprise focus, we suddenly have a need to burn/write our own SIMs. We always relied on SIMs to be provided to us but now we’re responsible for the task- it is something new we must learn.
We’ll be using production-grade LTE infrastructure from the big traditional vendors in our lab- we’ll provision our subscribers with their subscriber database tools and use their HSS for authentication.
I want to find out if you have experienced or know of any difficulties when provisioning and using your SIMs on Samsung/Huawei/Ericsson/Nokia systems.
My hope is that with LTE being mature there are no surprises and that behaviors are consistent with the established standards, but I wanted to take advantage of the support channel you have generously set up and ask this question.
The cost of the cards and writer is so reasonable, a co-worker has already placed an order so we’ll learn something one way or another. 🙂
Thank you for your time,
Patrick
Dear Patrick,
Major vendors (Gemalto, Idemia, …) are the best, if you need UICCs by multiples of 10K pieces.
We keep our offer as simple as possible: 3GPP Release 8, no IMS, no javacard applets, …
Nevertheless it should work with any commercial phone.
VoLTE and all IMS work as long as you use the SIP identifiers computed by the UE from the IMSI as per 3GPP standard.
We also made a simple C++ program, no external packages dependency, even no PC/SC driver (we use only raw serial/USB conversion)
We would like to make a 3GPP R16 or more update at some point, but we have no roadmap to this.
Also, if we can deal with a major vendor to distribute their product for a reasonable price and with a simple, free programing tool chain, we will do it.
Smaller features like PC/SC card readers support could be made by us or in the open source community, but we have not yet found a motivation to do it (raw readers are good enough for us).
The alternative supplier we know: Sysmocom
They sell UICC/SIM with more features, IMS, javacard, PC/SC readers (with pysim and the Linux classical SW chain around pysim to support Microsoft PC/SC)
Regards,
Laurent
Dear Laurent-
Thank you for the detailed response and information.
For us, our needs seem modest and our mindset is: simpler = better
I’m even more confident this is a useful direction.
We’ll report back our experiences.
Best regards,
Patrick
Previously I wrote:
We’ll report back our experiences.
It took us a bit longer to make first call than planned but the SIMs were never the issue – they worked as described. We are very appreciative of open-cell’s offerings and these web pages. It was exactly what we needed.
Best regards,
Patrick
Dear Patrick,
Thanks.
We still have to improve,and we would like to offer new version when we will find out a reasonable price for 5G new features (TUAK, IMSI concealment)
Regards,
Laurent
Hi Laurent,
Just a clarification on the update for “explicit support of 5G SA and 5G SA non-terrestrial”.
Does the code only writes to the “PLMN selector with Access Technology (EF.OPLMNwAcT)” and related files to enable NG-RAN and satellite NG-RAN bits on the “ADF.USIM” folder, or it also writes to the ADF.USIM/DF.5GS.
When reading the open cells usim card and listing all files via pysim, there is no 5gs folder.
Is this the expected behaviours? I mean, can we enable 5G services without creating 5GS folders?
Regards
Dear Matheus,
Good question, i don’t know, i have not found answer in 3GPP specifications.
Our cards are 3GPP Release 8, so no 5GS folder, neither IMS (ISIM) folder
What i think the 3GPP way: the phone should enable 5G, IMS, … even if the card is very old
default values are defined in the specifications, and i saw many VoLTE, IMS, 5G, … working with old SIM cards
We enabled explicitly 5G in OPLMN file because we found it enables 5G in Oppo/Oneplus mobiles,
but Huawei, Quectel doesn’t take care, they enable (correctly) 5G in any case
The problem is that each UE vendor makes his secret and not 3GPP compliant implementation
See: https://mt-tech.fi/en
In some phones, we found with this web site how to unlock the Qualcomm based phones with QPST.
This UE vendors behavior to hide combos of PLMN/freq/… in the phones is not good but we can’t do anything against
So, maybe adding 5GS files in the UICC will enable 5G in some UE brands, maybe not.
We would like to offer true 5G cards with Tuak, and IMSI concealing but we have not found a decent vendor
Dear Laurent,
I downloaded version 2.6 of the uicc SIM program that requires GLIBC version 2.34 to run on my ubuntu 20.04 LTS, but the very latest version of GLIBC on ubuntu 20.04 LTS is 2.31.
I would like to know how to download any version of uicc that is compatible with the GLIBC version I have on my ubuntu, or better still, how to solve this problem.
Regards
Dear Eddie,
you need only to recompile
I will add this in the FAQ
Regards,
Laurent
It worked for me
Thank you!
Thank you, I deleted the executable and then compile it again as follows:
cd uicc-v2.6
rm program_uicc
make program_uicc
Laurent, can you recommend a “raw” reader. The reader I ordered from sysmocom doesn’t seem to support reading/writing directly from /dev/…
Thanks so much
Hi,
You can buy one from us, or on ebay, aliexpress, … look for “blue sim reader’ if the box is blue transparent, you will see the PCB: it is the same as the readers we sell.
Of course, one can also contribute to the open source SW to support PC/SC protocol with the help og libiccid
Regards,
Dear Open cell team,
I had bought your sim card writer and sim cards and i want to program them in Windows PC.
Could you please guide me the steps or point to any documentation?
Existing values in USIM
Assertion ((fd=::open(portname, O_RDWR | O_NOCTTY | O_SYNC)) >=0) failed!
In open() ./uicc.h:353,
System error: No such file or directory
additional txt: Failed to open /dev/ttyUSB0
Exiting execution
I am getting above error, how to resolve this, i check COM5 is port after inserting SIM card reader to PC
We made the software only for Linux, nevertheless it is open source and it uses no external SW dependency.
So, it is likely possible to make a Windows version with little source code modifications.
Please contribute to the open source if it is important for you, it may be also for other people
Dear Praveen,
As per the message, the device driver
/dev/ttyUSB0
doesn’t exist.Please check the Linux kernel message when you plug the device:
sudo dmesg
Dear Praven,
Our discussion shown the “Windows sub system Linux” detects the card reader, but it seems not allocating a name in the devices file system.
In WSL1 it was likely possible to use USB and serial devices, but not in WSL2 (M$ progress every day)
https://learn.microsoft.com/en-us/windows/wsl/faq#can-i-access-the-gpu-in-wsl-2–are-there-plans-to-increase-hardware-support-
Regards,
Laurent
Hi Laurent,
First time trying to write to the simcard. I enter the below command and get the resulting output. What am I doing wrong?
sudo ./program_uicc -adm 12345678 -key 797f5827a1aa465d1f524aa01a2b78c7 -opc 4e7df90249886b8da3
b9671a42e56c25
Existing values in USIM
ICCID: 89860061100000000036
WARNING: iccid luhn encoding of last digit not done
USIM IMSI: 208920100001036
USIM MSISDN: 00000036
USIM Service Provider Name: OpenCells036
Setting new values
WARNING: Non standard packet sent
Assertion (buf[i] == c) failed!
In write() ./uicc.h:363,
System error: Invalid argument
additional txt: sent 32, echoed 40
Exiting execution
Aborted
Dear John,
Your OPc is not the right size (32 hexa figures), but program_uicc should print this clearly.
I’ll check
Regards,
Laurent
Thanks for your reply. I get this error regardless of command inputted.
If I only input “sudo ./program_uicc -adm 12345678”
I would get the same error.
Br,
John
Hi John,
So i guess either the reader either the SIM is not working, nevertheless it is the first time i see this error.
Contact me by email to open cells, i will send you replacement cards/reader to find out the root cause.
Regards,
Laurent
Hi Laurent,
We have Omnikey 3121 device. It is not getting detected as a module in /dev/tty
Error thrown while running the application is:
Assertion ((fd=::open(portname, O_RDWR | O_NOCTTY | O_SYNC)) >=0) failed!
In open() ./uicc.h:415,
System error: No such file or directory
additional txt: Failed to open /dev/ttyUSB0
Exiting execution
Aborted
Could please help us?
Hi,
The Omnikey 3121 is a PC/SC interface device, using CCID drivers.
Please try the new feature of program_uicc.
The readme file describes how to use this new feature
Hi,
the uicc program is very nice for writing the most important parameters. Is it possible to change others like pin, preferred network lists etc?
Thanks! BR,
Andreas
yes, it is inside the open source, with explicit comments, so you will have to make small modifications to the source code
PLMN list is automatically compiled, from the IMSI PLMN, but you can change it
We can overwrite information in the SIM cards using the readers. However, our routers,namely, Milesight 5G routers, have quectel cellular modules that are not able to identify the inserted cards and display their information, such as imsi. So, even before the dialing process we have a problem identifying the cards. We greatly appreciate help regarding the situation.
Thanks and BR.
Using the pySim-shell to update the SIM card and could not verify the adm code. When doing “verify_adm 12345678”, it returns “EXCEPTION of type ‘RuntimeError’ occurred with message: Failed to verify chv_no 0x0A with code 0x3132333435363738, 2 tries left”.
The SIM cards were bought from open-cells fairly recently (Aug 2023, SN 0C012584). There has been no problem programming them with program_uicc tool. Trying pySim-shell with a HID programmer because a COTS UE does not seem to work properly with program_uicc programmed SIM cards.
Any suggestions of how to make it work with pySim-shell. Two retries left.
Thanks!
You can’t use pySim-shell without modifying it.
The commands are standard for the dialog with the phone, but not the operator part.
Pysim has different pieces of code for each sim vendor.
HID reader: we now support quite a lot of them, see the README.txt file.
COTS UE: the problem is probably something else.
See the table of UEs on our web site.
First try PLMN 001/01, as most of recent phones have a hidden table of operators (shame on them)
regards,
Laurent
Hi Laurent,
We have IDBridge CT40 device.
oai@oai-pc:~/Downloads/uicc-v3.3$ LD_LIBRARY_PATH=/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux ./program_uicc_pcsc –port usb:08e6/3437 –adm 79745678 –iccid 89860061100000000123 –imsi 208920100001123 –isdn 00000$i –acc 0001 –key 6874736969202073796d4b2079650a73 –opc 504f20634f6320504f50206363500a4f -spn OpenCells –authenticate
Existing values in USIM
found card in the reader
ICCID: 8988211000000259625f
Assertion (tcgetattr(fd, &tty) >= 0) failed!
In read() ./uicc.h:260,
System error: Bad file descriptor
additional txt:
Exiting execution
Aborted (core dumped)
We would appreciate your help! 🙂
Best regards,
Svetlana
Dear Svetlana,
I test with a CT30, that is also the same as yours.
We see program_uicc_pcsc manage to use the reader as it displays the ICCID
Then it should read the IMSI
Do you use a open cells SIM card?
Regards,
Laurent