Mehrere aktivierte Profile

Für Geräte mit Android 13 oder höher unterstützt Android mehrere aktivierte Profile (MEPs) für eUICC. Diese Funktion ermöglicht Geräten Dual-SIM-Unterstützung mit einem einzigen eSIM-Chip, der über mehrere SIM-Profile verfügen und gleichzeitig eine Verbindung zu zwei verschiedenen Mobilfunkanbietern herstellen kann. Gerätehersteller müssen mit SoC-Anbietern und eSIM-Chipsatz-Anbietern zusammenarbeiten, um diese Funktion in ihre Geräte zu integrieren.

Hintergrund

Auf Geräten mit Android 12 und niedriger bietet AOSP begrenzte Unterstützung, sodass eine einzelne eSIM mehrere Profile gleichzeitig unterstützen kann. Trotz der erheblichen Platz- und Kosteneinsparungen, die eSIM bietet, hält dieser Mangel an Dual-SIM-Unterstützung Gerätehersteller davon ab, reine eSIM-Geräte einzuführen. Um Dual-SIM-Unterstützung auf einem reinen eSIM-Gerät bereitzustellen, müssen Gerätehersteller zwei eSIM-Elemente in das Gerät packen, was die Stücklistenkosten (BOM) erhöht und zu einer schlechten Benutzererfahrung bei der Abonnementverwaltung führt. Die in AOSP ab Android 13 verfügbare MEP-Funktion behebt dieses Problem.

eUICC-Architektur

In diesem Abschnitt wird die eSIM-Chiparchitektur für Geräte mit MEP für verschiedene Android-Versionen und die eSIM-Chiparchitektur für Geräte ohne MEP beschrieben.

Android 14

Für Geräte mit Android 14 oder höher unterstützt Android die Optionen MEP-A1 und MEP-B für die Auswahl des Emittenten-Sicherheitsdomänenstamms (ISD-R) und die Auswahl von eSIM-Ports gemäß GSMA SGP V22 3.0 . Im Folgenden werden die Auswahlmodelle MEP-A1 und MEP-B ISD-R beschrieben.

  • MEP-A1: ISD-R ist auf Port 0 ausgewählt (Befehlsport ist 0) und Profile werden auf eSIM-Ports 1 und höher ausgewählt. ES10-Befehle werden immer an Port 0 gesendet, und der Befehlsport und der Zielport sind immer unterschiedlich. Der LPA wählt den Port aus.

    Auswahlmodell MEP-A1 ISD-R

    Abbildung 1. MEP-A1 ISD-R-Auswahlmodell

  • MEP-B: ISD-R ist an jedem Port ausgewählt und jedem Port kann ein Profil zugewiesen werden. Die Aktivierungs- und Deaktivierungsbefehle werden an den Port gesendet, an dem das Profil aktiviert oder deaktiviert werden muss (wo eine Aktualisierung aussteht). Der Befehlsport und der Zielport sind immer gleich.

    Auswahlmodell MEP-B ISD-R

    Abbildung 2. MEP-B ISD-R-Auswahlmodell

Android 13

In Android 13 oder höher enthält der eSIM-Steckplatz auf Geräten, die MEP unterstützen, mehrere eUICC-Ports, für die ein Port ein aktiviertes Profil haben kann. Wie in Abbildung 3 dargestellt, unterstützt bei dieser Architektur ein einzelner eUICC (ein einzelner physischer Steckplatz) Dual-SIM-Dual-Standby (DSDS), indem jeder eUICC-Port mit einem Modem-Basisband verbunden ist. Android 13 HAL und APIs sind unabhängig von der MEP-Variante.

eSIM-Chip-Architektur mit MEP-Unterstützung

Abbildung 3. eSIM-Chiparchitektur mit MEP-Unterstützung (Android 13 oder höher)

Android 12 und niedriger

Bei Geräten mit Android 12 oder niedriger ohne MEP, wie in Abbildung 4 dargestellt, unterstützt der eSIM-Steckplatz jeweils nur ein einzelnes aktiviertes Profil und das Gerät kann DSDS nicht unterstützen.

eSIM-Chip-Architektur ohne MEP-Unterstützung

Abbildung 4. eSIM-Chip-Architektur ohne MEP-Unterstützung (Android 12 oder niedriger)

API-Informationsfluss für mehrere aktivierte Profile

Abbildung 5 beschreibt den Informationsfluss für MEP für eUICC in Android 13. Das Telefonie-Framework enthält die UiccPort Klasse, die die physische Struktur auf eUICC darstellt. Die UiccPort Klasse wird für alle Arten von SIM-Karten verwendet: physische SIM (pSIM), integrierte SIM (iSIM) und eingebettete SIM (eSIM). Bei einem eUICC mit mehreren Ports werden ein einzelnes UiccSlot Objekt und UiccCard Objekt mehreren UiccPort Instanzen zugeordnet. Jede UiccPort Instanz kann mit höchstens einer UiccProfile Instanz verknüpft sein. Dieser Ablauf ermöglicht UiccPort die Zuordnung zu einem logischen Steckplatz und UiccSlot (physischer Steckplatz) die Zuordnung zu mehreren logischen Steckplätzen.

MdEP-Informationsfluss

Abbildung 5. Informationsfluss für eUICC mit MEP-Unterstützung

Implementierung

In diesem Abschnitt wird beschrieben, wie die MEP-Funktion implementiert wird, einschließlich Details zu HAL-Anforderungen, APIs und Benutzeroberfläche. Gerätehersteller sollten mit SoC-Anbietern und eSIM-Chipsatz-Anbietern zusammenarbeiten, um MEP zu unterstützen.

HAL-Anforderungen

Um MEP für eUICC zu unterstützen, implementieren Sie die folgenden IRadio AIDL HAL-APIs, die sich in /platform/hardware/interfaces/radio/aidl/aidl_api befinden.

Geräte mit Android 14 oder höher müssen die IRadio 2.1-Version der HAL-Schnittstellen verwenden, die MultipleEnabledProfileMode (ISD-R-Auswahlmodell, das vom Modem oder eUICC unterstützt wird) verwenden und ES10 APDU-Befehlsinformationen während logischer ICC-Kanaloperationen übergeben.

Kartenstatus

Das Modem muss die CardStatus API als Antwort auf die Methode getIccCardStatusResponse unterstützen. Die Antwort muss den Portindex und den durch SimPortSlotMapping angegebenen physischen Steckplatzindex enthalten.

Bei Geräten mit Android 14 oder höher muss das Modem den unterstützten MEP-Modus mit allen CardStatus-Ereignissen bestehen.

SimSlotStatus

Das Modem muss die SimSlotStatus API als Antwort auf die getSimSlotsStatus -Methode unterstützen. Der Status des SIM-Steckplatzes umfasst ein Array der SimPortInfo Schnittstelle, das den Portindex, die ICCID für das aktivierte Profil und den Portstatus enthält. Das Modem muss mindestens zwei SimPortInfo Objekte zurückgeben.

Bei Geräten mit Android 14 oder höher muss das Modem den unterstützten MEP-Modus mit allen CardStatus-Ereignissen bestehen.

setSimSlotMapping

Die setSimSlotMapping Methode muss ein Array von SimPortSlotMapping übergeben. Der Index des Arrays ist der logische Steckplatz und SimPortSlotMapping gibt den entsprechenden zugeordneten Port und den physischen Steckplatzindex an. Die setSimSlotMapping Methode legt die Zuordnung von Ports zu logischen Steckplätzen fest. Die LPA-App verwendet diese Methode, um den aktiven Port auszuwählen.

APIs, die MEP für eUICC unterstützen

Android-Geräte, die mehrere aktivierte Profile als Teil des AOSP-Telefonie-Stacks unterstützen, müssen die folgenden APIs unterstützen.

UiccCardInfo

  • (Android 13 und höher) isMultipleEnabledProfilesSupported : Gibt zurück, ob diese UICC MEP unterstützt.
  • (Android 13 und höher) getPorts : Gibt die Liste aller möglichen Ports für einen bestimmten UICC zurück. Wenn es sich bei der UICC um eine pSIM oder eSIM handelt, die MEP nicht unterstützt, wird eine Liste mit einem Element zurückgegeben.
  • (Veraltet) getIccId : Gibt eine ICCID zurück. Da eine UICC für Geräte mit MEP mehr als eine ICCID haben kann, verwenden Sie stattdessen UiccPortInfo.getIccId() .

(Android 13 und höher) UiccPortInfo

  • getIccId : Gibt die ICCID zurück, wenn auf diesem Port ein aktiviertes Abonnement vorhanden ist.
  • getPortIndex : Gibt den Portindex zurück.
  • getLogicalSlotIndex : Gibt den Stapelindex des aktiven logischen Modems zurück.

AbonnementInfo

  • (Android 13 und höher) getPortIndex : Gibt den Portindex zurück, für den das Abonnement aktiviert ist. Wenn das Abonnement deaktiviert ist, wird INVALID_PORT_ID -1 zurückgegeben.

EuiccManager

  • switchToSubscription : Wechselt zu einem bestimmten Abonnement. Wird von Apps verwendet, die keine Netzbetreiberprivilegien für aktive Abonnements haben. Beim Aufruf löst die Plattform intern den Portindex über einen Drei-Auswahl- Auswahldialog auf, um das ausgewählte aktive Abonnement zu deaktivieren, wenn keine verfügbaren Ports vorhanden sind. Apps für Android 13 und höher dürfen diese API nicht verwenden, um ein Abonnement durch Übergabe einer ungültigen Abonnement-ID zu deaktivieren. Stattdessen müssen sie die switchToSubscription Methode (hinzugefügt in Android 13) mit dem angegebenen Portindex verwenden.
  • (Android 13 und höher) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) : Wechselt zu einem bestimmten Abonnement. Beim Aufrufen von Apps mit Netzbetreiberprivilegien gegenüber den aktiven Abonnements kann angegeben werden, auf welchem ​​Port das Abonnement aktiviert werden soll.
  • (Android 13 und höher) isSimPortAvailable : Gibt zurück, ob der übergebene Portindex verfügbar ist. Ein Port ist verfügbar, wenn für ihn kein Abonnement aktiviert ist oder die anrufende App über Netzbetreiberrechte für das auf dem ausgewählten Port installierte Abonnement verfügt.

EuiccService

  • (Android 13 und höher) onSwitchToSubscriptionWithPort : Wechselt zu einem bestimmten Abonnement an einem angegebenen Port. Die LPA-Implementierung muss dies auf Android 13 und höher unterstützen.

TelefonieManager

Benutzeroberfläche

Um die Unklarheit bei der Auswahl des eSIM-Ports zu beseitigen, müssen Benutzer auf Geräten, die MEP unterstützen, in der Lage sein, eines der aktiven Abonnements zu deaktivieren, um ein neues Abonnement zu aktivieren. In Android 13 enthält AOSP einen Benutzerfluss mit einem Drei-Auswahl -Dialogfeld , das auf Abonnements angewendet werden kann und Benutzerflüsse über die Einstellungen-App ermöglicht. Abbildung 6 zeigt ein Beispiel für diesen UX-Fluss.

Benutzerfluss für MEP-SIM-Abonnement

Abbildung 6. Benutzerablauf zum Aktivieren des SIM-Abonnements

Feature-Flags

Um MEP zu unterstützen, müssen Geräte die folgenden Funktionsflags deklarieren:

LPA-Implementierung

Stellen Sie zur Unterstützung von MEP sicher, dass Ihre LPA- Implementierung die folgenden Anforderungen erfüllt:

  • Implementiert die APIs von EuiccService zur Unterstützung mehrerer Ports.
  • Verwendet die APIs zur Portauswahl und Profilaktivierung.
  • Bietet UX, mit dem Netzbetreiber-Apps Profile auf ausgewählten Ports aktivieren können.

Validierung

Um Ihre Implementierung der MEP-Funktion zu testen, stellen Sie sicher, dass die Builds die folgenden CTS-Testfälle bestehen (für öffentliche APIs): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts .

Gerätehersteller sollten auch mit ihren Modem-, eUICC-Chip- und eSIM-Betriebssystemanbietern zusammenarbeiten, um sicherzustellen, dass das Gerät Folgendes kann:

  • Zwei eSIM-Profile können aktiviert und mit zwei verschiedenen Netzwerken verbunden werden.
  • eSIM-Profile können auf jedem eSIM-Port aktiviert und deaktiviert werden.
  • Es gibt einen UX-Flow, der von der Mobilfunkanbieter-App ausgelöst wird und es Benutzern ermöglicht, das Profil zu wechseln.

Empfehlung für Transportunternehmen

Um sicherzustellen, dass Benutzer den Service nicht verlieren, wenn sie eSIM-Profile von einem Port auf einen anderen verschieben, empfehlen wir den Netzbetreibern, Folgendes zu unterstützen:

  • Flüssige Zuordnung von IMEI und SIM
  • Mehrere ICCIDs oder SIMs für jede eUICC-Kennung (EID)