Description
In the context of 3GPP specifications, a record pointer is a fundamental data element used within the UICC (Universal Integrated Circuit Card) file system. The UICC, which hosts the SIM/USIM application, organizes data in a hierarchical file structure consisting of Master Files (MF), Dedicated Files (DF), and Elementary Files (EF). An EF can be either transparent (a single block of data) or linear fixed (a sequence of records). For linear fixed EFs, each record is a fixed-size block of data, and a record pointer is used to address a specific record within that EF.
The record pointer is typically a numeric value that indicates the record number, starting from 1 for the first record. When an application or network entity needs to read, write, or update a particular record in an EF, it includes the record pointer in the command to specify which record is being targeted. This mechanism is defined in 3GPP TS 31.121, which specifies the UICC-terminal interface for the USIM application. The record pointer is also referenced in TS 21.905, the vocabulary for 3GPP specifications.
The record pointer is essential for operations such as reading the IMSI from EF_IMSI, updating the location information in EF_LOCI, or accessing the phonebook in EF_ADN. Without a record pointer, it would be impossible to selectively access individual records within a linear fixed EF, as the file is treated as a sequence of records rather than a single contiguous block. The pointer thus provides a level of indirection that allows efficient and precise data management on the UICC.
In practice, the record pointer is used in APDU (Application Protocol Data Unit) commands exchanged between the terminal (e.g., mobile equipment) and the UICC. For example, the READ RECORD command includes a record pointer to specify which record to read. Similarly, the UPDATE RECORD command uses a record pointer to indicate which record to update. The record pointer is also used in the context of OTA (Over-The-Air) provisioning, where the network sends commands to update specific records on the UICC.
The concept of a record pointer has remained stable across 3GPP releases from Rel-4 through Rel-19, reflecting its fundamental role in UICC file management. While the underlying file structures and applications have evolved (e.g., with the introduction of new EFs for LTE, 5G, and IoT), the basic mechanism of addressing records via a pointer has not changed. This stability ensures backward compatibility and simplifies the implementation of UICC-related protocols.
Purpose & Motivation
The record pointer exists to provide a standardized way to address individual records within a linear fixed Elementary File (EF) on a UICC. In the early days of smart cards, data was often stored in transparent files, which are simple byte arrays. However, as applications grew more complex, the need arose to store structured data in records, each containing related information. For example, a phonebook EF might contain multiple records, each representing a contact. Without a record pointer, there would be no efficient way to access a specific contact without reading the entire file.
The record pointer solves this problem by introducing a simple, numeric index that identifies a record within an EF. This allows terminals and network entities to perform targeted read, write, and update operations, reducing the amount of data transferred and improving performance. It also enables the UICC to enforce access control on a per-record basis, as different records may have different security attributes.
Historically, the record pointer concept was inherited from earlier smart card standards (e.g., ISO/IEC 7816-4) and was adopted into 3GPP specifications to ensure interoperability between UICCs and terminals from different vendors. Its inclusion in TS 31.121 and TS 21.905 underscores its importance as a foundational element of the UICC-terminal interface. The record pointer has remained unchanged across releases because it is a simple, effective solution that meets the requirements of UICC file management without needing modification.
What changed in its specifications
The latest release-to-release comparison of specifications that define Record pointer. Each summary describes the whole specification, not only this term.
Rel-18 brings only minor changes to TS 21.905: 0 clauses changed, with no change attributed to a release feature.
Full comparison in TR 21.905 →Rel-19 added harmonized test definitions for FDN, charging, PLMN selection, CSG; RedCap access control tests across EPS, NB-IoT, 5G NR; slice selection conformance clauses; SOR-CMCI test clauses for PDU release; and PLMN selection priority test changes.
Full comparison in TS 31.121 →Release Timeline
Evolution Across Releases
An overview written from the defining specifications, not a verified change history. For the exact text, open the specifications listed below.
Defining Specifications
3GPP specifications that define or reference Record pointer, with the latest known release. Sourced from the 3GPP document catalog — see methodology.
| Specification | Title | Release |
|---|---|---|
| TR 21.905 vj20 | 3GPP Terminology and Definitions | Rel-19 read |
| TS 31.121 vj00 | UICC Application Test Specification | Rel-19 read |