OTA Parameters

OTA Parameters are split in 3 categories:

  1. SIM Profile
  2. SIM
  3. Remote Type Management
    1. RFM (Remote File Management)
    2. RAM (Remote Application Management)

SIM Profile Parameters

SIM Profile parameters are present for a batch of SIMs.

SIM Profile ParametersHeader Column #2Header Column #3Table HeaderTable HeaderTable Header
claClass ByteThe class byte shall be coded according to section 11.1.4.1 in GlobalPlatform Card Specification version 2.31Hex80
spiSecurity Parameter IndicatorSpecifies what ciphering algorithm is used, if PoR is ciphered and more2Hex1621
kicKey and algorithm Identifier for cipheringAlgorithm type used for ciphering1Hex15
kidKey and algorithm Identifier for RC/CC/DSAlgorithm type used to compute RC/CC/DS filed to verify integrity data1Hex15
tarToolkit Application ReferenceUsed to send updates to a specific SIM application (ex: card manager, gsm, usim)3Hex000000(RAM) b00010(GSM) b00001(USIM)

SIM Parameters

SIM parameters are present for each SIM.

SIM ParametersDetailPurposeSizeTypeCommon Values
kicKey Identifier for cipheringKey used for ciphering16/24Hex-
kidKey Identifier for RC/CC/DSKey used to verify integrity data16/24Hex-
counterCounterCounter used for replay detection and sequance integrity5Hex000000000

Remote Type Management

Remote Type Management is split in 2:

  1. RAM – Used to manage applets on SIM
  2. RFM – Used to manage SIM files

RAM Parameters

RAM parameters are used to manage STK or UTK applets.
Applets can be managed using RAM operations: load, install, delete.

Load Operation

Process the data inside .CAP File and stores it inside SIM card memory:

  • SIM card memory is limited
  • CAP file is generated from the Applet Java Class

Multiple LOAD commands may be used to transfer a Load File to the card.
The Load File is divided into smaller components for transmission

Install Operation

Initiates and performsthe applet installation

Delete Operation

Is used to delete a uniquely identifiable object such as an Executable Load File, an
Application, optionally an Executable Load File and its related Applications.

Install applet flow:

  1. Load Operation: Process .cap file and store into SIM
  2. Install Operation: Performs applet installation

General RAM Parameters

Ram ParametersOperationDetailPurposeSize (bytes)TypeCommon Values
appletload/install.CAP FileProcessed .CAP File encoded in base64variableString-
non_volatile_data_sizeload/installNon volatile Memory SpaceUsed to check memory space before installing an applet on SIM (decimal 0-655363)4Int0
volatile_data_sizeload/installVolatile Memory SpaceUsed to check memory space before installing an applet on SIM (decimel 0 - 655363)4Int0
module_aidinstallModule AIDExecutable Module AID is the AID of the Executable Module previously loaded. The Executable Module shall be present whitin an Executable Load FileVariableHex-
instance_aidinstallInstance AIDUsed to indicate what instance AID (from the installed applications) will be selectedVariableHex-
toolkit_parametersinstallToolkit ParametersIt specifies if applet is UTK, STK or none. Possible values: null/sim/uicc. See tables below if sim or uicc is specified.VariableStringnull/sim/uicc
app_parametersinstallApplication ParametersApplication specific parametersVariableHexnull
aiddeleteApplet IDApplet IDVariableHex-
delete_related_objectsdeleteDelete Related ObjectsWhen deleting an applet delete_related_objects can be specified and all the data that is related to AID will be removedVariableBooltrue

Toolkit Parameters

If applet has toolkit parameters (sim/uicc) the following must be specified.

Toolkit ParametersToolkit TypeDetailPurposeSize (characters)TypeCommon Values
access_domainsimAccess DomainThe access domain is used to specify the UICC files that may be accessed by the application and the operations allowed on these files.Variable (usually 2)Hex00(Full Access) FF(No access)
priority_levelsim/uiccPriority LevelThe priority specifies the order of activation of an application compared to the other application registered to the same event.2Hex01(Highest) FF(Lowest)
max_timerssim/uiccMax TimersMaximum number of timers allowed for this application instance (Values: 0 - 225)3Int0
max_menu_entry_textsim/uiccMax Menu Entry TextMaximum text lenght for a menu entry (Values: 0-255)3Int16
max_menu_entriessim/uiccMax Menu entriesIt defines how the menu is build, order of menu items (Values: 0-255)3Int1
multi_tarsim/uiccMultiple Tar ValuesTAR Value(s) of the Toolkit Application instance. Multiple TARs can be specified by splitting them with character",".VariableHexnull
max_nr_servicesuiccMaximum Nr. of ServicesMaximum number of services for this application instance (values: 0-225)3Int0
uicc_access_appuiccUICC Access ApplicationUICC Access Application specific parametersVariableHexnull
uicc_admin_access_appuiccUICC Administrator Access applicationUICC Administrative Access Application specific parametersVariableHexnull

RFM Parameters​

RFM Parameters are used to manage SIM Files by sending APDU(s) to SIM.

An APDU (Application Protocol Data Unit) is a hexadecimal command that makes operation on SIMs.

 

Structure of a command APDU is presented below:

APDU ParameterDetailSize (bytes)TypeCommon Values
CLAClass of Instructions1Hex00 - GSM A0 - USIM
INSInstruction Code1HexA4 - Select D6 - Update transparent EF
P1Instruction Parameter 11Hexex: 01 - Record number in case of update Linear EF
P2Instruction Parameter 21Hexex: 04 - The record number is given in P1
P3Lenght of Data1Hex-
DataData of the APDUvarHex3F00 - Address to select (Select MF) AABBCC - Value that will be stored in EF

YateOTA API can generate those APDU(s) by giving details like: SIM application, address, value.

See more detail here.