Nhiều cấu hình được kích hoạt

Đối với các thiết bị chạy Android 13 trở lên, Android hỗ trợ nhiều cấu hình được bật (MEP) cho eUICC. Tính năng này cho phép các thiết bị có hỗ trợ SIM kép sử dụng một chip eSIM duy nhất, có thể có nhiều cấu hình SIM và có thể kết nối với hai nhà mạng khác nhau cùng một lúc. Các nhà sản xuất thiết bị phải làm việc với nhà cung cấp SoC và nhà cung cấp chipset eSIM để tích hợp tính năng này trên thiết bị của họ.

Lý lịch

Trên các thiết bị chạy Android 12 trở xuống, AOSP cung cấp hỗ trợ hạn chế trong việc cho phép một eSIM hỗ trợ nhiều hồ sơ cùng một lúc. Mặc dù eSIM mang lại tiết kiệm không gian và chi phí đáng kể, việc thiếu hỗ trợ SIM kép này đã ngăn cản các nhà sản xuất thiết bị áp dụng các thiết bị chỉ có eSIM. Để cung cấp hỗ trợ SIM kép trên thiết bị chỉ có eSIM, nhà sản xuất thiết bị phải tích hợp hai thành phần eSIM vào thiết bị, điều này làm tăng chi phí vật liệu (BOM) và dẫn đến trải nghiệm người dùng kém khi quản lý đăng ký. Tính năng MEP có sẵn trong AOSP từ Android 13 sẽ giải quyết vấn đề này.

kiến trúc eUICC

Phần này mô tả kiến ​​trúc chip eSIM cho các thiết bị có MEP cho các phiên bản Android khác nhau và kiến ​​trúc chip eSIM cho các thiết bị không có MEP.

Android 14

Đối với các thiết bị chạy Android 14 trở lên, Android hỗ trợ các tùy chọn MEP-A1 và MEP-B để chọn gốc miền bảo mật của nhà phát hành (ISD-R) và chọn cổng eSIM như được chỉ định trong GSMA SGP V22 3.0 . Phần sau đây mô tả các mẫu lựa chọn MEP-A1 và MEP-B ISD-R.

  • MEP-A1: ISD-R được chọn trên cổng 0 (cổng lệnh là 0) và cấu hình được chọn trên cổng eSIM 1 trở lên. Các lệnh ES10 luôn được gửi đến cổng 0 và cổng lệnh và cổng đích luôn khác nhau. LPA chọn cổng.

    Mô hình lựa chọn MEP-A1 ISD-R

    Hình 1. Mô hình lựa chọn MEP-A1 ISD-R

  • MEP-B: ISD-R được chọn trên bất kỳ cổng nào và bất kỳ cổng nào cũng có thể được gán một cấu hình. Các lệnh bật và tắt được gửi đến cổng nơi cấu hình cần được bật hoặc tắt (nơi đang chờ làm mới). Cổng lệnh và cổng đích luôn giống nhau.

    Mô hình lựa chọn MEP-B ISD-R

    Hình 2. Mô hình lựa chọn MEP-B ISD-R

Android 13

Trong Android 13 trở lên, trên các thiết bị hỗ trợ MEP, khe cắm eSIM chứa nhiều cổng eUICC mà cổng có thể có cấu hình được bật. Như được hiển thị trong Hình 3, với kiến ​​trúc này, một eUICC duy nhất (một khe cắm vật lý) hỗ trợ chế độ chờ kép SIM kép (DSDS) bằng cách liên kết mỗi cổng eUICC với băng tần cơ sở của modem. Android 13 HAL và API là biến thể MEP độc lập.

Kiến trúc chip eSIM có hỗ trợ MEP

Hình 3. Kiến trúc chip eSIM hỗ trợ MEP (Android 13 trở lên)

Android 12 trở xuống

Đối với các thiết bị chạy Android 12 trở xuống không có MEP như trong Hình 4, khe cắm eSIM chỉ hỗ trợ một hồ sơ kích hoạt duy nhất tại một thời điểm và thiết bị không thể hỗ trợ DSDS.

Kiến trúc chip eSIM không hỗ trợ MEP

Hình 4. Kiến trúc chip eSIM không hỗ trợ MEP (Android 12 trở xuống)

Luồng thông tin API cho nhiều cấu hình được kích hoạt

Hình 5 mô tả luồng thông tin về MEP cho eUICC trong Android 13. Khung điện thoại bao gồm lớp UiccPort , đại diện cho cấu trúc vật lý trên eUICC. Lớp UiccPort được sử dụng cho tất cả các loại thẻ SIM: SIM vật lý (pSIM), SIM tích hợp (iSIM) và SIM nhúng (eSIM). Đối với eUICC có nhiều cổng, một đối tượng UiccSlot và đối tượng UiccCard sẽ ánh xạ tới nhiều phiên bản UiccPort . Mỗi phiên bản UiccPort có thể liên kết đến tối đa một phiên bản UiccProfile . Luồng này cho phép UiccPort ánh xạ tới một khe logic và UiccSlot (khe vật lý) để ánh xạ tới nhiều khe logic.

Luồng thông tin MEP

Hình 5. Luồng thông tin cho eUICC có hỗ trợ MEP

Thực hiện

Phần này mô tả cách triển khai tính năng MEP bao gồm chi tiết về các yêu cầu HAL, API và giao diện người dùng. Các nhà sản xuất thiết bị nên làm việc với các nhà cung cấp SoC và nhà cung cấp chipset eSIM để hỗ trợ MEP.

Yêu cầu HAL

Để hỗ trợ MEP cho eUICC, hãy triển khai các API IRadio AIDL HAL sau, nằm trong /platform/hardware/interfaces/radio/aidl/aidl_api .

Các thiết bị chạy Android 14 trở lên phải sử dụng phiên bản IRadio 2.1 của giao diện HAL, sử dụng MultipleEnabledProfileMode (mô hình lựa chọn ISD-R được modem hoặc eUICC hỗ trợ) và truyền thông tin lệnh ES10 APDU trong các hoạt động của kênh logic ICC.

Trạng thái thẻ

Modem phải hỗ trợ API CardStatus để phản hồi phương thức getIccCardStatusResponse . Phản hồi phải bao gồm chỉ mục cổng và chỉ mục vị trí vật lý được chỉ định bởi SimPortSlotMapping .

Đối với các thiết bị chạy Android 14 trở lên, modem phải vượt qua chế độ MEP được hỗ trợ với tất cả các sự kiện CardStatus.

Trạng thái khe cắm Sim

Modem phải hỗ trợ API SimSlotStatus để phản hồi phương thức getSimSlotsStatus . Trạng thái khe cắm SIM bao gồm một mảng giao diện SimPortInfo , bao gồm chỉ mục cổng, ICCID cho cấu hình đã bật và trạng thái cổng. Modem phải trả về ít nhất hai đối tượng SimPortInfo .

Đối với các thiết bị chạy Android 14 trở lên, modem phải vượt qua chế độ MEP được hỗ trợ với tất cả các sự kiện CardStatus.

setSimSlotMapping

Phương thức setSimSlotMapping phải truyền một mảng SimPortSlotMapping . Chỉ mục của mảng là khe logic và SimPortSlotMapping chỉ định cổng được ánh xạ tương ứng và chỉ mục khe vật lý. Phương thức setSimSlotMapping thiết lập ánh xạ từ các cổng tới các khe logic. Ứng dụng LPA sử dụng phương pháp này để chọn cổng hoạt động.

API hỗ trợ MEP cho eUICC

Các thiết bị Android hỗ trợ nhiều cấu hình được bật như một phần của ngăn xếp điện thoại AOSP được yêu cầu hỗ trợ các API sau.

Thông tin thẻ Uicc

  • (Android 13 trở lên) isMultipleEnabledProfilesSupported : Trả về xem UICC này có hỗ trợ MEP hay không.
  • (Android 13 trở lên) getPorts : Trả về danh sách tất cả các cổng có thể có cho một UICC cụ thể. Nếu UICC là pSIM hoặc eSIM không hỗ trợ MEP, hãy trả về danh sách một thành phần.
  • (Không dùng nữa) getIccId : Trả về ICCID. Vì UICC có thể có nhiều ICCID cho các thiết bị có MEP nên hãy sử dụng UiccPortInfo.getIccId() thay thế.

(Android 13 trở lên) UiccPortInfo

  • getIccId : Trả về ICCID nếu có đăng ký được kích hoạt trên cổng này.
  • getPortIndex : Trả về chỉ mục cổng.
  • getLogicalSlotIndex : Trả về chỉ mục ngăn xếp modem logic đang hoạt động.

Thông tin đăng ký

  • (Android 13 trở lên) getPortIndex : Trả về chỉ mục cổng nơi đăng ký được bật. Nếu đăng ký bị tắt, trả về INVALID_PORT_ID -1 .

EuiccQuản lý

  • switchToSubscription : Chuyển sang một thuê bao nhất định. Được sử dụng bởi các ứng dụng không có đặc quyền của nhà mạng đối với các đăng ký đang hoạt động. Khi được gọi, nền tảng sẽ phân giải nội bộ chỉ mục cổng thông qua hộp thoại lựa chọn ba lựa chọn để vô hiệu hóa đăng ký đang hoạt động đã chọn nếu không có cổng nào khả dụng. Các ứng dụng nhắm mục tiêu Android 13 trở lên không được sử dụng API này để vô hiệu hóa đăng ký bằng cách chuyển ID đăng ký không hợp lệ ; thay vào đó, họ phải sử dụng phương thức switchToSubscription (được thêm vào Android 13) với chỉ mục cổng được chỉ định.
  • (Android 13 trở lên) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) : Chuyển sang một gói đăng ký nhất định. Các ứng dụng gọi điện có đặc quyền của nhà cung cấp dịch vụ đối với các đăng ký đang hoạt động có thể chỉ định cổng nào sẽ bật đăng ký.
  • (Android 13 trở lên) isSimPortAvailable : Trả về xem có sẵn chỉ mục cổng chuyển hay không. Một cổng khả dụng nếu cổng đó không kích hoạt đăng ký hoặc ứng dụng gọi điện có đặc quyền của nhà cung cấp dịch vụ đối với đăng ký được cài đặt trên cổng đã chọn.

Dịch vụ Euicc

  • (Android 13 trở lên) onSwitchToSubscriptionWithPort : Chuyển sang một gói đăng ký nhất định trên một cổng được chỉ định. Việc triển khai LPA phải hỗ trợ tính năng này trên Android 13 trở lên.

Trình quản lý điện thoại

Giao diện người dùng

Để giải quyết sự mơ hồ trong việc lựa chọn cổng eSIM, trên các thiết bị hỗ trợ MEP, người dùng phải tắt một trong các đăng ký đang hoạt động để kích hoạt đăng ký mới. Trong Android 13, AOSP bao gồm luồng người dùng với hộp thoại ba lựa chọn có thể áp dụng cho đăng ký cho phép luồng người dùng từ ứng dụng Cài đặt. Hình 6 cho thấy một ví dụ về luồng UX này.

Luồng người dùng đăng ký SIM MEP

Hình 6. Luồng người dùng kích hoạt đăng ký SIM

Cờ tính năng

Để hỗ trợ MEP, thiết bị phải khai báo các cờ tính năng sau:

Triển khai LPA

Để hỗ trợ MEP, hãy đảm bảo rằng việc triển khai LPA của bạn đáp ứng các yêu cầu sau:

  • Triển khai các API từ EuiccService để hỗ trợ nhiều cổng.
  • Sử dụng API để chọn cổng và kích hoạt cấu hình.
  • Cung cấp UX cho phép các ứng dụng của nhà mạng kích hoạt cấu hình trên các cổng đã chọn.

Thẩm định

Để kiểm tra việc triển khai tính năng MEP của bạn, hãy đảm bảo các bản dựng vượt qua các trường hợp kiểm tra CTS sau (dành cho API công khai): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts .

Các nhà sản xuất thiết bị cũng nên làm việc với modem, chip eUICC và nhà cung cấp hệ điều hành eSIM để đảm bảo rằng thiết bị có thể thực hiện những việc sau:

  • Hai cấu hình eSIM có thể được kích hoạt và gắn vào hai mạng khác nhau.
  • Cấu hình eSIM có thể được kích hoạt và hủy kích hoạt trên bất kỳ cổng eSIM nào.
  • Có một luồng UX được kích hoạt bởi ứng dụng của nhà cung cấp dịch vụ cho phép người dùng chuyển đổi cấu hình.

Khuyến nghị cho các nhà vận chuyển

Để đảm bảo người dùng không bị mất dịch vụ khi di chuyển cấu hình eSIM từ cổng này sang cổng khác, chúng tôi khuyên các nhà cung cấp dịch vụ nên hỗ trợ những điều sau:

  • Ánh xạ chất lỏng của IMEI và SIM
  • Nhiều ICCID hoặc SIM cho mỗi mã định danh eUICC (EID)