Mehrere aktivierte Profile

Auf Geräten mit Android 13 oder höher unterstützt Android mehrere aktivierte Profile (Multiple Enabled Profiles, MEPs) für eUICCs. Mit dieser Funktion können Geräte Dual-SIM mit einem einzelnen 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 eingeschränkte Unterstützung für die gleichzeitige Verwendung mehrerer Profile auf einer einzelnen eSIM. Trotz der erheblichen Platz- und Kosteneinsparungen, die eSIM bietet, verhindert das Fehlen der Dual-SIM-Unterstützung, dass Gerätehersteller Geräte nur mit eSIM anbieten. Um Dual-SIM-Unterstützung auf einem Gerät mit nur eSIM zu ermöglichen, müssen Gerätehersteller zwei eSIM-Elemente in das Gerät einbauen. Das erhöht die Materialkosten und führt zu einer schlechten Nutzererfahrung bei der Aboverwaltung. 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

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

  • MEP-A1:ISD-R ist auf Port 0 ausgewählt (Befehlsport ist 0) und Profile sind 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. Die LPA wählt den Port aus.

    MEP-A1 ISD-R-Auswahlmodell

    Abbildung 1: MEP-A1 ISD-R-Auswahlmodell

  • MEP-B:ISD-R ist 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, an dem das Profil aktiviert oder deaktiviert werden muss (an dem 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-Slot 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) mit einer einzelnen eUICC (einem einzelnen physischen Slot), indem jeder eUICC-Port mit einem Modem-Basisband verbunden wird. Android 13 HAL und APIs sind unabhängig von der MEP-Variante.

eSIM-Chiparchitektur mit MEP-Unterstützung

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

Android 12 und niedriger

Auf Geräten mit Android 12 oder niedriger ohne MEP wird im eSIM-Slot jeweils nur ein aktiviertes Profil unterstützt (siehe Abbildung 4). Das bedeutet, dass das Gerät DSDS nicht unterstützt.

eSIM-Chiparchitektur ohne MEP-Unterstützung

Abbildung 4: eSIM-Chiparchitektur ohne MEP-Unterstützung (Android 12 oder niedriger)

API-Informationsfluss für mehrere aktivierte Profile

Abbildung 5 zeigt den Informationsfluss für MEP für eUICC in Android 13. Das Telefonie-Framework enthält die Klasse UiccPort, die die physische Struktur auf der eUICC darstellt. Die Klasse UiccPort wird für alle Arten von SIM-Karten verwendet: physische SIM (pSIM), integrierte SIM (iSIM) und eingebettete SIM (eSIM). Bei einer eUICC mit mehreren Ports werden einem einzelnen UiccSlot-Objekt und UiccCard-Objekt mehrere UiccPort-Instanzen zugeordnet. Jede UiccPort-Instanz kann mit maximal einer UiccProfile-Instanz verknüpft werden. In diesem Ablauf kann UiccPort einem logischen Slot und UiccSlot (physischer Slot) mehreren logischen Slots zugeordnet werden.

MEP-Informationsfluss

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

Implementierung

In diesem Abschnitt wird beschrieben, wie Sie die MEP-Funktion implementieren. Er enthält Details zu HAL-Anforderungen, APIs und Benutzeroberfläche. Gerätehersteller sollten mit SoC- und eSIM-Chipsatzanbietern zusammenarbeiten, um MEP zu unterstützen.

HAL-Anforderungen

Zur Unterstützung von MEP für eUICC müssen Sie die folgenden IRadio AIDL HAL-APIs implementieren, die sich in /platform/hardware/interfaces/radio/aidl/aidl_api befinden.

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 der eUICC unterstützt wird) verwenden und ES10-APDU-Befehlsinformationen während der ICC-Operationen für logische Kanäle übergeben.

CardStatus

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

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 Methode getSimSlotsStatus unterstützen. Der SIM-Slot-Status enthält ein Array der SimPortInfo-Schnittstelle, die 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 Methode setSimSlotMapping muss ein Array von SimPortSlotMapping übergeben. Der Index des Arrays ist der logische Slot und SimPortSlotMapping gibt den entsprechenden zugeordneten Port und den physischen Slotindex an. Mit der Methode setSimSlotMapping wird die Zuordnung von Ports zu logischen Slots festgelegt. Die LPA-App verwendet diese Methode, um den aktiven Port auszuwählen.

APIs zur Unterstützung von MEP für eUICCs

Android-Geräte, die mehrere aktivierte Profile im Rahmen 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 Modemstack-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

  • switchToSubscription:Wechselt zu einem bestimmten Abo. Wird von Apps verwendet, die bei aktiven Abos keine Berechtigung des Mobilfunkanbieters haben. Wenn die Funktion aufgerufen wird, löst die Plattform den Portindex intern über ein Dialogfeld mit drei Auswahlmöglichkeiten auf, um das ausgewählte aktive Abo zu deaktivieren, wenn keine Ports verfügbar sind. Apps, die auf Android 13 und höher ausgerichtet sind, dürfen diese API nicht verwenden, um ein Abo durch Übergeben einer ungültigen Abo-ID zu deaktivieren. Stattdessen müssen sie die Methode switchToSubscription (in Android 13 hinzugefügt) mit dem angegebenen Portindex verwenden.
  • (Android 13 und höher) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback): Wechselt zu einem bestimmten Abo. Anruf-Apps mit Betreiberberechtigung für die aktiven Abos können angeben, auf welchem Port das Abo 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 kein Abo aktiviert ist oder die Anruf-App das Betreiberprivileg für das Abo hat, das auf dem ausgewählten Port installiert ist.

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 Unklarheit bei der Auswahl des eSIM-Ports zu beheben, 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 Dialogfeld mit drei Auswahlmöglichkeiten, das auf Nutzerflüsse zum Aktivieren von Abos in der App „Einstellungen“ angewendet werden kann. Abbildung 6 zeigt ein Beispiel für diesen UX-Ablauf.

User-Flow für das MEP SIM-Abo

Abbildung 6 User-Flow zum Aktivieren eines SIM-Abos

Funktions-Flags

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

LPA-Implementierung

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

  • Implementiert die APIs aus EuiccService zur Unterstützung mehrerer Ports.
  • Verwendet die APIs für die Auswahl des Ports und die Aktivierung des Profils.
  • Bietet eine Benutzeroberfläche, über die Mobilfunkanbieterprofile auf ausgewählten Ports aktivieren können.

Zertifizierungsstufe

Wenn Sie Ihre Implementierung des MEP-Features testen möchten, müssen die Builds die folgenden CTS-Testläufe (für öffentliche APIs) bestehen: /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts.

Gerätehersteller sollten sich auch mit ihren Modem-, eUICC-Chip- und eSIM-Betriebssystemanbietern in Verbindung setzen, um zu bestätigen, dass das Gerät Folgendes kann:

  • Es können zwei eSIM-Profile aktiviert und mit zwei verschiedenen Netzwerken verbunden werden.
  • eSIM-Profile können auf jedem eSIM-Port aktiviert und deaktiviert werden.
  • Es gibt einen UX-Ablauf, der durch die Carrier-App ausgelöst wird und es Nutzern ermöglicht, Profile zu wechseln.

Empfehlung für Mobilfunkanbieter

Damit Nutzer beim Übertragen von eSIM-Profilen von einem Port auf einen anderen nicht den Dienst verlieren, empfehlen wir, dass Mobilfunkanbieter Unterstützung für Folgendes anbieten:

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