多個啟用的配置文件

對於運行 Android 13 或更高版本的設備,Android 支持 eUICC 的多個啟用的配置文件 (MEP)。此功能允許設備使用單個 eSIM 芯片支持雙 SIM 卡,該芯片可以具有多個 SIM 配置文件,並且可以同時連接到兩個不同的運營商。設備製造商必須與 SoC 供應商和 eSIM 芯片組供應商合作,將此功能集成到其設備上。

背景

在運行 Android 12 及更低版本的設備上,AOSP 提供有限的支持,允許單個 eSIM 同時支持多個配置文件。儘管 eSIM 可以顯著節省空間和成本,但由於缺乏雙 SIM 卡支持,設備製造商無法採用純 eSIM 設備。為了在純 eSIM 設備上提供雙 SIM 卡支持,設備製造商必須將兩個 eSIM 元件封裝到設備中,這會增加物料清單 (BOM) 成本,並導致訂閱管理的用戶體驗不佳。 Android 13 的 AOSP 中提供的 MEP 功能解決了這個問題。

eUICC架構變更

本部分對運行 Android 13 且具有 MEP 的設備和運行不帶 MEP Android 12 及更低版本的設備的 eSIM 芯片架構進行了比較。對於支持 MEP 的設備(如圖 1 所示),eSIM 插槽包含多個 eUICC 端口,其中每個端口都可以有一個啟用的配置文件。借助此架構,單個 eUICC(單個物理插槽)通過將每個 eUICC 端口鏈接到調製解調器基帶來支持雙 SIM 卡雙待 (DSDS)。圖 2 描述了沒有 MEP 的設備的 eSIM 芯片架構。

支持 MEP 的 eSIM 芯片架構

圖 1.支持 MEP 的 eSIM 芯片架構(Android 13 或更高版本)

不支持 MEP 的 eSIM 芯片架構

圖 2.不支持 MEP 的 eSIM 芯片架構(Android 12 或更低版本)

多個啟用的配置文件的 API 信息流

圖 3 描述了 Android 13 中 eUICC 的 MEP 信息流。電話框架包括UiccPort類,它代表 eUICC 上的物理結構。 UiccPort類用於所有類型的 SIM 卡:物理 SIM (pSIM)、集成 SIM (iSIM) 和嵌入式 SIM (eSIM)。對於具有多個端口的 eUICC,單個UiccSlot對象和UiccCard對象映射到多個UiccPort實例。每個UiccPort實例最多可以鏈接到一個UiccProfile實例。此流程允許UiccPort映射到一個邏輯插槽,並且允許UiccSlot (物理插槽)映射到多個邏輯插槽。

環保部信息流

圖 3.具有 MEP 支持的 eUICC 信息流

執行

本節介紹如何實現 MEP 功能,包括有關 HAL 要求、API 和用戶界面的詳細信息。設備製造商應與 SoC 供應商和 eSIM 芯片組供應商合作來支持 MEP。

HAL 要求

要支持 eUICC 的 MEP,請實現以下IRadio 2.0 AIDL HAL API

卡狀態

調製解調器必須支持CardStatus API 作為對getIccCardStatusResponse方法的響應。響應必須包含SimPortSlotMapping指定的端口索引和物理插槽索引。

SimSlot狀態

調製解調器必須支持SimSlotStatus API 作為對getSimSlotsStatus方法的響應。 SIM 插槽狀態包括SimPortInfo接口的數組,其中包括端口索引、啟用的配置文件的 ICCID 和端口狀態。調製解調器必須返回至少兩個SimPortInfo對象。

設置SimSlotMapping

setSimSlotMapping方法必須傳遞SimPortSlotMapping數組。數組的索引是邏輯插槽, SimPortSlotMapping指定相應的映射端口和物理插槽索引。 setSimSlotMapping方法設置從端口到邏輯槽的映射。 LPA 應用程序使用此方法來選擇活動端口。

支持 eUICC MEP 的 API

作為 AOSP 電話堆棧一部分支持多個啟用的配置文件的 Android 設備需要支持以下 API。

Uicc卡信息

  • (Android 13 及更高版本) isMultipleEnabledProfilesSupported返回此 UICC 是否支持 MEP。
  • (Android 13 及更高版本) getPorts返回特定 UICC 的所有可能端口的列表。如果 UICC 是不支持 MEP 的 pSIM 或 eSIM,則返回一個元素的列表。
  • (已棄用) getIccId返回 ICCID。由於對於具有 MEP 的設備,UICC 可以有多個 ICCID,因此請改用UiccPortInfo.getIccId()

(Android 13 及更高版本)UiccPortInfo

訂閱信息

  • (Android 13 及更高版本) getPortIndex返回啟用訂閱的端口索引。如果訂閱被禁用,則返回INVALID_PORT_ID -1

Euicc管理器

  • switchToSubscription切換到給定的訂閱。由不具有有效訂閱運營商權限的應用程序使用。調用時,平台會通過三項選擇對話框在內部解析端口索引,以便在沒有可用端口時禁用所選的活動訂閱。面向 Android 13 及更高版本的應用不得使用此 API 通過傳遞無效的訂閱 ID來禁用訂閱;相反,他們必須使用switchToSubscription方法(在 Android 13 中添加)並指定端口索引。
  • (Android 13 及更高版本) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback)切換到給定的訂閱。調用對活動訂閱具有運營商權限的應用程序可以指定在哪個端口上啟用訂閱。
  • (Android 13及更高版本) isSimPortAvailable返回傳遞的端口索引是否可用。如果端口未啟用訂閱,或者調用應用程序對所選端口上安裝的訂閱具有運營商特權,則該端口可用。

Euicc服務

  • (Android 13 及更高版本) onSwitchToSubscriptionWithPort切換到指定端口上的給定訂閱。 LPA 實現必須在 Android 13 及更高版本上支持此功能。

電話管理器

用戶界面

為了解決 eSIM 端口選擇的模糊性,在支持 MEP 的設備上,用戶必須能夠禁用其中一項活動訂閱以啟用新訂閱。在 Android 13 中,AOSP 包含一個帶有三項選擇對話框的用戶流,該對話框可應用於從“設置”應用啟用用戶流的訂閱。圖 4 顯示了此 UX 流程的示例。

MEP SIM 訂閱的用戶流程

圖 4.啟用 SIM 訂閱的用戶流程

功能標誌

為了支持 MEP,設備必須聲明以下功能標誌:

LPA實施

為了支持 MEP,請確保您的LPA實施滿足以下要求:

  • 實現EuiccService的 API 以支持多個端口。
  • 使用API進行端口選擇和配置文件啟用。
  • 提供用戶體驗,允許運營商應用程序在選定端口上啟用配置文件。

驗證

要測試 MEP 功能的實現,請確保構建通過以下 CTS 測試用例(對於公共 API): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts

設備製造商還應與其調製解調器、eUICC 芯片和 eSIM OS 供應商合作,以確保設備能夠執行以下操作:

  • 可以啟用兩個 eSIM 配置文件並將其連接到兩個不同的網絡。
  • eSIM 配置文件可以在任何 eSIM 端口上激活和停用。
  • 運營商應用程序觸發了一個用戶體驗流程,允許用戶切換配置文件。
,

對於運行 Android 13 或更高版本的設備,Android 支持 eUICC 的多個啟用的配置文件 (MEP)。此功能允許設備使用單個 eSIM 芯片支持雙 SIM 卡,該芯片可以具有多個 SIM 配置文件,並且可以同時連接到兩個不同的運營商。設備製造商必須與 SoC 供應商和 eSIM 芯片組供應商合作,將此功能集成到其設備上。

背景

在運行 Android 12 及更低版本的設備上,AOSP 提供有限的支持,允許單個 eSIM 同時支持多個配置文件。儘管 eSIM 可以顯著節省空間和成本,但由於缺乏雙 SIM 卡支持,設備製造商無法採用純 eSIM 設備。為了在純 eSIM 設備上提供雙 SIM 卡支持,設備製造商必須將兩個 eSIM 元件封裝到設備中,這會增加物料清單 (BOM) 成本,並導致訂閱管理的用戶體驗不佳。 Android 13 的 AOSP 中提供的 MEP 功能解決了這個問題。

eUICC架構變更

本部分對運行 Android 13 且具有 MEP 的設備和運行不帶 MEP Android 12 及更低版本的設備的 eSIM 芯片架構進行了比較。對於支持 MEP 的設備(如圖 1 所示),eSIM 插槽包含多個 eUICC 端口,其中每個端口都可以有一個啟用的配置文件。借助此架構,單個 eUICC(單個物理插槽)通過將每個 eUICC 端口鏈接到調製解調器基帶來支持雙 SIM 卡雙待 (DSDS)。圖 2 描述了沒有 MEP 的設備的 eSIM 芯片架構。

支持 MEP 的 eSIM 芯片架構

圖 1.支持 MEP 的 eSIM 芯片架構(Android 13 或更高版本)

不支持 MEP 的 eSIM 芯片架構

圖 2.不支持 MEP 的 eSIM 芯片架構(Android 12 或更低版本)

多個啟用的配置文件的 API 信息流

圖 3 描述了 Android 13 中 eUICC 的 MEP 信息流。電話框架包括UiccPort類,它代表 eUICC 上的物理結構。 UiccPort類用於所有類型的 SIM 卡:物理 SIM (pSIM)、集成 SIM (iSIM) 和嵌入式 SIM (eSIM)。對於具有多個端口的 eUICC,單個UiccSlot對象和UiccCard對象映射到多個UiccPort實例。每個UiccPort實例最多可以鏈接到一個UiccProfile實例。此流程允許UiccPort映射到一個邏輯插槽,並且允許UiccSlot (物理插槽)映射到多個邏輯插槽。

環保部信息流

圖 3.具有 MEP 支持的 eUICC 信息流

執行

本節介紹如何實現 MEP 功能,包括有關 HAL 要求、API 和用戶界面的詳細信息。設備製造商應與 SoC 供應商和 eSIM 芯片組供應商合作來支持 MEP。

HAL 要求

要支持 eUICC 的 MEP,請實現以下IRadio 2.0 AIDL HAL API

卡狀態

調製解調器必須支持CardStatus API 作為對getIccCardStatusResponse方法的響應。響應必須包含SimPortSlotMapping指定的端口索引和物理插槽索引。

SimSlot狀態

調製解調器必須支持SimSlotStatus API 作為對getSimSlotsStatus方法的響應。 SIM 插槽狀態包括SimPortInfo接口的數組,其中包括端口索引、啟用的配置文件的 ICCID 和端口狀態。調製解調器必須返回至少兩個SimPortInfo對象。

設置SimSlotMapping

setSimSlotMapping方法必須傳遞SimPortSlotMapping數組。數組的索引是邏輯插槽, SimPortSlotMapping指定相應的映射端口和物理插槽索引。 setSimSlotMapping方法設置從端口到邏輯槽的映射。 LPA 應用程序使用此方法來選擇活動端口。

支持 eUICC MEP 的 API

作為 AOSP 電話堆棧一部分支持多個啟用的配置文件的 Android 設備需要支持以下 API。

Uicc卡信息

  • (Android 13 及更高版本) isMultipleEnabledProfilesSupported返回此 UICC 是否支持 MEP。
  • (Android 13 及更高版本) getPorts返回特定 UICC 的所有可能端口的列表。如果 UICC 是不支持 MEP 的 pSIM 或 eSIM,則返回一個元素的列表。
  • (已棄用) getIccId返回 ICCID。由於對於具有 MEP 的設備,UICC 可以有多個 ICCID,因此請改用UiccPortInfo.getIccId()

(Android 13 及更高版本)UiccPortInfo

訂閱信息

  • (Android 13 及更高版本) getPortIndex返回啟用訂閱的端口索引。如果訂閱被禁用,則返回INVALID_PORT_ID -1

Euicc管理器

  • switchToSubscription切換到給定的訂閱。由不具有有效訂閱運營商權限的應用程序使用。調用時,平台會通過三項選擇對話框在內部解析端口索引,以便在沒有可用端口時禁用所選的活動訂閱。面向 Android 13 及更高版本的應用不得使用此 API 通過傳遞無效的訂閱 ID來禁用訂閱;相反,他們必須使用switchToSubscription方法(在 Android 13 中添加)並指定端口索引。
  • (Android 13 及更高版本) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback)切換到給定的訂閱。調用對活動訂閱具有運營商權限的應用程序可以指定在哪個端口上啟用訂閱。
  • (Android 13及更高版本) isSimPortAvailable返回傳遞的端口索引是否可用。如果端口未啟用訂閱,或者調用應用程序對所選端口上安裝的訂閱具有運營商特權,則該端口可用。

Euicc服務

  • (Android 13 及更高版本) onSwitchToSubscriptionWithPort切換到指定端口上的給定訂閱。 LPA 實現必須在 Android 13 及更高版本上支持此功能。

電話管理器

用戶界面

為了解決 eSIM 端口選擇的模糊性,在支持 MEP 的設備上,用戶必須能夠禁用其中一項活動訂閱以啟用新訂閱。在 Android 13 中,AOSP 包含一個帶有三項選擇對話框的用戶流,該對話框可應用於從“設置”應用啟用用戶流的訂閱。圖 4 顯示了此 UX 流程的示例。

MEP SIM 訂閱的用戶流程

圖 4.啟用 SIM 訂閱的用戶流程

功能標誌

為了支持 MEP,設備必須聲明以下功能標誌:

LPA實施

為了支持 MEP,請確保您的LPA實施滿足以下要求:

  • 實現EuiccService的 API 以支持多個端口。
  • 使用API進行端口選擇和配置文件啟用。
  • 提供用戶體驗,允許運營商應用程序在選定端口上啟用配置文件。

驗證

要測試 MEP 功能的實現,請確保構建通過以下 CTS 測試用例(對於公共 API): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts

設備製造商還應與其調製解調器、eUICC 芯片和 eSIM OS 供應商合作,以確保設備能夠執行以下操作:

  • 可以啟用兩個 eSIM 配置文件並將其連接到兩個不同的網絡。
  • eSIM 配置文件可以在任何 eSIM 端口上激活和停用。
  • 運營商應用程序觸發了一個用戶體驗流程,允許用戶切換配置文件。