多個已啟用的設定檔

搭載 Android 13 以上版本的裝置:Android 支援 eUICC 已啟用多個設定檔 (MEP)。這項功能可讓裝置 可透過單一 eSIM 卡晶片支援雙 SIM 卡,搭配多張 SIM 卡 設定檔,並同時與兩家不同的貨運公司連線。裝置 製造商必須與 SoC 供應商和 eSIM 卡晶片組合作 ,在自家裝置上整合這項功能。

背景

在搭載 Android 12 以下版本的裝置上,Android 開放原始碼計畫會提供 只能為單一 eSIM 卡支援多個設定檔 雖然 eSIM 卡可節省大量空間和成本效益, 由於缺少雙 SIM 卡支援,因此裝置製造商無法採用 eSIM 卡限定功能 裝置。如要在僅支援 eSIM 卡的裝置上提供雙 SIM 卡支援, 製造商必須將兩個 eSIM 卡元素裝入裝置, 物料費用 (BOM) 成本,導致使用者體驗不佳 以自動化做法管理成本Android 開放原始碼計畫提供的 MEP 功能: Android 13 解決了這個問題。

eUICC 架構

本節說明使用 MEP 的裝置適用的 eSIM 卡晶片架構 搭載的 Android 版本和 eSIM 卡晶片架構, MEP。

Android 14

搭載 Android 14 以上版本的裝置:Android 支援 MEP-A1 和 MEP-B 核發者安全性網域根 (ISD-R) 和 所選的 eSIM 卡通訊埠 GSMA SGP V22 3.0。 以下說明 MEP-A1 和 MEP-B ISD-R 選擇模式。

  • MEP-A1:已在通訊埠 0 中選取 ISD-R (指令通訊埠為 0), 系統會在 eSIM 卡通訊埠 1 和更高版本中選取設定檔。ES10 指令一律會 且指令通訊埠和目標通訊埠一律不同。 LPA 會選擇通訊埠。

    MEP-A1 ISD-R 選擇模式

    圖 1. MEP-A1 ISD-R 選擇模式

  • MEP-B:在任何通訊埠中選取 ISD-R,任何通訊埠都能指派 啟用和停用指令會傳送至 必須啟用或停用設定檔 (亦即尚待重新整理)。 指令通訊埠和目標通訊埠一律相同

    MEP-B ISD-R 選擇模式

    圖 2. MEP-B ISD-R 選擇模式

Android 13

在 Android 13 以上版本、支援 MEP 的裝置上 eSIM 卡插槽包含多個 eUICC 連接埠,且可啟用通訊埠 如圖 3 所示,使用此架構時,單一 eUICC (單一 實體插槽) 可提供個別 eUICC 連接埠,以支援雙 SIM 卡雙待機 (DSDS) 連結至數據機基頻。Android 13 HAL 和 API MEP 變化版本各自獨立。

支援 MEP 的 eSIM 卡晶片架構

圖 3:支援 MEP 的 eSIM 卡晶片架構 (Android 13 以上版本)

Android 12 以下版本

若是搭載 Android 12 以下版本且不含 MEP (如圖 4 所示) 的裝置, eSIM 卡插槽僅支援一部裝置,且一次只能啟用一個設定檔 不支援 DSDS。

支援 MEP 的 eSIM 卡晶片架構

圖 4:不支援 MEP 的 eSIM 卡晶片架構 (Android 12 或 較低)

多個已啟用設定檔的 API 資訊流程

圖 5 說明 eUICC 的 MEP 資訊流程。 Android 13。電話架構包含 UiccPort 類別,代表 eUICC 上的實體結構。 UiccPort 類別適用於所有類型的 SIM 卡:實體 SIM 卡 (pSIM 卡)、 整合式 SIM 卡 (iSIM) 和嵌入式 SIM 卡 (eSIM 卡)。適用於有多個 eUICC 的 eUICC 一個 UiccSlot 物件和 UiccCard 物件 多個 UiccPort 執行個體。每個 UiccPort 執行個體最多只能連結一個 UiccProfile 執行個體。此流程可讓 UiccPort 對應至邏輯運算單元 UiccSlot (實體) ) 對應到多個邏輯運算單元。

MEP 資訊流程

圖 5. eUICC 支援 MEP 的資訊流程

實作

本節說明如何實作 MEP 功能,包括詳細說明 HAL 需求、API 和使用者介面。裝置製造商 與 SoC 廠商和 eSIM 卡晶片組廠商合作,支援 MEP。

HAL 相關規定

如要支援 eUICC 的 MEP,請實作下列 IRadio AIDL HAL API (位於 英吋 /platform/hardware/interfaces/radio/aidl/aidl_api

在搭載 Android 14 以上版本的裝置上,必須使用 IRadio 2.1 版本的 HAL 介面,透過 MultipleEnabledProfileMode (數據機或 eUICC 支援的 ISD-R 選擇模型) 並傳遞 ES10 APDU 命令資訊。

CardStatus

數據機必須支援 CardStatus 做為回應 getIccCardStatusResponse 方法。回應必須包含通訊埠索引和實體運算單元索引 指定的 SimPortSlotMapping

搭載 Android 14 以上版本的裝置:數據機 必須通過 MEP 模式 則會傳回所有 CardStatus 事件

SIM 卡插槽狀態

數據機必須支援 SimSlotStatus 做為回應 getSimSlotsStatus 方法。SIM 卡插槽狀態包括 SimPortInfo 介面,其中包括通訊埠索引、已啟用設定檔的 ICCID,以及 通訊埠狀態數據機必須傳回至少兩個 SimPortInfo 物件。

搭載 Android 14 以上版本的裝置:數據機 必須通過 MEP 模式 則會傳回所有 CardStatus 事件

setSimSlotMapping

setSimSlotMapping 方法必須傳送 SimPortSlotMapping。 陣列的索引是邏輯運算單元 SimPortSlotMapping 會指定對應的對應通訊埠和實體運算單元 索引。setSimSlotMapping 方法會將通訊埠的對應關係設為邏輯 版位。LPA 應用程式會使用 即可選取使用中的通訊埠。

支援 eUICC 的 MEP 的 API

Android 裝置在 Android 開放原始碼計畫中支援多個已啟用的設定檔 必須啟用電話堆疊來支援下列 API。

UiccCardInfo

  • (Android 13 以上版本) isMultipleEnabledProfilesSupported傳回這個 UICC 是否支援 MEP。
  • (Android 13 以上版本) getPorts 退貨程序 特定 UICC 的所有可用通訊埠清單。如果 UICC 是 pSIM 卡 或 eSIM 卡不支援 MEP,傳回一個元素清單。
  • (已淘汰) getIccId 傳回 ICCID。因為一個 UICC 可能會針對裝置有多個 ICCID 與 MEP 搭配使用,請改用 UiccPortInfo.getIccId()

(Android 13 以上版本) UiccPortInfo

  • getIccId 如果這個通訊埠已啟用訂閱項目,系統會傳回 ICCID。
  • getPortIndex 傳回通訊埠索引。
  • getLogicalSlotIndex 傳回使用中的邏輯數據機堆疊索引。

訂閱資訊

  • (Android 13 以上版本) getPortIndex 傳回啟用訂閱的通訊埠索引。如果 訂閱項目已停用,會傳回 INVALID_PORT_ID -1

EuiccManager

  • switchToSubscription 切換至指定訂閱項目。供沒有電信業者的應用程式使用 權限呼叫時,平台 透過選取三選選擇的方式,內部解析通訊埠索引 對話方塊 如果沒有可用通訊埠,即可停用所選有效訂閱項目。 指定 Android 13 以上版本的應用程式不得使用 即可停用這個 API 來停用訂閱功能 訂閱 ID 無效; 而是必須使用 switchToSubscription 方法 (已在 Android 13 中新增) 搭配通訊埠索引 。
  • (Android 13 以上版本) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) 切換至指定訂閱項目。具備電信業者權限的通話應用程式 有效訂閱項目可以指定要啟用訂閱的通訊埠 保持開啟。
  • (Android 13 以上版本) isSimPortAvailable 傳回是否已提供傳遞的通訊埠索引。有可用的通訊埠 如果尚未啟用訂閱服務,或通話應用程式具有電信業者權限 而非特定通訊埠的安裝訂閱項目

EuiccService

  • (Android 13 以上版本) onSwitchToSubscriptionWithPort 在指定通訊埠上切換至指定的訂閱項目。導入 LPA 必須在 Android 13 以上版本中支援這項功能。

電話管理工具

使用者介面

為解決難以選取 eSIM 卡連接埠選項的問題,請在支援 MEP 的裝置上 使用者必須能停用其中一個有效訂閱項目,才能啟用新的 訂閱項目中的所有進階功能!在 Android 13 中,Android 開放原始碼計畫提供使用者流程 是複選題 對話方塊 您可以在「設定」應用程式中,將其套用至訂閱項目,藉此啟用使用者流程。 圖 6 是此使用者體驗流程的範例。

MEP SIM 卡訂閱的使用者流程

圖 6. 啟用 SIM 卡訂閱的使用者流程

Feature flags

如要支援 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 卡設定檔。
  • 電信業者應用程式會觸發使用者體驗流程,讓使用者切換應用程式時

推薦電信業者

確保使用者將 eSIM 卡設定檔移動後不會失去服務 通訊埠,建議電信業者提供下列支援:

  • IMEI 和 SIM 卡的浮動對應
  • 每個 eUICC ID (EID) 都有多個 ICCID 或 SIM 卡