Vários perfis ativados

Para 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 chip 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 chipsset de eSIM para integrar esse recurso aos dispositivos deles.

Contexto

Em dispositivos com o Android 12 e versões anteriores, o AOSP oferece suporte limitado para que um único eSIM ofereça suporte a vários perfis ao mesmo tempo. Apesar da economia de espaço e custo que o eSIM oferece, essa falta de suporte a dois chips impede que os fabricantes de dispositivos adotem dispositivos somente para eSIM. Para oferecer suporte a dois chips em um dispositivo exclusivo para eSIM, os fabricantes precisam empacotar dois elementos de eSIM no dispositivo, o que aumenta os custos de BOM e leva a experiências ruins do usuário para o gerenciamento de assinaturas. O recurso MEP, disponível no AOSP no Android 13, resolve esse problema.

Arquitetura eUICC

Esta seção descreve a arquitetura do chip eSIM para dispositivos com MEP para diferentes versões do Android e a arquitetura do chip eSIM para dispositivos sem MEP.

Android 14

Para dispositivos com o Android 14 ou versões mais recentes, o Android oferece suporte às 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, são descritos os modelos de seleção de ISD-R dos 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 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 para a porta em que o perfil precisa ser ativado ou desativado (em que uma atualização está pendente). A porta de comando e a porta de destino são sempre as mesmas.

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

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

Android 13

No Android 13 ou versões mais recentes, em dispositivos com suporte a MEP, o slot do eSIM contém várias portas eUICC, em que a porta pode ter um perfil ativado. Conforme mostrado na Figura 3, com essa arquitetura, um único eUICC (um único slot físico) oferece suporte ao modo de espera duplo com dois chips (DSDS, na sigla em inglês) fazendo com que cada porta eUICC se conecte a uma baseband de modem. As APIs e HAL do Android 13 são independentes da variante MEP.

Arquitetura de chip de eSIM compatível com 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 o Android 12 ou versões anteriores sem o MEP, conforme mostrado na Figura 4, o slot de eSIM só oferece suporte a um único perfil ativado por vez, e o dispositivo não oferece suporte a DSDS.

Arquitetura de chip eSIM sem suporte a MEP

Figura 4.Arquitetura do chip eSIM sem suporte a MEP (Android 12 ou anterior)

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

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

Fluxo de informações do MEP

Figura 5. Fluxo de informações sobre eUICC com suporte ao MEP

Implementação

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

Requisitos de 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 o Android 14 ou versões mais recentes precisam usar a versão IRadio 2.1 das interfaces HAL, que usam MultipleEnabledProfileMode (modelo de seleção ID-R compatível com o modem ou eUICC) e transmitir informações de comando da APDU ES10 durante operações de canal lógico do ICC.

Status do cartão

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 especificado por SimPortSlotMapping.

Para dispositivos com o Android 14 ou mais recente, o modem precisa transmitir o modo MEP 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 do 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.

Para dispositivos com o Android 14 ou mais recente, o modem precisa transmitir o 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 e o índice de slot físico correspondentes. 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 com suporte ao MEP para eUICC

Os dispositivos Android que oferecem suporte a vários perfis ativados como parte da pilha de telefonia do AOSP precisam oferecer suporte às APIs abaixo.

UiccCardInfo

  • (Android 13 e versões mais recentes) isMultipleEnabledProfilesSupported: retorna se este UICC oferece suporte ao MEP.
  • (Android 13 e versões mais recentes) getPorts:retorna a lista de todas as portas possíveis para um UICC específico. Se o UICC for um pSIM ou eSIM que não oferece suporte a MEP, uma lista de um elemento será retornada.
  • (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, retornará INVALID_PORT_ID -1.

EuiccManager

  • switchToSubscription:muda para uma determinada assinatura. Usado por apps que não têm privilégios de operadora em assinaturas ativas. Quando chamada, a plataforma resolve internamente o índice de porta usando uma caixa de diálogo de seleção de três opções para desativar a assinatura ativa selecionada se não houver portas disponíveis. Os apps destinados ao Android 13 e versões mais recentes não podem usar essa API para desativar uma assinatura transmitindo um ID de assinatura inválido. Em vez disso, eles precisam usar o método switchToSubscription (adicionado no Android 13) com o índice de porta especificado.
  • (Android 13 e versões mais recentes) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback):muda para uma determinada assinatura. Chamar apps com privilégios de operadora sobre as assinaturas ativas pode especificar qual porta ativar a assinatura.
  • (Android 13 e versões mais recentes) isSimPortAvailable:retorna se o índice da porta de passagem está disponível. Uma porta está disponível se não tiver uma assinatura ativada ou se o app de chamada tiver privilégio de operadora sobre a assinatura instalada na porta selecionada.

EuiccService

  • (Android 13 e versões mais recentes) onSwitchToSubscriptionWithPort:alterna para uma determinada assinatura em uma porta especificada. A implementação da 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 o 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ário com uma caixa de diálogo de três opções que pode ser aplicada à assinatura, ativando fluxos de usuários no app Configurações. A Figura 6 mostra um exemplo desse fluxo de UX.

Fluxo do usuário para a assinatura do MEP SIM

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

Sinalizações de recursos

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

Implementação de LPA

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

  • Implementa as APIs do EuiccService para oferecer suporte a várias portas.
  • usa as APIs para selecionar portas e ativar perfis.
  • Oferece uma UX que permite que os apps das operadoras ativem perfis em portas selecionadas.

Validação

Para testar a 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, de chip eUICC e do SO eSIM para garantir que o dispositivo possa fazer o seguinte:

  • Dois perfis de eSIM podem ser ativados e conectados 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 que os usuários mudem de perfil.

Recomendação para operadoras

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

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