Wiele włączonych profili, wiele włączonych profili

W przypadku urządzeń z systemem Android 13 lub nowszym system Android obsługuje wiele profili (MEP) dla eUICC. Ta funkcja umożliwia urządzeniom obsługę dwóch kart SIM przy użyciu jednego chipa eSIM, który może mieć wiele profili SIM i może łączyć się jednocześnie z dwoma różnymi operatorami. Producenci urządzeń muszą współpracować z dostawcami SoC i chipsetów eSIM, aby zintegrować tę funkcję ze swoimi urządzeniami.

Tło

Na urządzeniach z Androidem 12 i starszym AOSP zapewnia ograniczoną obsługę, umożliwiając pojedynczej karcie eSIM obsługę wielu profili jednocześnie. Pomimo znacznych oszczędności miejsca i kosztów, jakie oferuje eSIM, brak obsługi dwóch kart SIM uniemożliwia producentom urządzeń wdrażanie urządzeń obsługujących wyłącznie eSIM. Aby zapewnić obsługę dwóch kart SIM na urządzeniu obsługującym wyłącznie eSIM, producenci urządzeń muszą umieścić w urządzeniu dwa elementy eSIM, co zwiększa koszty zestawienia materiałów (BOM) i pogarsza komfort zarządzania subskrypcjami przez użytkowników. Funkcja MEP dostępna w AOSP od Androida 13 rozwiązuje ten problem.

Architektura eUICC

W tej sekcji opisano architekturę chipa eSIM dla urządzeń z MEP dla różnych wersji Androida oraz architekturę chipa eSIM dla urządzeń bez MEP.

Androida 14

W przypadku urządzeń z systemem Android 14 lub nowszym system Android obsługuje opcje MEP-A1 i MEP-B umożliwiające wybór głównego katalogu domeny bezpieczeństwa wystawcy (ISD-R) i wybór portów eSIM zgodnie z specyfikacją GSMA SGP V22 3.0 . Poniżej opisano modele wyboru MEP-A1 i MEP-B ISD-R.

  • MEP-A1: ISD-R jest wybrany na porcie 0 (port poleceń to 0), a profile są wybrane na portach eSIM 1 i wyższych. Polecenia ES10 są zawsze wysyłane do portu 0, a port poleceń i port docelowy są zawsze różne. LPA wybiera port.

    Model doboru MEP-A1 ISD-R

    Rysunek 1. Model doboru MEP-A1 ISD-R

  • MEP-B: ISD-R jest wybrany na dowolnym porcie i do każdego portu można przypisać profil. Polecenia włączania i wyłączania są wysyłane do portu, na którym profil ma zostać włączony lub wyłączony (gdzie oczekuje na odświeżenie). Port poleceń i port docelowy są zawsze takie same.

    Model doboru MEP-B ISD-R

    Rysunek 2. Model doboru MEP-B ISD-R

Androida 13

W systemie Android 13 lub nowszym na urządzeniach obsługujących MEP gniazdo eSIM zawiera wiele portów eUICC, dla których port może mieć włączony profil. Jak pokazano na rysunku 3, w tej architekturze pojedynczy eUICC (pojedyncze gniazdo fizyczne) obsługuje dual SIM w trybie dual standby (DSDS), dzięki połączeniu każdego portu eUICC z pasmem podstawowym modemu. Android 13 HAL i interfejsy API są niezależne od wersji MEP.

Architektura chipów eSIM z obsługą MEP

Rysunek 3. Architektura chipa eSIM z obsługą MEP (Android 13 lub nowszy)

Android 12 i starsze

W przypadku urządzeń z systemem Android 12 lub starszym bez MEP, jak pokazano na rysunku 4, gniazdo eSIM obsługuje tylko jeden włączony profil jednocześnie, a urządzenie nie obsługuje DSDS.

Architektura chipów eSIM bez obsługi MEP

Rysunek 4. Architektura chipa eSIM bez obsługi MEP (Android 12 lub starszy)

Przepływ informacji API dla wielu włączonych profili

Rysunek 5 opisuje przepływ informacji dla MEP dla eUICC w systemie Android 13. Struktura telefonii zawiera klasę UiccPort , która reprezentuje fizyczną strukturę eUICC. Klasa UiccPort jest używana dla wszystkich typów kart SIM: fizycznej SIM (pSIM), zintegrowanej karty SIM (iSIM) i wbudowanej karty SIM (eSIM). W przypadku eUICC z wieloma portami pojedynczy obiekt UiccSlot i obiekt UiccCard są mapowane na wiele instancji UiccPort . Każda instancja UiccPort może łączyć się z co najwyżej jedną instancją UiccProfile . Ten przepływ umożliwia UiccPort mapowanie do logicznego gniazda, a UiccSlot (fizyczne gniazdo) do mapowania do wielu logicznych gniazd.

Przepływ informacji o europosłach

Rysunek 5. Przepływ informacji dla eUICC przy wsparciu MEP

Realizacja

W tej sekcji opisano sposób implementowania funkcji MEP, w tym szczegółowe informacje na temat wymagań HAL, interfejsów API i interfejsu użytkownika. Producenci urządzeń powinni współpracować z dostawcami SoC i chipsetów eSIM, aby zapewnić obsługę MEP.

Wymagania HAL

Aby obsługiwać MEP dla eUICC, zaimplementuj następujące interfejsy API IRadio AIDL HAL, znajdujące się w /platform/hardware/interfaces/radio/aidl/aidl_api .

Urządzenia z systemem Android 14 lub nowszym muszą korzystać z interfejsów HAL w wersji IRadio 2.1, które korzystają z MultipleEnabledProfileMode (model wyboru ISD-R obsługiwany przez modem lub eUICC) i przekazują informacje o komendzie ES10 APDU podczas operacji na kanale logicznym ICC.

Stan karty

Modem musi obsługiwać API CardStatus jako odpowiedź na metodę getIccCardStatusResponse . Odpowiedź musi zawierać indeks portu i indeks gniazda fizycznego określony przez SimPortSlotMapping .

W przypadku urządzeń z systemem Android 14 lub nowszym modem musi przejść obsługiwany tryb MEP ze wszystkimi zdarzeniami CardStatus.

Stan SimSlotu

Modem musi obsługiwać API SimSlotStatus jako odpowiedź na metodę getSimSlotsStatus . Stan gniazda SIM obejmuje tablicę interfejsu SimPortInfo , która zawiera indeks portu, identyfikator ICCID włączonego profilu i stan portu. Modem musi zwracać co najmniej dwa obiekty SimPortInfo .

W przypadku urządzeń z systemem Android 14 lub nowszym modem musi przejść obsługiwany tryb MEP ze wszystkimi zdarzeniami CardStatus.

setSimSlotMapping

Metoda setSimSlotMapping musi przekazywać tablicę SimPortSlotMapping . Indeksem tablicy jest gniazdo logiczne, a SimPortSlotMapping określa odpowiedni zmapowany port i indeks gniazda fizycznego. Metoda setSimSlotMapping ustawia mapowanie z portów na gniazda logiczne. Aplikacja LPA używa tej metody do wybierania aktywnego portu.

Interfejsy API obsługujące MEP dla eUICC

Urządzenia z systemem Android obsługujące wiele włączonych profili w ramach stosu telefonicznego AOSP muszą obsługiwać następujące interfejsy API.

Informacje o karcie Uicc

  • (Android 13 i nowsze) isMultipleEnabledProfilesSupported : Zwraca, czy ten UICC obsługuje MEP.
  • (Android 13 i nowsze) getPorts : Zwraca listę wszystkich możliwych portów dla konkretnego UICC. Jeśli UICC jest kartą pSIM lub eSIM, która nie obsługuje MEP, zwraca listę jednego elementu.
  • (Przestarzałe) getIccId : Zwraca identyfikator ICCID. Ponieważ UICC może mieć więcej niż jeden ICCID dla urządzeń z MEP, zamiast tego użyj UiccPortInfo.getIccId() .

(Android 13 i nowsze) UiccPortInfo

Informacje o subskrypcji

  • (Android 13 i nowsze) getPortIndex : Zwraca indeks portu, na którym włączona jest subskrypcja. Jeśli subskrypcja jest wyłączona, zwraca INVALID_PORT_ID -1 .

Menedżer Euicc

  • switchToSubscription : Przełącza na daną subskrypcję. Używany przez aplikacje, które nie mają uprawnień operatora w przypadku aktywnych subskrypcji. Po wywołaniu platforma wewnętrznie rozpoznaje indeks portu za pomocą okna dialogowego z trzema opcjami wyboru, aby wyłączyć wybraną aktywną subskrypcję, jeśli nie ma dostępnych portów. Aplikacje przeznaczone dla systemu Android 13 i nowszego nie mogą używać tego interfejsu API do wyłączania subskrypcji poprzez przekazanie nieprawidłowego identyfikatora subskrypcji ; zamiast tego muszą użyć metody switchToSubscription (dodanej w systemie Android 13) z określonym indeksem portu.
  • (Android 13 i nowsze) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) : Przełącza do danej subskrypcji. Wywoływanie aplikacji z uprawnieniami operatora w stosunku do aktywnych subskrypcji może określić, na którym porcie ma zostać włączona subskrypcja.
  • (Android 13 i nowsze) isSimPortAvailable : Zwraca informację, czy dostępny jest indeks portu przechodzącego. Port jest dostępny, jeśli nie ma włączonej subskrypcji lub aplikacja wywołująca ma uprawnienia operatora w stosunku do subskrypcji zainstalowanej na wybranym porcie.

Serwis Euicc

  • (Android 13 i nowsze) onSwitchToSubscriptionWithPort : Przełącza na daną subskrypcję na określonym porcie. Implementacja LPA musi to obsługiwać na Androidzie 13 i nowszych.

Menedżer telefonii

Interfejs użytkownika

Aby rozwiązać problem niejednoznaczności wyboru portu eSIM, na urządzeniach obsługujących MEP użytkownicy muszą mieć możliwość wyłączenia jednej z aktywnych subskrypcji, aby włączyć nową subskrypcję. W systemie Android 13 AOSP zawiera przepływ użytkownika z oknem dialogowym z trzema opcjami, które można zastosować do subskrypcji, umożliwiając przepływ użytkownika z aplikacji Ustawienia. Rysunek 6 przedstawia przykład takiego przepływu UX.

Przepływ użytkowników w ramach subskrypcji MEP SIM

Rysunek 6. Przebieg użytkownika umożliwiający włączenie subskrypcji karty SIM

Flagi funkcyjne

Aby obsługiwać MEP, urządzenia muszą zadeklarować następujące flagi funkcji:

Wdrożenie LPA

Aby wesprzeć MEP, upewnij się, że Twoja implementacja LPA spełnia następujące wymagania:

  • Implementuje interfejsy API z EuiccService do obsługi wielu portów.
  • Używa interfejsów API do wyboru portu i włączania profilu.
  • Zapewnia interfejs użytkownika umożliwiający aplikacjom operatorów włączanie profili na wybranych portach.

Walidacja

Aby przetestować implementację funkcji MEP, upewnij się, że kompilacje przeszły następujące przypadki testowe CTS (dla publicznych interfejsów API): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts .

Producenci urządzeń powinni również współpracować ze swoimi dostawcami modemów, chipów eUICC i systemów operacyjnych eSIM, aby mieć pewność, że urządzenie będzie mogło wykonywać następujące czynności:

  • Można włączyć dwa profile eSIM i podłączyć je do dwóch różnych sieci.
  • Profile eSIM można aktywować i dezaktywować na dowolnym porcie eSIM.
  • Aplikacja operatora uruchamia przepływ UX, umożliwiając użytkownikom przełączanie profili.

Rekomendacja dla przewoźników

Aby mieć pewność, że użytkownicy nie stracą usług po przeniesieniu profili eSIM z jednego portu do drugiego, zalecamy, aby operatorzy zapewniali obsługę następujących elementów:

  • Płynne mapowanie IMEI i SIM
  • Wiele identyfikatorów ICCID lub kart SIM dla każdego identyfikatora eUICC (EID)