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 đã bật (MEP) cho eUICC. Tính năng này cho phép các thiết bị hỗ trợ hai SIM 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 các 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 duy nhất hỗ trợ nhiều cấu hình cùng một lúc. Mặc dù tiết kiệm đáng kể về không gian và chi phí mà eSIM mang lại, nhưng việc thiếu hỗ trợ hai SIM 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ợ hai SIM trên thiết bị chỉ có eSIM, các 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í hóa đơn nguyên vật liệu (BOM) và dẫn đến trải nghiệm quản lý đăng ký kém cho người dùng. Tính năng MEP có sẵn trong AOSP từ Android 13 giải quyết vấn đề này.

thay đổi kiến ​​trúc eUICC

Phần này cung cấp sự so sánh về kiến ​​trúc chip eSIM cho các thiết bị có MEP chạy Android 13 và cho các thiết bị chạy không có MEP Android 12 trở xuống. Đối với các thiết bị hỗ trợ MEP như trong Hình 1, khe cắm eSIM chứa nhiều cổng eUICC, trong đó mỗi cổng có thể có một cấu hình được bật. Với kiến ​​trúc này, một eUICC duy nhất (một khe cắm vật lý duy nhất) hỗ trợ chế độ chờ kép SIM kép (DSDS) bằng cách để mỗi cổng eUICC liên kết với một băng tần cơ sở của modem. Hình 2 mô tả kiến ​​trúc chip eSIM cho thiết bị không có MEP.

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

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

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

Hình 2. 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 bật

Hình 3 mô tả luồng thông tin cho 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 một eUICC có nhiều cổng, một đối tượng UiccSlot và đối tượng UiccCard ánh xạ tới nhiều phiên bản UiccPort . Mỗi phiên bản UiccPort có thể liên kết với 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 3. Luồng thông tin cho eUICC với 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 2.0 AIDL HAL sau đây.

Tình trạng thẻ

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

Khe SimTrạng Thái

Modem phải hỗ trợ API SimSlotStatus như một phản hồi đối với phương thức getSimSlotsStatus . Trạng thái khe cắm SIM bao gồm một mảng của 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 .

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ần có 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 để hỗ trợ các API sau.

UiccCardInfo

  • (Android 13 trở lên) isMultipleEnabledProfilesSupported : Trả về liệu 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, thì trả về danh sách một thành phần.
  • (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ị 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ỉ số 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à đăng ký được bật. Nếu đăng ký bị vô hiệu hóa, trả về INVALID_PORT_ID -1 .

Quản lý Euicc

  • 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à cung cấp dịch vụ trên các đăng ký đang hoạt động. Khi được gọi, nền tảng sẽ giải quyết nội bộ chỉ mục cổng thông qua hộp thoại lựa chọn ba lựa chọn để tắt đăng ký đang hoạt động đã chọn nếu không có cổng nào. 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ề liệu chỉ mục cổng đi qua có khả dụng hay không. Một cổng khả dụng nếu cổng đó không được bậ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 đăng ký nhất định trên một cổng được chỉ định. Việc triển khai LPA phải hỗ trợ điều 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ự không rõ ràng trong lựa chọn cổng eSIM, trên các thiết bị hỗ trợ MEP, người dùng phải có thể 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 một luồng người dùng với hộp thoại ba lựa chọn có thể được áp dụng cho đăng ký cho phép các luồng người dùng từ ứng dụng Cài đặt. Hình 4 cho thấy một ví dụ về luồng UX này.

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

Hình 4. Quy trình người dùng kích hoạt đăng ký SIM

cờ tính năng

Để hỗ trợ MEP, các 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à bậ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 (đối với 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 nhà cung cấp modem, chip eUICC và hệ điều hành eSIM của họ để đả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 bậ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à mạng cho phép người dùng chuyển đổi hồ sơ.