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-Unterstützung mit einem einzelnen eSIM-Chip bieten, 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 mit ausschließlich 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 die Auswahl von 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. Der Befehlsport und der Zielport sind immer unterschiedlich. Der 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 verknüpft 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 (siehe Abbildung 4) kann im eSIM-Slot jeweils nur ein Profil aktiviert sein. DSDS wird auf diesen Geräten 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 einem einzelnen 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 Funktion für die Mehrfachausgabe implementieren. Außerdem finden Sie hier Details zu HAL-Anforderungen, APIs und der 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, 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 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 es sich bei der UICC um eine pSIM oder eSIM handelt, 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 für diesen Port ein Abo aktiviert 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

  • switchToSubscription:Wechselt zu einem bestimmten Abo. Wird von Apps verwendet, die bei aktiven Abos keine Berechtigung des Mobilfunkanbieters haben. Wenn die Plattform aufgerufen wird, wird der Portindex intern über ein Dialogfeld mit drei Auswahlmöglichkeiten aufgelöst, 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 (die in Android 13 hinzugefügt wurde) 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 auf dem ausgewählten Port installierte Abo hat.

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 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 den 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 die Implementierung des LPA 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 aktiviert werden 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 außerdem mit ihren Modem-, eUICC-Chip- und eSIM-Betriebssystemanbietern zusammenarbeiten, um sicherzustellen, 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 den Dienst nicht verlieren, wenn sie eSIM-Profile von einem Port auf einen anderen übertragen, empfehlen wir, dass Mobilfunkanbieter Folgendes unterstützen:

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