Description
The Current Directory is a state variable maintained by the UICC (Universal Integrated Circuit Card) — commonly known as a SIM card in GSM/UMTS or a USIM in LTE/5G — during the execution of file system operations. The UICC's file system is organised hierarchically, with a Master File (MF) at the root, Dedicated Files (DFs) below it, and Elementary Files (EFs) containing the actual data at the leaves. At any given moment during an application session, the UICC keeps track of which MF or DF was most recently selected; this is called the 'current directory'. The definition is provided in 3GPP TS 21.905, which contains the vocabulary for 3GPP specifications, and referenced in TS 31.121, which specifies the UICC-terminal interface for the USIM application.
The concept of the current directory is closely tied to the SELECT command defined in ISO/IEC 7816-4, the smart card command set that the UICC inherits. When a terminal or a UICC application issues a SELECT command to select a file, it can select either a DF (which changes the current directory) or an EF. If an EF is selected, the current directory remains the parent DF of that EF. The current directory therefore provides a context for subsequent file operations that use relative or short file identifiers. Many commands, such as READ RECORD, UPDATE RECORD, and GET RESPONSE, can refer to files using a file identifier that is resolved relative to the current directory. Without a well-defined current directory, the terminal would need to specify full paths for every file access, which is cumbersome and less efficient.
The procedure for managing the current directory on the UICC is standardised to ensure interoperability between different card vendors and terminal manufacturers. When the terminal powers up the UICC, it performs a reset, and the UICC responds with an Answer to Reset (ATR). After that, the terminal must select the Master File (MF) as the starting point. From there, the terminal can select DFs such as the DF for the USIM application (DF_USIM) or the DF for the ISIM application (DF_ISIM). Each time a DF is selected, the UICC updates its internal current directory pointer. If the terminal then selects an EF under that DF, the current directory remains the DF, and the EF becomes the 'current file'. This distinction between current directory and current file is important: the current directory is always a DF (or the MF), whereas the current file can be either an EF or a DF.
In the context of the USIM application, the current directory is used extensively during authentication and data retrieval procedures. For example, the terminal may select the DF for the USIM application, then select the EF containing the subscriber's IMSI or the EF containing the authentication keys. The current directory ensures that the file identifiers used in these commands are interpreted correctly. It also helps in managing the security attributes of files: each DF and EF has its own access conditions, and the current directory influences which access conditions apply when accessing files. The UICC enforces these access conditions based on the file's security attributes and the current directory context.
The current directory concept is also relevant for newer UICC applications, such as the ISIM (IP Multimedia Services Identity Module) and the CSIM (CDMA Subscriber Identity Module), as well as for the emerging eSIM and iSIM architectures. In all cases, the UICC maintains a hierarchical file system, and the current directory is the key to navigating it efficiently. The definition of 'current directory' in 3GPP TS 21.905 has remained remarkably stable across releases, reflecting the mature and well-established nature of the UICC file system.
From a network perspective, the current directory is not communicated to the network; it is purely a local state within the UICC-terminal interaction. However, it is vital for the correct functioning of the UICC, as it affects how the terminal accesses subscription data, authentication parameters, and other essential information. Errors in managing the current directory — such as selecting a wrong file or failing to update the current directory correctly — can lead to service failures, authentication failures, or even card lock-up. Therefore, terminal manufacturers and UICC vendors rigorously test the SELECT procedure and current directory handling in interoperability test suites, such as those specified in 3GPP TS 31.121, which defines test cases for the USIM application toolkit and related procedures.
In summary, the current directory is a fundamental state variable in the UICC file system, providing the context for file selection and data access. It is defined in 3GPP vocabulary specifications and is integral to the operation of smart cards in mobile networks. Its stability over two decades of 3GPP releases underscores its importance as a foundational concept for UICC interactions.
Purpose & Motivation
The concept of the current directory exists to simplify and standardise the way terminals and UICC applications navigate the hierarchical file system of a smart card. Without a current directory, every file access command would need to specify an absolute path, which increases command size, reduces efficiency, and complicates terminal software. By maintaining a current directory, the UICC provides a context that allows commands to use relative file identifiers, making the interface more efficient and easier to implement.
The hierarchical file system on the UICC is inherited from the ISO/IEC 7816 smart card standard, which defines the SELECT command and the notion of a current directory. When 3GPP adopted the UICC as the platform for the USIM and other applications, it incorporated these ISO concepts into its specifications. The current directory became particularly important as the number of files and applications on the UICC grew. With multiple DFs for different applications (USIM, ISIM, CSIM, etc.), the terminal must be able to switch between directories seamlessly. The current directory mechanism ensures that file identifiers are resolved correctly and that security policies are enforced per directory.
Historically, the current directory concept has solved the problem of file management in a resource-constrained environment. Smart cards have limited memory and processing power, and the command set is designed to be lightweight. The current directory helps minimise the size and complexity of commands exchanged between the terminal and the UICC, which is essential for maintaining acceptable performance during card initialisation and service provisioning. Over the years, the definition has remained stable, which is a testament to the robustness of the original design. Even with the advent of eSIM and remote provisioning, the underlying file system and the current directory concept continue to be used, proving its enduring value.
What changed in its specifications
The latest release-to-release comparison of specifications that define Current directory. 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.
The concept of current directory was inherited from ISO/IEC 7816 and integrated into 3GPP specifications. Although not explicitly listed in the provided data for R99, it was part of the early UICC definitions. The initial definition described it as 'the latest MF or DF selected'.
The definition text carried over unchanged (with minor formatting variations in some releases). The concept has remained stable throughout these releases, reflecting its foundational nature in UICC file system operations.
Defining Specifications
3GPP specifications that define or reference Current directory, 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 |