Vários perfis ativados

Em dispositivos com o Android 13 ou versões mais recentes, o Android oferece suporte a vários perfis ativados (MEPs) para eUICC. Esse recurso permite que os dispositivos tenham suporte a dois chips usando um único eSIM, que pode ter vários perfis de chip e se conectar a duas operadoras diferentes ao mesmo tempo. Os fabricantes de dispositivos precisam trabalhar com fornecedores de SoC e de chipset de eSIM para integrar esse recurso aos dispositivos.

Contexto

Em dispositivos com Android 12 e versões anteriores, o AOSP oferece suporte limitado para permitir que um único eSIM aceite vários perfis ao mesmo tempo. Apesar da economia significativa de espaço e custos que o eSIM oferece, essa falta de suporte a dois chips impede que os fabricantes de dispositivos adotem dispositivos somente com eSIM. Para oferecer suporte a dois chips em um dispositivo somente com eSIM, os fabricantes precisam incluir dois elementos de eSIM no dispositivo, o que aumenta os custos da lista de materiais (BOM, na sigla em inglês) e prejudica a experiência do usuário no gerenciamento de assinaturas. O recurso MEP disponível no AOSP desde o Android 13 resolve esse problema.

Arquitetura da eUICC

Nesta seção, descrevemos a arquitetura do chip eSIM para dispositivos com MEP em diferentes versões do Android e a arquitetura do chip eSIM para dispositivos sem MEP.

Android 14

Para dispositivos com Android 14 ou versões mais recentes, o Android oferece suporte para as opções MEP-A1 e MEP-B para a seleção de raiz do domínio de segurança do emissor (ISD-R) e a seleção de portas eSIM, conforme especificado em GSMA SGP V22 3.0. A seguir, descrevemos os modelos de seleção de ISD-R MEP-A1 e MEP-B.

  • MEP-A1:o ISD-R é selecionado na porta 0 (a porta de comando é 0) e os perfis são selecionados nas portas eSIM 1 e superiores. Os comandos ES10 são sempre enviados para a porta 0, e a porta de comando e a porta de destino são sempre diferentes. O LPA seleciona a porta.

    Modelo de seleção de ISD-R MEP-A1

    Figura 1. Modelo de seleção de ISD-R MEP-A1

  • MEP-B:o ISD-R é selecionado em qualquer porta, e qualquer porta pode receber um perfil. Os comandos de ativação e desativação são enviados à porta em que o perfil precisa ser ativado ou desativado (onde uma atualização está pendente). A porta de comando e a porta de destino são sempre as mesmas.

    Modelo de seleção MEP-B ISD-R

    Figura 2. Modelo de seleção MEP-B ISD-R

Android 13

No Android 13 ou versões mais recentes, em dispositivos compatíveis com MEP, o slot do eSIM contém várias portas eUICC, e cada uma delas pode ter um perfil ativado. Como mostrado na Figura 3, com essa arquitetura, um único eUICC (um único slot físico) oferece suporte a dois chips em modo de espera (DSDS) porque cada porta eUICC se vincula a uma banda de base do modem. A HAL e as APIs do Android 13 são independentes da variante MEP.

Arquitetura de chip eSIM com suporte a MEP

Figura 3: arquitetura do chip eSIM com suporte a MEP (Android 13 ou mais recente)

Android 12 e versões anteriores

Para dispositivos com Android 12 ou versões anteriores sem MEP, conforme mostrado na Figura 4, o slot de eSIM só aceita um perfil ativado por vez, e o dispositivo não é compatível com DSDS.

Arquitetura de chip eSIM sem suporte a MEP

Figura 4: arquitetura do chip eSIM sem suporte a MEP (Android 12 ou versões anteriores)

Fluxo de informações da API para vários perfis ativados

A Figura 5 descreve o fluxo de informações para MEP para eUICC no Android 13. O framework de telefonia inclui a classe UiccPort, que representa a estrutura física no eUICC. A classe UiccPort é usada para todos os tipos de chips: físico (pSIM), integrado (iSIM) e incorporado (eSIM). Para uma eUICC com várias portas, um único objeto UiccSlot e um objeto UiccCard são mapeados para várias instâncias UiccPort. Cada instância de UiccPort pode ser vinculada a no máximo uma instância de UiccProfile. Esse fluxo permite que UiccPort seja mapeado para um slot lógico e UiccSlot (slot físico) para vários slots lógicos.

Fluxo de informações do MEP

Figura 5. Fluxo de informações para eUICC com suporte a MEP

Implementação

Esta seção descreve como implementar o recurso MEP, incluindo detalhes sobre requisitos de HAL, APIs e interface do usuário. Os fabricantes de dispositivos precisam trabalhar com fornecedores de SoC e de chipsets de eSIM para oferecer suporte a MEP.

Requisitos da HAL

Para oferecer suporte ao MEP para eUICC, implemente as seguintes APIs IRadio AIDL HAL, localizadas em /platform/hardware/interfaces/radio/aidl/aidl_api.

Dispositivos com Android 14 ou versões mais recentes precisam usar a versão 2.1 das interfaces HAL do IRadio, que usam MultipleEnabledProfileMode (modelo de seleção ISD-R compatível com o modem ou eUICC) e transmitem informações de comando APDU ES10 durante operações de canal lógico ICC.

CardStatus

O modem precisa ser compatível com a API CardStatus como resposta ao método getIccCardStatusResponse. A resposta precisa incluir o índice da porta e o índice do slot físico especificados por SimPortSlotMapping.

Em dispositivos com o Android 14 ou versões mais recentes, o modem precisa passar pelo modo MEP compatível com todos os eventos CardStatus.

SimSlotStatus

O modem precisa ser compatível com a API SimSlotStatus como resposta ao método getSimSlotsStatus. O status do slot de SIM inclui uma matriz da interface SimPortInfo , que inclui o índice da porta, o ICCID do perfil ativado e o estado da porta. O modem precisa retornar pelo menos dois objetos SimPortInfo.

Em dispositivos com o Android 14 ou versões mais recentes, o modem precisa passar pelo modo MEP compatível com todos os eventos CardStatus.

setSimSlotMapping

O método setSimSlotMapping precisa transmitir uma matriz de SimPortSlotMapping. O índice da matriz é o slot lógico, e SimPortSlotMapping especifica a porta mapeada correspondente e o índice do slot físico. O método setSimSlotMapping define o mapeamento de portas para slots lógicos. O app LPA usa esse método para selecionar a porta ativa.

APIs que oferecem suporte a MEP para eUICC

Os dispositivos Android que oferecem suporte a vários perfis ativados como parte da pilha de telefonia do AOSP precisam ser compatíveis com as seguintes APIs.

UiccCardInfo

  • (Android 13 e versões mais recentes) isMultipleEnabledProfilesSupported : retorna se este UICC é compatível com MEP.
  • (Android 13 e versões mais recentes) getPorts:retorna a lista de todas as portas possíveis para um determinado UICC. Se o UICC for um pSIM ou eSIM que não oferece suporte a MEP, vai retornar uma lista de um elemento.
  • (Descontinuado) getIccId:retorna um ICCID. Como um UICC pode ter mais de um ICCID para dispositivos com MEP, use UiccPortInfo.getIccId().

(Android 13 e versões mais recentes) UiccPortInfo

SubscriptionInfo

  • (Android 13 e versões mais recentes) getPortIndex:retorna o índice da porta em que a assinatura está ativada. Se a assinatura estiver desativada, vai retornar INVALID_PORT_ID -1.

EuiccManager

EuiccService

  • (Android 13 e versões mais recentes) onSwitchToSubscriptionWithPort:muda para uma determinada assinatura em uma porta especificada. A implementação de LPA precisa oferecer suporte a isso no Android 13 e versões mais recentes.

TelephonyManager

Interface do usuário

Para resolver a ambiguidade da seleção de porta do eSIM, em dispositivos compatíveis com MEP, os usuários precisam desativar uma das assinaturas ativas para ativar uma nova assinatura. No Android 13, o AOSP inclui um fluxo de usuários com uma caixa de diálogo de três opções que pode ser aplicada aos fluxos de usuários de ativação de assinatura no app Configurações. A Figura 6 mostra um exemplo desse fluxo de UX.

Fluxo do usuário para assinatura de SIM do MEP

Figura 6. Fluxo do usuário para ativar a assinatura do chip

Flags de recursos

Para oferecer suporte ao MEP, os dispositivos precisam declarar as seguintes flags de recursos:

Implementação da LPA

Para oferecer suporte ao MEP, verifique se a implementação da LPA atende aos seguintes requisitos:

  • Implementa as APIs de EuiccService para oferecer suporte a várias portas.
  • Usa as APIs para seleção de porta e ativação de perfil.
  • Fornece uma UX que permite que os apps das operadoras ativem perfis em portas selecionadas.

Validação

Para testar sua implementação do recurso MEP, verifique se os builds passam nos seguintes casos de teste do CTS (para APIs públicas): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts.

Os fabricantes de dispositivos também precisam trabalhar com os fornecedores de modem, chip eUICC e SO do eSIM para garantir que o dispositivo possa fazer o seguinte:

  • Dois perfis de eSIM podem ser ativados e anexados a duas redes diferentes.
  • Os perfis de eSIM podem ser ativados e desativados em qualquer porta de eSIM.
  • Há um fluxo de UX acionado pelo app da operadora que permite aos usuários trocar de perfil.

Recomendação para transportadoras

Para garantir que os usuários não percam o serviço ao mover perfis de eSIM de uma porta para outra, recomendamos que as operadoras ofereçam suporte ao seguinte:

  • Mapeamento fluido de IMEI e SIM
  • Vários ICCIDs ou SIMs para cada identificador de eUICC (EID)