好的,我们继续接续上一篇文章,对 3GPP TS 31.102 规范进行深度拆解。


深度解析 3GPP TS 31.102:4.2.18 EFAD (行政数据)

本文技术原理深度参考了3GPP TS 31.102 V18.8.0 (2025-03) Release 18规范中,关于“4.2.18 EFAD (Administrative Data)”的核心章节,旨在为读者深入解读USIM中这张至关重要的“后台配置表”,是如何通过几个简单的比特位,赋予手机在特殊模式下运行的能力,并精细调控一系列高级功能的。

在我们对USIM的探索旅程中,已经接触了众多面向用户和网络的文件,如身份标识、服务列表、位置信息等。然而,在这些“前台”文件的背后,还存在一个如同“系统注册表”或“后台配置文件”的关键文件——EFAD (Administrative Data),即行政数据。

EFAD文件并不直接存储用户的业务数据,而是存储了一系列用于控制手机(ME)行为模式和功能特性的“开关”和参数。它的配置权完全掌握在运营商(行政管理方)手中,定义了手机在不同阶段(如正常使用、出厂测试、网络维护)应该如何工作,以及一些高级功能(如CSG显示、eDRX接口控制)是否被授权。

对于我们的主角“李想”而言,他可能永远不会直接接触到EFAD的内容。但这个文件中的每一个比特位,都可能深刻地影响着他手机的功能表现和在特定网络环境下的行为。它就像是运营商为李想的手机预设的一套“出厂默认设置”,规定了手机可以做什么、不可以做什么。


1. “系统配置面板”:EFAD的核心价值

EFAD的核心价值在于提供一个由运营商集中控制的、用于配置手机底层行为和高级功能的标准化接口。

This EF contains information concerning the mode of operation according to the type of USIM, such as normal …, type approval …, cell testing …, manufacturer specific …

It also provides an indication about how some ME features shall work during normal operation…

这段原文概括了EFAD的两大核心职责:

  1. 定义手机操作模式 (Mode of Operation): USIM卡不仅为普通公众用户设计,也服务于手机生产、测试、认证的整个产业链。EFAD可以告知手机当前应进入哪种特殊模式:

    • Normal operation (正常模式): 面向普通用户,所有功能按标准流程运行。

    • Type approval (型号核准模式): 在手机上市前的认证测试中使用。此模式下,手机可能会开放一些特殊的测试接口或执行特定的测试流程。

    • Cell testing (小区测试模式): 在新基站投入商用前,运维人员使用此模式的手机进行网络质量测试。

    • Manufacturer specific (制造商特定模式): 允许手机制造商在维修、生产阶段执行一些自定义的自检程序。

  2. 配置高级功能特性: EFAD还包含了一系列用于启用或配置高级网络功能的标志位。这些功能通常与网络演进、特定业务或优化相关。

通过EFAD,运营商获得了一种强大的能力,可以在USIM卡层面,就为不同用途的设备预设好不同的行为模式,而无需对手机软件本身进行修改。


2. 比特位的“魔力开关”:EFAD文件结构与编码剖析

EFAD文件虽然只有短短几个字节,但其内部却像一个精密的“开关矩阵”,每一位都控制着一项关键功能。

2.1 文件结构

表 4.2.18-1: EFAD 文件结构

| 属性 | 值 |

| :--- | :--- |

| Identifier | ‘6FAD’ |

| SFI | ‘03’ |

| Structure | Transparent |

| File size | 4+X bytes |

| Update activity | Low |

| Access Conditions | READ: ALW, UPDATE/DEACTIVATE/ACTIVATE: ADM |

字节内容

| 字节 | 描述 | M/O | 长度 |

| :--- | :--- | :--- | :--- |

| 1 | UE operation mode (UE操作模式) | M | 1 byte |

| 2 to 3 | Additional information (附加信息) | M | 2 bytes |

| 4 | length of MNC in the IMSI (IMSI中MNC的长度) | M | 1 byte |

| 5 to 4+X | RFU (Reserved for Future Use) | O | X bytes |

逐项解读:

  • Access Conditions: READ权限为ALW(总是允许),手机在初始化的很早阶段就需要读取此文件来确定自己的工作模式。而UPDATE权限为ADM,再次强调了这是运营商的“专属配置区”。

  • 核心内容: EFAD的核心信息集中在前4个字节。

2.2 解码UE操作模式 (Byte 1)

第一个字节直接定义了手机的总体工作模式。

Coding: Initial value

  • ‘00’ normal operation.
  • ‘80’ type approval operations.
  • ‘01’ normal operation + specific facilities.
  • ‘81’ type approval operations + specific facilities.

  • '00''01':都表示正常操作模式,供李想这样的普通用户使用。区别在于'01'额外启用了“特定功能”(由字节2和3定义)。

  • '80''81':表示型号核准模式。当手机检测到这个值时,它就知道自己正处于实验室测试环境中。

  • '02':维护模式(离线)。

  • '04':小区测试模式。

2.3 解码附加信息 (Byte 2 & 3) - 功能开关矩阵

这两个字节是EFAD中功能最密集的部分,特别是字节3,其每一位都是一个独立的功能开关。

Byte 3 (第二个附加信息字节) 编码剖析:

b1=0: ciphering indicator feature disabled

b1=1: ciphering indicator feature enabled

b2: CSG Display Control bit, see below

b3: ProSe services for Public Safety, see below

b4: extended DRX cycle

b5: 5G ProSe, see below

让我们逐一解读这些关键的“开关”:

  • b1 (加密指示器开关): 控制手机在屏幕上是否显示加密状态图标(例如一个小锁标志)。b1=1表示启用该功能,当通话被加密时,手机应显示相应图标,给予用户安全感。

  • b2 (CSG显示控制位): 控制在手动搜索CSG(Closed Subscriber Group,封闭用户组,如家庭基站、企业基站)网络时,手机的显示行为。

    • b2=0: 显示所有能搜到的CSG。

    • b2=1: 只显示在运营商预设的“运营商CSG列表” (EF_OCSGL) 中存在的CSG。

    这个开关让运营商可以控制用户能“看到”哪些企业或家庭基站,避免用户尝试连接未经授权的CSG。

  • b3 (ProSe公共安全开关): ProSe(Proximity Services,近场服务)允许设备间直接通信。此开关授权手机在没有网络覆盖或未经核心网授权的情况下,直接使用预置在USIM或手机内的参数,为公共安全人员(如消防员)提供应急的D2D通信能力。

  • b4 (eDRX接口控制开关): eDRX(extended Discontinuous Reception,扩展非连续接收)是为物联网设备设计的深度省电模式。当设备进入eDRX休眠时,它可以与UICC断开接口以节省更多电量。b4=1表示授权手机在eDRX期间可以修改轮询间隔或停用UICC接口。如果为0,则手机无权这样做。这个开关直接关系到物联网终端的功耗策略能否被有效执行。

  • b5 (5G ProSe开关): 用于指示USIM是否授权UE使用“运营商管理”的5G ProSe无线资源。

场景化举例:

李想所在的公司“智联科技”为他们部门的现场工程师配备了一批支持eDRX的物联网终端,并希望:

  1. 终端在eDRX期间可以关闭UICC接口以最大化省电。

  2. 终端在手动搜网时,只能看到公司部署的企业基站(CSG),而不能看到其他公司的。

IT部门在定制USIM卡时,就需要将EFAD的字节3设置为:

  • b4 = 1: 授权eDRX接口控制。

  • b2 = 1: 限制CSG显示。

手机在读取到这个配置后,其行为就会严格遵循公司的策略。

2.4 解码MNC长度 (Byte 4)

Contents: The length indicator refers to the number of digits, used for extracting the MNC from the IMSI if service n°130 is “not available”…

这个字节的功能非常特定,它解决了全球网络中一个长期存在的“历史遗留问题”:MNC(移动网络码)到底是2位还是3位?

在IMSI的结构中,MCC是固定的3位,但MNC可以是2位(欧洲标准)或3位(北美标准)。例如,310-260是3位MNC,而460-00是2位MNC。

手机在解析IMSI时,需要准确地知道MNC的长度,才能正确地分离出MNC和后续的MSIN。EFAD的第4个字节正是为此而生,它明确地告诉手机,这张USIM卡所对应的HPLMN,其MNC是几位数。

  • '02' (二进制 0010): 表示MNC是2位。

  • '03' (二进制 0011): 表示MNC是3位。

这个看似微小的参数,对于手机能否正确解析自己的IMSI、构造正确的网络标识至关重要。

总结:USIM的“幕后导演”

EFAD文件不像EF_IMSIEFPLMNwAcT那样直接面向业务,但它却像一个“幕后导演”,在底层默默地设定着手机的行为准则和能力边界。

  • 提供多模操作性: 通过UE operation mode,使得一张标准的USIM卡能够无缝地应用于从研发、测试到最终用户使用的全生命周期,极大地便利了整个产业链。

  • 实现精细化功能控制: 通过Additional information中的比特开关,运营商获得了对手机高级功能(如eDRX、ProSe、CSG)的“遥控”能力,能够根据业务需求和安全策略,对终端行为进行精细化的定制和管理。

  • 解决历史兼容问题: 通过length of MNC字段,以一种简单而标准化的方式,解决了MNC长度不统一这个困扰产业多年的问题,保障了IMSI在全球范围内的正确解析。

对于李想来说,他手机上那些看似“理所当然”的行为——比如屏幕上会显示加密图标,比如在公司里能搜到企业Wi-Fi般的专用网络信号——其背后的授权和配置,很可能就源于EFAD中那几个被运营商精心设置的比特位。这个文件,正是USIM从一个简单的身份存储器,升华为一个复杂终端行为策略配置中心的集中体现。


FAQ环节

Q1:普通用户的EFAD文件里通常会是什么内容?

A1:对于一个普通的公众用户(如李想),其EFAD文件的内容通常会非常“标准”:

  • Byte 1 (UE operation mode): '01',表示“正常操作+启用特定功能”。

  • Byte 2 (Additional information 1): 通常为RFU,内容可能为'FF'

  • Byte 3 (Additional information 2): 其中的b1(加密指示)通常会设为1,让用户能感知到安全。其他位(如CSG, ProSe, eDRX相关)则大多会设为0,因为普通用户用不到这些高级功能。

  • Byte 4 (length of MNC): 会根据该用户归属运营商的MNC长度,精确地设置为'02''03'

Q2:如果手机不支持EFAD中某个比特位定义的功能(例如ProSe),会发生什么?

A2:手机会直接忽略这个比特位。3GPP标准的设计原则是向前和向后兼容的。如果一个老旧的、不支持ProSe的手机,读取到了一张新的、在EFAD中启用了ProSe功能的USIM卡,手机会因为它不认识b3位的含义而直接忽略它,继续处理其他它认识的配置。这保证了新卡在老手机上依然能正常使用基础功能。

Q3:运营商可以远程更新EFAD文件吗?

A3:可以。EFAD的更新权限是ADM,运营商完全有能力通过安全的OTA(空中下载)通道来远程修改这个文件的内容。例如,如果公司决定为李想所在的部门开通ProSe公共安全通信功能,IT管理员就可以通过后台,向该部门所有员工的USIM卡批量推送EFAD更新命令,将字节3的b3位置为1。手机在收到REFRESH指令后,就会重新读取EFAD并启用新功能。

Q4:为什么需要一个专门的字节来指示MNC长度,手机不能从IMSI本身看出来吗?

A4:不能。IMSI本身是一串连续的数字,例如 46000...310260...。对于46000,手机无法确定MNC是00(中国移动)还是000。对于310260,手机也无法确定MNC是10还是102。如果没有一个权威的指示,手机就只能进行猜测,这在需要全球互操作的通信系统中是不可接受的。EFAD中的这个字节,就提供了这个“权威指示”,消除了二义性。

Q5:EFAD中的配置信息,和Android/iOS系统里的设置有什么关系?

A5:EFAD提供的是底层能力和运营商策略的配置,而手机操作系统(Android/iOS)的设置菜单提供的是用户对这些能力的使用偏好EFAD是“地基”,决定了哪些功能“可以被建起来”。例如,EFAD中的b4=1授权手机可以使用eDRX接口控制,这之后,Android系统才可能会在“开发者选项”或特定API中,向上层应用暴露控制eDRX行为的接口。如果b4=0,那么操作系统层面可能就会完全屏蔽掉这个功能,用户和应用都无法使用。