Mehrere aktivierte Profile

Auf Geräten mit Android 13 oder höher unterstützt Android mehrere aktivierte Profile (Multiple Enabled Profiles, MEPs) für eUICC. Mit dieser Funktion können Geräte Dual‑SIM mit einem einzigen eSIM-Chip unterstützen, der mehrere SIM-Profile haben und gleichzeitig eine Verbindung zu zwei verschiedenen Mobilfunkanbietern herstellen kann. Gerätehersteller müssen mit SoC-Anbietern und eSIM-Chipsatzanbietern zusammenarbeiten, um diese Funktion in ihre Geräte zu integrieren.

Hintergrund

Auf Geräten mit Android 12 und niedriger bietet AOSP nur begrenzte Unterstützung für die gleichzeitige Verwendung mehrerer Profile auf einer einzelnen eSIM. Trotz der erheblichen Platz- und Kosteneinsparungen, die eSIM bietet, verhindert diese fehlende Dual‑SIM-Unterstützung, dass Gerätehersteller Geräte mit ausschließlich eSIM anbieten. Um Dual‑SIM-Unterstützung auf einem Gerät mit ausschließlich eSIM zu ermöglichen, müssen Gerätehersteller zwei eSIM-Elemente in das Gerät einbauen, was die Materialkosten erhöht und zu einer schlechten Nutzererfahrung bei der Aboverwaltung führt. Das MEP-Feature, das ab Android 13 in AOSP verfügbar ist, behebt dieses Problem.

eUICC-Architektur

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

Android 14

Auf Geräten mit Android 14 oder höher unterstützt Android die Optionen MEP-A1 und MEP-B für die Auswahl des Stammzertifikats der Sicherheitsdomain des Ausstellers (Issuer Security Domain Root, ISD-R) und die Auswahl von eSIM-Ports gemäß GSMA SGP V22 3.0. Im Folgenden werden die ISD-R-Auswahlmodelle MEP-A1 und MEP-B beschrieben:

  • MEP-A1:ISD-R wird 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 für MEP-A1 ISD-R

    Abbildung 1 : Auswahlmodell für MEP-A1 ISD-R

  • MEP-B:ISD-R wird auf einem beliebigen Port ausgewählt und jedem Port kann ein Profil zugewiesen werden. Die Befehle zum Aktivieren und Deaktivieren werden an den Port gesendet, auf dem das Profil aktiviert oder deaktiviert werden muss (wo eine Aktualisierung aussteht). Der Befehlsport und der Zielport sind immer identisch.

    Auswahlmodell für MEP-B ISD-R

    Abbildung 2 : Auswahlmodell für MEP-B ISD-R

Android 13

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

eSIM-Chiparchitektur mit MEP-Unterstützung

Abbildung 3 : eSIM-Chip-Architektur mit MEP-Unterstützung (Android 13 oder höher)

Android 12 und niedriger

Auf Geräten mit Android 12 oder niedriger ohne MEP kann der eSIM-Steckplatz, wie in Abbildung 4 dargestellt, nur ein einziges aktiviertes Profil gleichzeitig unterstützen. Das bedeutet, dass das Gerät DSDS nicht unterstützt.

eSIM-Chiparchitektur 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 Klasse UiccPort, die die physische Struktur auf eUICC darstellt. Die Klasse UiccPort wird für alle Arten von SIM-Karten verwendet: physische SIM (pSIM), integrierte SIM (iSIM) und eingebettete SIM (eSIM). Für eine eUICC mit mehreren Ports werden ein einzelnes UiccSlot-Objekt und ein einzelnes UiccCard-Objekt mehreren UiccPort-Instanzen zugeordnet. Jede UiccPort-Instanz kann mit maximal einer UiccProfile-Instanz verknüpft werden. Dieser Fluss ermöglicht die Zuordnung von UiccPort zu einem logischen Steckplatz und von UiccSlot (physischer Steckplatz) zu mehreren logischen Steckplätzen.

MEP-Informationsfluss

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

Implementierung

In diesem Abschnitt wird beschrieben, wie Sie das MEP-Feature implementieren. Dazu gehören Details zu HAL-Anforderungen, APIs und Benutzeroberfläche. Gerätehersteller sollten mit SoC-Anbietern und eSIM-Chipsatzanbietern zusammenarbeiten, um MEP zu unterstützen.

HAL-Anforderungen

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

Auf Geräten mit Android 14 oder höher muss die IRadio 2.1-Version der HAL-Schnittstellen verwendet werden, die MultipleEnabledProfileMode (ISD-R-Auswahlmodell, das vom Modem oder eUICC unterstützt wird) verwenden und ES10 APDU-Befehlsinformationen während logischer ICC-Kanal vorgänge übergeben.

CardStatus

Das Modem muss die CardStatus API als Antwort auf die getIccCardStatusResponse Methode unterstützen. Die Antwort muss den Port index und den physischen Steckplatzindex enthalten, die von SimPortSlotMapping angegeben werden.

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

SimSlotStatus

Das Modem muss die SimSlotStatus API als Antwort auf die getSimSlotsStatus Methode unterstützen. Der SIM-Steckplatzstatus enthält 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.

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

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 Methode setSimSlotMapping 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 eine bestimmte UICC zurück. Wenn die UICC eine pSIM oder eSIM ist, die MEP nicht unterstützt, wird eine Liste mit einem Element zurückgegeben.
  • (Verworfen) 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 Abo vorhanden ist.
  • getPortIndex: Gibt den Portindex zurück.
  • getLogicalSlotIndex: Gibt den aktiven logischen Modem-Stack Index zurück.

SubscriptionInfo

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

EuiccManager

EuiccService

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

TelephonyManager

Benutzeroberfläche

Um die Mehrdeutigkeit bei der Auswahl von eSIM-Ports zu beseitigen, müssen Nutzer auf Geräten, die MEP unterstützen, eines der aktiven Abos deaktivieren können, um ein neues Abo zu aktivieren. In Android 13 enthält AOSP einen Nutzerfluss mit einem Auswahlfeld mit drei Optionen, das auf Nutzerflüsse zur Aboaktivierung in der App „Einstellungen“ angewendet werden kann. Abbildung 6 zeigt ein Beispiel für diesen UX-Fluss.

User-Flow für das MEP SIM-Abo

Abbildung 6 : Nutzerfluss für die Aktivierung eines SIM-Abos

Funktions-Flags

Zur Unterstützung von MEP müssen Geräte die folgenden Funktions-Flags deklarieren:

LPA-Implementierung

Damit MEP unterstützt wird, muss Ihre LPA-Implementierung die folgenden Anforderungen erfüllen:

  • Implementiert die APIs von EuiccService, um mehrere Ports zu unterstützen.
  • Verwendet die APIs für die Portauswahl und die Profilaktivierung.
  • Bietet eine Benutzeroberfläche, mit der Mobilfunkanbieter-Apps Profile auf ausgewählten Ports aktivieren können.

Validierung

Um Ihre Implementierung des MEP-Features zu testen, müssen die Builds die folgenden CTS-Testfälle für öffentliche APIs bestehen: /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts.

Gerätehersteller sollten außerdem mit ihren Modem-, eUICC-Chip- und eSIM-OS-Anbietern zusammenarbeiten, um zu bestätigen, 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-Fluss, der von der Mobilfunkanbieter-App ausgelöst wird und Nutzern ermöglicht, Profile zu wechseln.

Empfehlung für Mobilfunkanbieter

Damit Nutzer den Dienst nicht verlieren, wenn sie eSIM-Profile von einem Port zu einem anderen verschieben, empfehlen wir Mobilfunkanbietern, die folgenden Funktionen zu unterstützen:

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