Varios perfiles habilitados

Para dispositivos con Android 13 o versiones posteriores, Android admite varios perfiles habilitados (MEP) para eUICC. Esta función permite que los dispositivos para tener compatibilidad con dos tarjetas SIM mediante un solo chip eSIM, que puede tener varias tarjetas SIM y pueden conectarse a dos operadores diferentes al mismo tiempo. Dispositivo Los fabricantes deben trabajar con proveedores de SoC y de que los proveedores integren esta función en sus dispositivos.

Información general

En dispositivos que ejecutan Android 12 y versiones anteriores, AOSP proporciona compatibilidad limitada para permitir que una sola eSIM admita varios perfiles en el mismo tiempo. A pesar del importante ahorro de espacio y costos que ofrece la eSIM, esta la falta de compatibilidad con dos tarjetas SIM impide que los fabricantes de dispositivos adopten únicamente eSIM dispositivos. Para proporcionar compatibilidad con dos tarjetas SIM en un dispositivo que solo admite eSIM, el dispositivo Los fabricantes tienen que empaquetar dos elementos eSIM en el dispositivo, lo que aumenta los costos de listas de materiales (BOM), lo que genera una mala experiencia del usuario para la suscripción y administración de posturas. La función MEP disponible en AOSP desde Android 13 soluciona este problema.

Arquitectura eUICC

En esta sección, se describe la arquitectura de chip eSIM para dispositivos con MEP para diferentes versiones de Android y la arquitectura de chip eSIM para dispositivos sin MEP

Android 14

Para dispositivos con Android 14 o versiones posteriores, Android admite los dispositivos MEP-A1 y MEP-B para la selección de la raíz del dominio de seguridad de la entidad emisora (ISD-R) y el selección de puertos de 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: Se selecciona ISD-R en el puerto 0 (el puerto de comando es 0). perfiles seleccionados en el puerto eSIM 1 y versiones posteriores. Los comandos ES10 siempre están enviados al puerto 0, y el puerto de comando y el puerto de destino son siempre diferentes. La LPA selecciona el puerto.

    Modelo de selección de ISD-R de MEP-A1

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

  • MEP-B: ISD-R se selecciona en cualquier puerto y a cualquier puerto se le puede asignar un perfil. Los comandos para inhabilitar y habilitar se envían al puerto en el que el perfil debe estar habilitado o inhabilitado (cuando hay una actualización pendiente). El puerto de comando y destino es siempre el mismo.

    Modelo de selección de ISD-R de MEP-B

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

Android 13

En Android 13 o versiones posteriores, en dispositivos compatibles con MEP, la ranura de eSIM contiene varios puertos eUICC que pueden tener un puerto perfil. Como se muestra en la Figura 3, con esta arquitectura, un único eUICC (un solo ranura física) admite el modo de espera dual SIM dual (DSDS) gracias a que tiene cada puerto eUICC a una banda base de módem. La HAL y las APIs de Android 13 son Es independiente de la variante de MEP.

Arquitectura de chip eSIM compatible con MEP

Figura 3: Arquitectura de chip eSIM compatible con MEP (Android 13 o versiones posteriores)

Android 12 y versiones anteriores

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

Arquitectura de chip eSIM sin compatibilidad con MEP

Figura 4: Arquitectura de chip eSIM sin compatibilidad con MEP (Android 12 o menor)

Flujo de información de API para varios perfiles habilitados

En la Figura 5, se describe el flujo de información de MEP para eUICC Android 13 El framework de telefonía incluye las Clase UiccPort, que representa la estructura física en eUICC El La clase UiccPort se usa para todos los tipos de tarjetas SIM: SIM física (pSIM), SIM integrada (iSIM) y SIM incorporada (eSIM). Para un eUICC con varias un único objeto UiccSlot y un objeto UiccCard asignados a varias instancias UiccPort. Cada instancia de UiccPort puede vincularse, como máximo, a una Instancia UiccProfile. Este flujo permite que UiccPort se asigne a una ranura lógica y UiccSlot (física) ranura) para asignar a varias ranuras lógicas.

Flujo de información de MEP

Figura 5: Flujo de información para eUICC con asistencia de MEP

Implementación

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

Requisitos del HAL

Para admitir MEP para eUICC, implementa las siguientes APIs de HAL del AIDL de IRadio, ubicadas en /platform/hardware/interfaces/radio/aidl/aidl_api

Los dispositivos que ejecutan Android 14 o versiones posteriores deben usar la versión IRadio 2.1 de la HAL de aplicaciones, que usan MultipleEnabledProfileMode (modelo de selección ISD-R admitido por el módem o eUICC) y pasa la APDU de ES10 información de comando durante las operaciones de canal lógico de ICC.

Estado de la tarjeta

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

Para los dispositivos que ejecutan Android 14 o versiones posteriores, el módem debe aprobar la certificación Modo MEP con todos los eventos de CardStatus.

Estado de ranura de SIM

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

Para los dispositivos que ejecutan Android 14 o versiones posteriores, el módem debe aprobar la certificación Modo MEP con todos los eventos de CardStatus.

setSimSlotMapping

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

APIs que admiten MEP para eUICC

Dispositivos Android que admiten varios perfiles habilitados como parte del AOSP la pila de telefonía son necesarias para admitir las siguientes APIs.

Información de la tarjeta de Uicc

  • (Android 13 y versiones posteriores) isMultipleEnabledProfilesSupported : Muestra si este UICC admite MEP.
  • (Android 13 y versiones posteriores) getPorts: Resultado que se muestra la lista de todos los puertos posibles para un UICC en particular. Si el UICC es un pSIM o eSIM que no admite MEP, muestra una lista de un elemento.
  • (Obsoleto) getIccId: Muestra un ICCID. Porque un UICC puede tener más de un ICCID para los dispositivos con MEP, usa UiccPortInfo.getIccId() en su lugar.

(Android 13 y versiones posteriores) UiccPortInfo

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

Informacióndesuscripción

  • (Android 13 y versiones posteriores) getPortIndex: Muestra el índice del puerto en el que está habilitada la suscripción. Si el botón la suscripción está inhabilitada, muestra INVALID_PORT_ID -1.

EuiccManager

  • switchToSubscription: Cambia a una suscripción determinada. Se usa por apps que no tienen operador para las suscripciones activas. Cuando se la llama, la plataforma resuelve de forma interna el índice del puerto mediante una selección de tres opciones diálogo para inhabilitar la suscripción activa seleccionada si no hay puertos disponibles. No se deben usar las apps orientadas a Android 13 y versiones posteriores esta API para inhabilitar una suscripción pasando una solicitud ID de suscripción no válida; sino que deben usar switchToSubscription (agregado en Android 13) con el índice de puerto especificada.
  • (Android 13 y versiones posteriores) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback): Cambia a una suscripción determinada. Apps de llamadas con privilegios de operador a través de las suscripciones activas pueden especificar qué puerto habilitar la suscripción .
  • (Android 13 y versiones posteriores) isSimPortAvailable: Muestra si el índice del puerto de paso está disponible. Hay un puerto disponible si no tiene una suscripción habilitada o la app que realiza la llamada tiene privilegios de operador sobre la suscripción instalada en el puerto seleccionado.

EuiccService

  • (Android 13 y versiones posteriores) onSwitchToSubscriptionWithPort: Cambia a una suscripción determinada en un puerto especificado. Implementación de LPA debe ser compatible con Android 13 y versiones posteriores.

TelephonyManager

Interfaz de usuario

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

Flujo de usuarios para la suscripción de la SIM de MEP

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

Feature flags

Para admitir MEP, los dispositivos deben declarar las siguientes marcas de función:

Implementación de LPA

Para admitir MEP, asegúrate de que tu Página de destino implementación cumple los siguientes requisitos:

  • Implementa las APIs de EuiccService para admitir varios puertos.
  • Usa las APIs para seleccionar puertos y habilitar perfiles.
  • Proporciona una UX que permite que las apps de los operadores habiliten perfiles en los puertos seleccionados.

Validación

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

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

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

Recomendación para operadores

Para garantizar que los usuarios no pierdan el servicio cuando muevan los perfiles de eSIM de uno puerto a otro, recomendamos que los proveedores brinden asistencia para lo siguiente:

  • Asignación fluida de IMEI y SIM
  • Varios ICCID o SIM para cada identificador eUICC (EID)