I would like to replicate my project, built on 4G technology, to 5G. The project is used to test embedded devices and allowed the following steps: programming the sysmoISIM-SJA2 SIM card to connect to my own 4G network, defining the network parameters and running it (SRSRAN).
I am gradually trying to understand the different elements of 5G technology I need, so please excuse my misunderstandings. The 5G network will be created using the SRSRAN project and Open5Gs as the core of the whole network.
The task
I have a device with a soldered-on eUICC chip storing an eSIM profile from the factory. I need either:
a) download the test profile (eSIM) to this chip (eUICC) so that it can connect to my 5G network, keep it during testing and then delete the test profile
b) desolder the chip and replace it with another chip that has the downloaded test profile (eSIM) and swap them back after the testing
The project is meant for testing devices, typically IoT kind of. I expect I won’t be able to download my own LPA and install the test profile that way. The devices are usually for single purposes without any OS running on them.
The questions
How do you create a test profile? I know several (GitHub - GSMATerminals/Generic-eUICC-Test-Profile-for-Device-Testing-Public: The introduction of Devices with non-removable UICC presents a need to review best practice for testing. System simulator-based Device testing for industry certification schemes such as GCF and PTCRB has traditionally expected the necessary test profiles to be made available via removable test UICCs. As industry moves towards non-removable (embedded) UICC, the common way of testing Devices becomes less clear. The opportunity therefore exists to normalize the way in which Test Profiles for embedded UICCs will be available, and configurable, for industry standardised testing.), but they already have the parameters set. I would need to make it so that the parameters associated with the profile can be changed on demand.
I noticed this product on the sysmocom web: MFF2 ZIF M2M SIM card eUICC to FPC adapter | MFF2-ZIF-FPC. Is it possible to desolder the chip from the device, insert it into the socket and use a set of adapters for a conventional plastic SIM card to program it through a card reader and lpac?
Will lpac allow me to download my profile on the chip? The readme only says it allows these operations: enable, disable, delete, and nickname, but when you open EASYlpac, the download button is also available, which leads me to confusion.
Currently, testing is done by desoldering the eUICC and replacing it with an adapter for a programmed classic nano SIM card thanks to the same pinouts. However, this is not a comfortable solution. I am trying to find one with the most minor physical intervention and most accessible for other users.
Thank you for all the suggestions and kind replies.
Hi Matt,
in general there are two options:
- work with the built-in soldered eUICC. In this case you have options
1.1 activate or install a test profile via some vendor-specific proprietary mechanism. The GSMA specs state somewhere that every eUICC/UE vendor must provide such a mechanism but leaves the details to the vendors. So unless you know some secret sauce, not an option
1.2 install a GSMA-signed profile of which you know the key material (whether you call that a test profile or not, doesn’t matter). This is basically like installing any other eSIM profile from a real operator. Problem: There’s basically noone where you can buy such an eSIM profile (yet), at least not at a quantity of one as a single user. If you’re a company and require a certain volume, there are commercial options. sysmocom is working on introducing such a product, but it is still under development. The goal is to have a website where you can configure your eSIM profile personalization (IMSI, key material, etc.) and buy eSIM profiles like you can buy physical SIM cards
- replace the existing eUICC chip (which only accepts GSMA-signed eSIM profiles) with an eUICC chip that accepts other roots-of-trust, so you can install self-signed eSIM profiles into it. sysmocom is selling such eUICCs as sysmoEUICC1-C2T (SGP.26 test certificates, completely insecure) as well as (in bulk volume) sysmoEUICC1-C2P (for a private root CA). It’s possible to manufacture those also in MFF2 form-factor to solder them on a board, but the problem is one of minimum order quantities, like pretty much everything in electronics, particularly when it is made-to-order.
lpac allows you to download profiles ont a chip which (via adapters) you can attach to a card reader. However, you can only download profiles signed with certificates derived from the CA whose root cert is stored in the eUICC.
I’ve given lots of talks on eSIMs + eUICCs, there’s the sysmocEUICC1 user manual and there’s https://euicc-manual.osmocom.org/ - I would advise you to make use of those resources to get a basic understanding of how this all works.
Also, one very important statement, as you mention single-purpose IoT devices without any OS:
You must make a very clear distinction between consumer (SGP.21/22) eSIM univers and the M2M (SGP.01/02) eSIM universe. Those are two completely and utterly incompatible systems. You cannot use a M2M eSIM profile on a Conusmer eUICC. There is no LPA in a M2M eSIM.
I’d expect deeply embedded devices sold in large quantities would usually use M2M eSIM. Nothing you as end-user know about consumer eSIM (including my message above) applies to M2M eSIM. It’s a different unverse.
If the package is MFF2, you could use any MFF2 sized SIM, like sysmoISIM-SJA2-MFF2. This way it’s at least a clean re-work where you unsolder one chip and re-solder another chip with the same package. No need for any adapters in the device.
I guess the most important first step is to figure out what kind of eUICC your target device are using (M2M or consumer). You can solder it onto a solder-type adapter or use the ZIF adapter, and then use pySim-shell.
- If you can
select ADF.ISD-R
and get_eid
returns an EID and no error message: It’s a consumer eUICC.
- If
select ADF.ISD-R
succeeds but get_eid
fails, it’s most likely a M2M eUICC
- if
select ADF.ISD-R
already fails, it’s liekely just a normal SIM (UICC/USIM) in MFF2 package without any eUICC/eSIM functionality