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.
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.
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.
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.
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.
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ôtUiccPortInfo.getIccId()
.
(Android 13 ou version ultérieure) UiccPortInfo
getIccId
: Renvoie l'ICCID s'il existe un abonnement activé sur ce port.getPortIndex
: Renvoie l'index du port.getLogicalSlotIndex
: Renvoie l'index de pile de modem logique actif.
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é, renvoieINVALID_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éthodeswitchToSubscription
(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
- (Android 13 ou version ultérieure)
getSimApplicationState
: Renvoie une constante indiquant l'état de l'application de la carte. Cette API transmet à la fois un index d'emplacement physique et un index de port. LagetSimApplicationState(int physicalSlotIndex)
(obsolète) ne transmet que l'index de l'emplacement physique pour obtenirsimApplicationState
. - (Android 13 ou version ultérieure)
setSimSlotMapping(Collection<UiccSlotMapping> slots)
: Mappe les emplacements logiques sur des emplacements et des ports physiques. - (Android 13 ou version ultérieure)
Collection<UiccSlotMapping> getSimSlotMapping
: Récupère le mappage des emplacements logiques vers les emplacements de carte SIM physiques et les index de port.
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.
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)