Múltiples perfiles habilitados

Para dispositivos con Android 13 o superior, Android admite múltiples perfiles habilitados (MEP) para eUICC. Esta característica permite que los dispositivos tengan soporte para SIM dual usando un solo chip eSIM, que puede tener múltiples perfiles SIM y puede conectarse a dos operadores diferentes al mismo tiempo. Los fabricantes de dispositivos deben trabajar con los proveedores de SoC y de chipsets eSIM para integrar esta función en sus dispositivos.

Fondo

En dispositivos con Android 12 y versiones anteriores, AOSP brinda soporte limitado para permitir que una sola eSIM admita múltiples perfiles al mismo tiempo. A pesar del importante ahorro de espacio y costos que ofrece eSIM, esta falta de compatibilidad con SIM dual impide que los fabricantes de dispositivos adopten dispositivos solo con eSIM. Para brindar compatibilidad con SIM dual en un dispositivo solo eSIM, los fabricantes de dispositivos deben incluir dos elementos eSIM en el dispositivo, lo que aumenta los costos de la lista de materiales (BOM) y genera malas experiencias de usuario en la gestión de suscripciones. La función MEP disponible en AOSP desde Android 13 soluciona este problema.

arquitectura eUICC

Esta sección describe la arquitectura del chip eSIM para dispositivos con MEP para diferentes versiones de Android y la arquitectura del chip eSIM para dispositivos sin MEP.

Androide 14

Para dispositivos con Android 14 o superior, Android admite las opciones MEP-A1 y MEP-B para la selección de la raíz del dominio de seguridad del emisor (ISD-R) y la selección de puertos eSIM como se especifica en GSMA SGP V22 3.0 . A continuación se describen los modelos de selección MEP-A1 y MEP-B ISD-R.

  • MEP-A1: ISD-R se selecciona en el puerto 0 (el puerto de comando es 0) y los perfiles se seleccionan en los puertos eSIM 1 y superiores. Los comandos de ES10 siempre se envían al puerto 0 y el puerto de comando y el puerto de destino siempre son diferentes. El LPA selecciona el puerto.

    Modelo de selección MEP-A1 ISD-R

    Figura 1. Modelo de selección MEP-A1 ISD-R

  • MEP-B: ISD-R se selecciona en cualquier puerto y a cualquier puerto se le puede asignar un perfil. Los comandos habilitar y deshabilitar se envían al puerto donde el perfil debe habilitarse o deshabilitarse (donde hay una actualización pendiente). El puerto de comando y el puerto de destino son siempre los mismos.

    Modelo de selección MEP-B ISD-R

    Figura 2. Modelo de selección MEP-B ISD-R

androide 13

En Android 13 o superior, en dispositivos compatibles con MEP, la ranura eSIM contiene múltiples puertos eUICC donde el puerto puede tener un perfil habilitado. Como se muestra en la Figura 3, con esta arquitectura, una única eUICC (una única ranura física) admite doble modo de espera de doble SIM (DSDS) al tener cada puerto eUICC vinculado a una banda base de módem. Android 13 HAL y las API son independientes de la variante MEP.

Arquitectura de chip eSIM con soporte MEP

Figura 3. Arquitectura del chip eSIM con soporte MEP (Android 13 o superior)

Android 12 y anteriores

Para dispositivos con Android 12 o versiones anteriores sin MEP, como se muestra en la Figura 4, la ranura eSIM solo admite un único perfil habilitado a la vez y el dispositivo no admite DSDS.

Arquitectura de chip eSIM sin soporte MEP

Figura 4. Arquitectura del chip eSIM sin soporte MEP (Android 12 o inferior)

Flujo de información API para múltiples perfiles habilitados

La Figura 5 describe el flujo de información para MEP para eUICC en Android 13. El marco de telefonía incluye la clase UiccPort , que representa la estructura física en eUICC. La clase UiccPort se utiliza para todo tipo de tarjetas SIM: SIM física (pSIM), SIM integrada (iSIM) y SIM integrada (eSIM). Para una eUICC con múltiples puertos, un único objeto UiccSlot y un objeto UiccCard se asignan a múltiples instancias UiccPort . Cada instancia UiccPort puede vincularse como máximo a una instancia UiccProfile . Este flujo permite que UiccPort se asigne a una ranura lógica y UiccSlot (ranura física) se asigne a múltiples ranuras lógicas.

Flujo de información del eurodiputado

Figura 5. Flujo de información para eUICC con soporte MEP

Implementación

Esta sección describe cómo implementar la función MEP, incluidos detalles sobre los requisitos de HAL, las API y la interfaz de usuario. Los fabricantes de dispositivos deberían trabajar con los proveedores de SoC y de conjuntos de chips eSIM para admitir MEP.

Requisitos HAL

Para admitir MEP para eUICC, implemente las siguientes API HAL de IRadio AIDL, ubicadas en /platform/hardware/interfaces/radio/aidl/aidl_api .

Los dispositivos que ejecutan Android 14 o superior deben usar la versión IRadio 2.1 de las interfaces HAL, que usan MultipleEnabledProfileMode (modelo de selección ISD-R compatible con el módem o eUICC) y pasan información de comando APDU ES10 durante las operaciones del canal lógico ICC.

Estado de la tarjeta

El módem debe admitir la API CardStatus como respuesta al método getIccCardStatusResponse . La respuesta debe incluir el índice del puerto y el índice de la ranura física especificados por SimPortSlotMapping .

Para dispositivos con Android 14 o superior, el módem debe pasar el modo MEP compatible con todos los eventos CardStatus.

EstadoSimSlot

El módem debe admitir la API SimSlotStatus como respuesta al método getSimSlotsStatus . El estado de la ranura SIM incluye una matriz de la interfaz SimPortInfo , que incluye el índice del puerto, el ICCID para el perfil habilitado y el estado del puerto. El módem debe devolver al menos dos objetos SimPortInfo .

Para dispositivos con Android 14 o superior, el módem debe pasar el modo MEP compatible con todos los eventos CardStatus.

setSimSlotMapping

El método setSimSlotMapping debe pasar una matriz de SimPortSlotMapping . El índice de la matriz es la ranura lógica y SimPortSlotMapping especifica el puerto asignado correspondiente y el índice de ranura física. El método setSimSlotMapping establece la asignación de puertos a ranuras lógicas. La aplicación LPA utiliza este método para seleccionar el puerto activo.

API que admiten MEP para eUICC

Los dispositivos Android que admiten múltiples perfiles habilitados como parte de la pila de telefonía AOSP deben admitir las siguientes API.

TarjetaUiccInfo

  • (Android 13 y superior) isMultipleEnabledProfilesSupported : devuelve si esta UICC es compatible con MEP.
  • (Android 13 y superior) getPorts : devuelve la lista de todos los puertos posibles para una UICC en particular. Si la UICC es una pSIM o eSIM que no admite MEP, devuelve una lista de un elemento.
  • (Obsoleto) getIccId : Devuelve un ICCID. Debido a que una UICC puede tener más de un ICCID para dispositivos con MEP, use UiccPortInfo.getIccId() en su lugar.

(Android 13 y superior) UiccPortInfo

  • getIccId : Devuelve el ICCID si hay una suscripción habilitada en este puerto.
  • getPortIndex : Devuelve el índice del puerto.
  • getLogicalSlotIndex : Devuelve el índice de pila del módem lógico activo.

Información de suscripción

  • (Android 13 y superior) getPortIndex : devuelve el índice del puerto en el que está habilitada la suscripción. Si la suscripción está deshabilitada, devuelve INVALID_PORT_ID -1 .

Administrador de Euicc

  • switchToSubscription : cambia a una suscripción determinada. Usado por aplicaciones que no tienen privilegios de operador en suscripciones activas. Cuando se llama, la plataforma resuelve internamente el índice de puertos a través de un cuadro de diálogo de selección de tres opciones para deshabilitar la suscripción activa seleccionada si no hay puertos disponibles. Las aplicaciones orientadas a Android 13 y versiones posteriores no deben usar esta API para deshabilitar una suscripción pasando un ID de suscripción no válido ; en su lugar, deben usar el método switchToSubscription (agregado en Android 13) con el índice de puerto especificado.
  • (Android 13 y superior) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) : cambia a una suscripción determinada. Llamar a aplicaciones con privilegios de operador sobre las suscripciones activas puede especificar en qué puerto habilitar la suscripción.
  • (Android 13 y superior) isSimPortAvailable : devuelve si el índice del puerto de paso está disponible. Un puerto está disponible si no tiene ninguna suscripción habilitada o si la aplicación de llamadas tiene privilegios de operador sobre la suscripción instalada en el puerto seleccionado.

Servicio Euicc

  • (Android 13 y superior) onSwitchToSubscriptionWithPort : cambia a una suscripción determinada en un puerto específico. La implementación de LPA debe admitir esto en Android 13 y versiones posteriores.

Administrador de telefonía

Interfaz de usuario

Para resolver la ambigüedad de la selección del puerto eSIM, en dispositivos compatibles con MEP, los usuarios deben poder desactivar una de las suscripciones activas para habilitar una nueva suscripción. En Android 13, AOSP incluye un flujo de usuario con un cuadro de diálogo de tres opciones que se puede aplicar a la suscripción y permite flujos de usuario desde la aplicación Configuración. La Figura 6 muestra un ejemplo de este flujo de UX.

Flujo de usuarios para suscripción SIM MEP

Figura 6. Flujo de usuarios para habilitar la suscripción SIM

Banderas de características

Para admitir MEP, los dispositivos deben declarar las siguientes marcas de características:

Implementación de LPA

Para respaldar MEP, asegúrese de que su implementación de LPA cumpla con los siguientes requisitos:

  • Implementa las API de EuiccService para admitir múltiples puertos.
  • Utiliza las API para la selección de puertos y la habilitación de perfiles.
  • Proporciona UX que permite que las aplicaciones de los operadores habiliten perfiles en puertos seleccionados.

Validación

Para probar su implementación de la función MEP, asegúrese de que las compilaciones pasen los siguientes casos de prueba CTS (para API públicas): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts .

Los fabricantes de dispositivos también deben trabajar con sus proveedores de módem, chip eUICC y sistema operativo eSIM para garantizar que el dispositivo pueda hacer lo siguiente:

  • Se pueden habilitar y conectar dos perfiles eSIM a dos redes diferentes.
  • Los perfiles eSIM se pueden activar y desactivar en cualquier puerto eSIM.
  • Hay un flujo de UX activado por la aplicación del operador que permite a los usuarios cambiar de perfil.

Recomendación para transportistas

Para garantizar que los usuarios no pierdan el servicio cuando mueven perfiles eSIM de un puerto a otro, recomendamos que los operadores brinden soporte para lo siguiente:

  • Mapeo fluido de IMEI y SIM
  • Múltiples ICCID o SIM para cada identificador eUICC (EID)