Plusieurs profils activés

Pour les appareils équipés d'Android 13 ou version ultérieure, Android prend en charge plusieurs profils activés (MEP) pour eUICC. Cette fonctionnalité permet aux appareils avoir la prise en charge de la double carte SIM avec une seule puce eSIM, qui peut avoir plusieurs cartes SIM et peuvent se connecter à deux opérateurs différents en même temps. Appareil les fabricants doivent travailler avec des fournisseurs de SoC et un chipset eSIM fournisseurs à intégrer cette fonctionnalité sur leurs appareils.

Arrière-plan

Sur les appareils équipés d'Android 12 ou version antérieure, AOSP fournit compatibilité limitée, car une seule eSIM peut prendre en charge plusieurs profils au niveau en même temps. Malgré l'espace et les économies considérables qu'offre une eSIM, l'absence de double carte SIM empêche les fabricants d'appareils d'adopter des cartes eSIM uniquement appareils. Pour fournir la prise en charge de la double carte SIM sur un appareil eSIM uniquement, l'appareil les fabricants doivent emballer deux éléments eSIM dans l'appareil, ce qui augmente les coûts liés à la nomenclature (BOM) et nuit à l'expérience utilisateur pour les abonnements gestion de la sécurité. La fonctionnalité MEP disponible dans AOSP à partir de Android 13 résout ce problème.

Architecture eUICC

Cette section décrit l'architecture de la puce eSIM pour les appareils avec MEP pour versions d'Android différentes et l'architecture de puce eSIM pour les appareils sans MEP.

Android 14

Pour les appareils équipés d'Android 14 ou version ultérieure, Android est compatible avec les normes MEP-A1 et MEP-B options de sélection de la racine du domaine de sécurité de l'émetteur (ISD-R) et du la sélection des ports eSIM comme spécifié dans GSMA SGP V22 3.0 Vous trouverez ci-dessous la description des modèles de sélection MEP-A1 et MEP-B ISD-R.

  • MEP-A1:ISD-R est sélectionné sur le port 0 (port de commande 0). sont sélectionnés sur les ports eSIM 1 et versions ultérieures. Les commandes ES10 sont toujours envoyés au port 0, et le port de commande et le port cible sont toujours différents. Le LPA sélectionne le port.

    Modèle de sélection MEP-A1 ISD-R

    Figure 1 : Modèle de sélection MEP-A1 ISD-R

  • MEP-B:le protocole ISD-R est sélectionné sur n'importe quel port et peut être associé à un port profil. Les commandes d'activation et de désactivation sont envoyées au port sur lequel le profil doit être activé ou désactivé (lorsqu'une actualisation est en attente). La le port de commande et le port cible est toujours le même.

    Modèle de sélection MEP-B ISD-R

    Figure 2. Modèle de sélection MEP-B ISD-R

Android 13

Sous Android 13 ou version ultérieure, sur les appareils compatibles avec la norme MEP, l'emplacement eSIM contient plusieurs ports eUICC sur lesquels un port peut être activé profil. Comme le montre la figure 3, avec cette architecture, un seul eUICC (un seul emplacement physique) prend en charge la double carte SIM (DSDS) en disposant de chaque port eUICC. à une bande de base de modem. Les API et HAL d'Android 13 sont Indépendante de la variante MEP.

Architecture de puce eSIM compatible avec MEP

Figure 3 : Architecture de puce eSIM compatible avec MEP (Android 13 ou version ultérieure)

Android 12 ou version antérieure

Pour les appareils équipés d'Android 12 ou version antérieure sans MEP, comme illustré à la figure 4, la L'emplacement eSIM ne prend en charge qu'un seul profil activé à la fois, et l'appareil ne sont pas compatibles avec le mode DSDS.

Architecture de puce eSIM non compatible avec MEP

Figure 4 : Architecture de puce eSIM non compatible avec MEP (Android 12 ou moins élevé)

Flux d'informations sur l'API pour plusieurs profils activés

La figure 5 décrit le flux d'informations pour MEP pour eUICC dans Android 13. Telephony Framework comprend UiccPort, qui représente la structure physique sur eUICC. La La classe UiccPort est utilisée pour tous les types de cartes SIM: SIM physique (pSIM), SIM intégrée (iSIM) et SIM intégrée (eSIM). Pour un eUICC avec plusieurs des ports, un objet UiccSlot et un objet UiccCard uniques correspondent plusieurs instances UiccPort. Chaque instance UiccPort ne peut être associée qu'à une seule instance UiccProfile instance. Ce flux permet à UiccPort de se mapper à un emplacement logique et UiccSlot (physique) emplacement) pour les mapper à plusieurs emplacements logiques.

Flux d'informations MEP

Figure 5. Flux d'informations pour eUICC compatible avec MEP

Implémentation

Cette section explique comment implémenter la fonctionnalité MEP et fournit des informations détaillées sur les exigences HAL, les API et l'interface utilisateur. Les fabricants d'appareils doivent travailler avec les fournisseurs de SoC et de chipsets eSIM pour prendre en charge MEP.

Exigences relatives aux HAL

Pour prendre en charge MEP pour eUICC, implémentez les API HAL IRadio AIDL suivantes, situées dans /platform/hardware/interfaces/radio/aidl/aidl_api

Les appareils équipés d'Android 14 ou version ultérieure doivent utiliser la version IRadio 2.1 de HAL. qui utilisent MultipleEnabledProfileMode (modèle de sélection IND-R compatible avec le modem ou l'eUICC) et transmettre les APDU ES10 des informations de commande lors des opérations du canal logique ICC.

État de la carte

Le modem doit être compatible avec CardStatus API en réponse à getIccCardStatusResponse . La réponse doit inclure l'index du port et l'index de l'emplacement physique spécifié par SimPortSlotMapping

Pour les appareils équipés d'Android 14 ou version ultérieure, le modem doit transmettre les valeurs Mode MEP avec tous les événements CardStatus.

État de l'emplacement SIM

Le modem doit être compatible avec SimSlotStatus API en réponse à getSimSlotsStatus . L'état de l'emplacement SIM comprend une série des SimPortInfo qui inclut l'index du port, l'ICCID du profil activé et l'état du port. Le modem doit renvoyer au moins deux objets SimPortInfo.

Pour les appareils équipés d'Android 14 ou version ultérieure, le modem doit transmettre les valeurs Mode MEP avec tous les événements CardStatus.

setSimSlotMapping

La setSimSlotMapping doit transmettre un tableau de SimPortSlotMapping L'index du tableau correspond à l'emplacement logique SimPortSlotMapping spécifie le port mappé et l'emplacement physique correspondants. de l'index. La méthode setSimSlotMapping définit le mappage entre les ports et les valeurs logiques. emplacements. L'application LPA utilise cette méthode pour sélectionner le port actif.

API compatibles avec MEP pour eUICC

Appareils Android compatibles avec plusieurs profils activés dans le cadre de l'AOSP de la pile téléphonique sont nécessaires pour prendre en charge les API suivantes.

Informations sur la carte

  • (Android 13 ou version ultérieure) isMultipleEnabledProfilesSupported : indique si cet UICC est compatible avec le MEP.
  • (Android 13 ou version ultérieure) getPorts: Renvoie la liste de tous les ports possibles pour un UICC particulier. Si l'UICC est une carte pSIM ou eSIM non compatible avec MEP, renvoie une liste d'un élément.
  • (Obsolète) getIccId: Renvoie un ICCID. Étant donné qu'un UICC peut avoir plusieurs ICCID pour les appareils avec MEP, utilisez plutôt UiccPortInfo.getIccId().

(Android 13 ou version ultérieure) UiccPortInfo

Informations sur l'abonnement

  • (Android 13 ou version ultérieure) getPortIndex: Renvoie l'index du port sur lequel l'abonnement est activé. Si le l'abonnement est désactivé, renvoie INVALID_PORT_ID -1.

EuiccManager

  • switchToSubscription: Passe à un abonnement donné. Utilisé par les applis sans opérateur droit sur les abonnements actifs. Lorsqu'elle est appelée, la plate-forme résout en interne l'index de port par le biais d'une sélection à trois boîte de dialogue pour désactiver l'abonnement actif sélectionné si aucun port n'est disponible. Les applications ciblant Android 13 ou version ultérieure ne doivent pas utiliser cette API pour désactiver un abonnement en transmettant une invalid subscription ID (ID d'abonnement non valide) Ils doivent utiliser la méthode switchToSubscription (ajoutée dans Android 13) avec l'index du port spécifié.
  • (Android 13 ou version ultérieure) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback): Passe à un abonnement donné. Appeler des applications disposant des privilèges de l'opérateur sur les abonnements actifs peuvent spécifier le port sur lequel activer l'abonnement activé.
  • (Android 13 ou version ultérieure) isSimPortAvailable: Indique si l'index de port transmis est disponible. Un port est disponible si aucun abonnement n'est activé ou si l'application appelante dispose d'un droit d'opérateur ; sur l'abonnement installé sur le port sélectionné.

EuiccService

  • (Android 13 ou version ultérieure) onSwitchToSubscriptionWithPort: Bascule vers un abonnement donné sur un port spécifié. Implémentation LPA doit être compatible avec Android 13 ou version ultérieure.

Gestionnaire de téléphonie

Interface utilisateur

Pour résoudre l'ambiguïté du choix des ports eSIM, sur les appareils compatibles avec le MEP, les utilisateurs doivent pouvoir désactiver l'un des abonnements actifs pour activer une nouvelle abonnement. Dans Android 13, AOSP inclut un flux utilisateur avec un modèle boîte de dialogue qui peuvent s'appliquer aux parcours utilisateur permettant d'activer les abonnements depuis l'application Paramètres. La figure 6 montre un exemple de ce flux d'expérience utilisateur.

Parcours utilisateur pour l'abonnement à une carte SIM MEP

Figure 6. Parcours utilisateur pour l'activation de l'abonnement SIM

Feature flags

Pour être compatibles avec la norme MEP, les appareils doivent déclarer les flags de fonctionnalité suivants:

Implémentation LPA

Pour assurer la compatibilité avec MEP, assurez-vous que votre LPA respecte les exigences suivantes:

  • Met en œuvre les API d'EuiccService pour prendre en charge plusieurs ports.
  • Utilise les API pour la sélection des ports et l'activation du profil.
  • Fournit une expérience utilisateur permettant aux applications d'opérateurs d'activer des profils sur les ports sélectionnés.

Validation

Pour tester votre implémentation de la fonctionnalité MEP, assurez-vous que les builds réussissent le test scénarios de test CTS suivants (pour les API publiques): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts

Les fabricants d'appareils doivent également utiliser leur modem, leur puce eUICC et leur système d'exploitation eSIM fournisseurs pour s'assurer que l'appareil peut effectuer les opérations suivantes:

  • Deux profils eSIM peuvent être activés et connectés à deux réseaux différents.
  • Les profils eSIM peuvent être activés et désactivés sur n'importe quel port eSIM.
  • Un flux d'expérience utilisateur déclenché par l'application de l'opérateur permet aux utilisateurs profils.

Recommandation pour les opérateurs

Pour que les utilisateurs ne perdent pas le service lorsqu'ils déplacent des profils eSIM depuis un vers un autre, nous recommandons aux opérateurs de fournir une assistance dans les cas suivants:

  • Mise en correspondance fluide du code IMEI et de la carte SIM
  • Plusieurs ICCID ou cartes SIM pour chaque identifiant eUICC (EID)