Nhiều hồ sơ được bậ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 đã bật (MEP) cho eUICC. Tính năng này cho phép thiết bị hỗ trợ 2 SIM thông qua một chip eSIM duy nhất, có thể dùng nhiều SIM hồ sơ và có thể kết nối với hai nhà cung cấp dịch vụ khác nhau cùng một lúc. Thiết bị nhà sản xuất phải làm việc với các nhà cung cấp hệ thống SoC và bộ vi mạch eSIM nhà cung cấp tích hợp tính năng này trên thiết bị của họ.

Thông tin khái quát

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 duy nhất hỗ trợ nhiều hồ sơ ở . Mặc dù eSIM giúp tiết kiệm không gian và chi phí đáng kể, nhưng việc thiếu tính năng hỗ trợ 2 SIM khiến nhà sản xuất thiết bị không thể dùng eSIM thiết bị. Cách hỗ trợ 2 SIM trên thiết bị chỉ dùng eSIM nhà sản xuất phải đóng gói 2 phần tử eSIM vào thiết bị, điều này làm tăng hoá đơn vật tư (BOM) và dẫn đến trải nghiệm kém cho gói thuê bao của người dùng Google Cloud. Tính năng MEP có trong AOSP từ Android 13 giải quyết được vấn đề này.

Kiến trúc eUICC

Phần này mô tả cấu trúc chip eSIM cho các thiết bị sử dụng MEP các phiên bản Android khác nhau và cấu trúc chip eSIM cho 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ợ MEP-A1 và MEP-B để lựa chọn gốc miền bảo mật của nhà phát hành (ISD-R) và lựa chọn cổng eSIM như được chỉ định trong GSMA SGP V22 3.0. Phần sau đây mô tả các mô hình 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à hồ sơ được chọn trên cổng eSIM 1 trở lên. Các lệnh ES10 luôn là đượ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à mọi cổng đều có thể được gán một hồ sơ. Các lệnh bật và tắt sẽ được gửi tới cổng mà hồ sơ cần được bật hoặc tắt (trong đó quá trình làm mới đang chờ xử lý). Chiến lược phát hành đĩa đơn 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, nơi có thể bật cổng hồ sơ. Như được trình bày trong Hình 3, với cấu trúc này, một eUICC (một khe cắm vật lý) hỗ trợ chế độ chờ kép SIM kép (DSDS) nhờ có mỗi cổng eUICC liên kết với băng tần cơ sở của modem. Lớp trừu tượng phần cứng (HAL) và API của Android 13 Độc lập với biến thể MEP.

Cấu trúc chip eSIM có hỗ trợ MEP

Hình 3. Kiến trúc chip eSIM có 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, eSIM chỉ hỗ trợ một hồ sơ được bật tại mỗi thời điểm và thiết bị không thể hỗ trợ DSDS.

Cấu 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 hoặc thấp hơn)

Luồng thông tin API cho nhiều hồ sơ đã bật

Hình 5 mô tả luồng thông tin cho MEP đối với 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. Chiến lược phát hành đĩa đơn Lớp UiccPort dùng cho tất cả các loại thẻ SIM: SIM thực (pSIM), SIM tích hợp (iSIM) và SIM nhúng (eSIM). Đối với eUICC có nhiều các cổng, một đối tượng UiccSlot và đối tượng UiccCard ánh xạ tới nhiều thực thể UiccPort. Mỗi thực thể UiccPort có thể liên kết với tối đa một thực thể Thực thể UiccProfile. Luồng này cho phép UiccPort ánh xạ tới một vùng logic và UiccSlot (thực tế vị trí) để ánh xạ tới nhiều vị trí logic.

Quy trình thông tin về MEP

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

Triển khai

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

Yêu cầu về HAL

Để hỗ trợ MEP cho eUICC, hãy triển khai các API IRadio AIDL HAL sau, nằm inch /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 HAL Các giao diện này sử dụng MultipleEnabledProfileMode (Mô hình lựa chọn ISD-R được modem hoặc eUICC hỗ trợ) và truyền ES10 APDU thông tin lệnh trong quá trình hoạt động của kênh logic ICC.

Trạng thái thẻ

Modem phải hỗ trợ CardStatus làm phản hồi cho getIccCardStatusResponse . Phản hồi phải bao gồm chỉ mục cổng và chỉ mục vị trí thực tế đượ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 tham số được hỗ trợ Chế độ MEP với tất cả các sự kiện CardStatus.

SimSlotStatus

Modem phải hỗ trợ SimSlotStatus làm phản hồi cho getSimSlotsStatus . Trạng thái của khe cắm SIM bao gồm một mảng SimPortInfo giao diện, 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 2 đố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 tham số được hỗ trợ Chế độ MEP với tất cả các sự kiện CardStatus.

setSimSlotMapping

Chiến lược phát hành đĩa đơn setSimSlotMapping phải chuyển một mảng SimPortSlotMapping. Chỉ mục của mảng là khe logic và SimPortSlotMapping chỉ định cổng và khe thực tế được liên kết tương ứng chỉ mục. Phương thức setSimSlotMapping thiết lập ánh xạ từ các cổng đến logic vị trí. Ứng dụngLPA sử dụng phương thức này để chọn cổng đang hoạt động.

Các API hỗ trợ MEP cho eUICC

Thiết bị Android hỗ trợ nhiều hồ sơ được bật như một phần của AOSP (Dự án nguồn mở Android) cần có ngăn xếp điện thoại để hỗ trợ các API sau đây.

UiccCardInfo

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

(Android 13 trở lên) UiccPortInfo

  • getIccId: Trả về ICCID nếu có một gói thuê bao đã bậ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 mà trên đó đăng ký được bật. Nếu gói thuê bao đã bị vô hiệu hoá, trả về INVALID_PORT_ID -1.

Trình quản lý Euicc

  • switchToSubscription: Chuyển sang một gói thuê bao cụ thể. Dùng trong các ứng dụng không có nhà mạng đối với các gói thuê bao đang hoạt động. Khi được gọi, nền tảng giải quyết nội bộ chỉ mục cổng thông qua lựa chọn ba lựa chọn hộp thoại để tắt gói thuê bao đang hoạt động được chọn nếu không có cổng. Ứng dụng nhắm đến Android 13 trở lên không được sử dụng API này để vô hiệu hoá gói thuê bao bằng cách truyền mã nhận dạng gói thuê bao không hợp lệ; thay vào đó, họ phải sử dụng switchToSubscription phương thức (được thêm vào Android 13) cùng với chỉ mục cổng đã chỉ định.
  • (Android 13 trở lên) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback): Chuyển sang một gói thuê bao cụ thể. Gọi ứng dụng bằng đặc quyền của nhà mạng các gói thuê bao đang hoạt động có thể chỉ định cổng nào sẽ bật gói thuê bao đó .
  • (Android 13 trở lên) isSimPortAvailable: Trả về xem có chỉ mục cổng truyền trên hay không. Có cổng nếu chưa bật gói thuê bao hoặc ứng dụng gọi có đặc quyền của nhà mạng qua gói thuê bao đã 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 thuê bao cụ thể trên một cổng được chỉ định. Triển khai LPA phải hỗ trợ tính năng này trên Android 13 trở lên.

TelephonyManager

Giao diện người dùng

Để giải quyết tình trạng không rõ ràng về 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 được một trong các gói thuê bao đang hoạt động để bật của bạn. Trong Android 13, AOSP bao gồm một luồng người dùng với 3 lựa chọn hộp thoại có thể áp dụng cho các luồng người dùng có thể sử dụng gói thuê bao trong ứng dụng Cài đặt. Hình 6 cho thấy một ví dụ về quy trình trải nghiệm người dùng này.

Quy trình người dùng cho gói thuê bao SIM MEP

Hình 6. Quy trình người dùng để bật gói thuê bao 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 LPA việc triển khai đá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à bật hồ sơ.
  • Cung cấp trải nghiệm người dùng để các ứng dụng của nhà mạng bật hồ sơ trên các cổng đã chọn.

Xác nhận kết quả

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

Ngoài ra, nhà sản xuất thiết bị cũng phải tương tác với modem, chip eUICC và hệ điều hành eSIM để đảm bảo rằng thiết bị có thể làm những việc sau:

  • Bạn có thể bật và kết nối 2 hồ sơ eSIM với 2 mạng khác nhau.
  • Bạn có thể kích hoạt và huỷ kích hoạt hồ sơ eSIM trên bất kỳ cổng eSIM nào.
  • Có một luồng trải nghiệm người dùng được ứng dụng của nhà mạng kích hoạt cho phép người dùng chuyển đổi hồ sơ.

Đề xuất cho nhà mạng

Để đảm bảo người dùng không bị mất dịch vụ khi di chuyển hồ sơ eSIM từ một hồ sơ eSIM chuyển sang một thiết bị khác, chúng tôi khuyên các nhà mạng cung cấp hỗ trợ cho những nội dung sau:

  • Ánh xạ linh hoạt của IMEI và SIM
  • Nhiều ICCID hoặc SIM cho mỗi giá trị nhận dạng eUICC (EID)