Vários perfis ativados

Para dispositivos com Android 13 ou superior, o Android oferece suporte a vários perfis habilitados (MEPs) para eUICC. Este recurso permite que os dispositivos tenham suporte dual SIM usando um único chip eSIM, que pode ter vários perfis SIM e se conectar a duas operadoras diferentes ao mesmo tempo. Os fabricantes de dispositivos devem trabalhar com fornecedores de SoC e de chipset eSIM para integrar esse recurso em seus dispositivos.

Fundo

Em dispositivos com Android 12 e inferior, o AOSP oferece suporte limitado ao permitir que um único eSIM ofereça suporte a vários perfis ao mesmo tempo. Apesar da significativa economia de espaço e custos que o eSIM oferece, essa falta de suporte dual SIM impede que os fabricantes de dispositivos adotem dispositivos somente eSIM. Para fornecer suporte dual SIM em um dispositivo somente eSIM, os fabricantes de dispositivos precisam incluir dois elementos eSIM no dispositivo, o que aumenta os custos da lista de materiais (BOM) e leva a experiências ruins do usuário no 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.

Andróide 14

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

  • MEP-A1: 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 MEP-A1 ISD-R

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

  • MEP-B: ISD-R é selecionado em qualquer porta e qualquer porta pode receber um perfil. Os comandos enable e disable são enviados para a porta onde o perfil precisa ser habilitado ou desabilitado (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

Andróide 13

No Android 13 ou superior, em dispositivos compatíveis com MEP, o slot eSIM contém várias portas eUICC onde a porta pode ter um perfil ativado. Conforme mostrado na Figura 3, com esta arquitetura, um único eUICC (um único slot físico) suporta dual SIM dual standby (DSDS), tendo cada porta eUICC vinculada a uma banda base de modem. HAL e APIs do Android 13 são independentes da variante MEP.

Arquitetura de chip eSIM com suporte MEP

Figura 3. Arquitetura do chip eSIM com suporte MEP (Android 13 ou superior)

Android 12 e inferior

Para dispositivos com Android 12 ou inferior sem MEP, conforme mostrado na Figura 4, o slot eSIM suporta apenas um único perfil habilitado por vez e o dispositivo não suporta DSDS.

Arquitetura de chip eSIM sem suporte MEP

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

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. A estrutura de telefonia inclui a classe UiccPort , que representa a estrutura física no eUICC. A classe UiccPort é usada para todos os tipos de cartões SIM: SIM físico (pSIM), SIM integrado (iSIM) e SIM incorporado (eSIM). Para um eUICC com múltiplas portas, um único objeto UiccSlot e um objeto UiccCard são mapeados para múltiplas instâncias UiccPort . Cada instância UiccPort pode vincular no máximo uma instância UiccProfile . Este fluxo permite que UiccPort mapeie para um slot lógico e UiccSlot (slot físico) mapeie para vários slots lógicos.

Fluxo de informação dos eurodeputados

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

Implementação

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

Requisitos HAL

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

Dispositivos com Android 14 ou superior devem usar a versão IRadio 2.1 das interfaces HAL, que usam MultipleEnabledProfileMode (modelo de seleção ISD-R suportado pelo modem ou eUICC) e passam informações de comando ES10 APDU durante operações de canal lógico ICC.

Status do cartão

O modem deve suportar a API CardStatus como resposta ao método getIccCardStatusResponse . A resposta deve incluir o índice da porta e o índice do slot físico especificado por SimPortSlotMapping .

Para dispositivos com Android 14 ou superior, o modem deve passar pelo modo MEP compatível com todos os eventos CardStatus.

SimSlotStatus

O modem deve suportar a API SimSlotStatus como resposta ao método getSimSlotsStatus . O status do slot SIM inclui uma matriz da interface SimPortInfo , que inclui o índice da porta, o ICCID do perfil habilitado e o estado da porta. O modem deve retornar pelo menos dois objetos SimPortInfo .

Para dispositivos com Android 14 ou superior, o modem deve passar pelo modo MEP compatível com todos os eventos CardStatus.

setSimSlotMapping

O método setSimSlotMapping deve passar um array 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 aplicativo LPA usa esse método para selecionar a porta ativa.

APIs que suportam MEP para eUICC

Os dispositivos Android que oferecem suporte a vários perfis habilitados como parte da pilha de telefonia AOSP são necessários para oferecer suporte às APIs a seguir.

UiccCardInfo

  • (Android 13 e superior) isMultipleEnabledProfilesSupported : retorna se este UICC oferece suporte a MEP.
  • (Android 13 e superior) 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, retornará uma lista de um elemento.
  • (Obsoleto) getIccId : Retorna um ICCID. Como um UICC pode ter mais de um ICCID para dispositivos com MEP, use UiccPortInfo.getIccId() .

(Android 13 e superior) UiccPortInfo

Informações de assinatura

  • (Android 13 e superior) getPortIndex : retorna o índice da porta na qual a assinatura está habilitada. Se a assinatura estiver desabilitada, retornará INVALID_PORT_ID -1 .

EuiccManager

  • switchToSubscription : Muda para uma determinada assinatura. Usado por aplicativos que não têm privilégio de operadora em assinaturas ativas. Quando chamada, a plataforma resolve internamente o índice de porta por meio de uma caixa de diálogo de seleção de três opções para desabilitar a assinatura ativa selecionada se não houver portas disponíveis. Os apps direcionados ao Android 13 e versões posteriores não devem usar essa API para desativar uma assinatura passando um ID de assinatura inválido . em vez disso, eles devem usar o método switchToSubscription (adicionado no Android 13) com o índice da porta especificado.
  • (Android 13 e superior) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) : alterna para uma determinada assinatura. Chamar aplicativos com privilégio de operadora sobre as assinaturas ativas pode especificar em qual porta ativar a assinatura.
  • (Android 13 e superior) isSimPortAvailable : retorna se o índice da porta de passagem está disponível. Uma porta estará disponível se não tiver nenhuma assinatura habilitada ou se o aplicativo de chamada tiver privilégio de operadora sobre a assinatura instalada na porta selecionada.

EuiccServiço

  • (Android 13 e superior) onSwitchToSubscriptionWithPort : alterna para uma determinada assinatura em uma porta especificada. A implementação da LPA deve oferecer suporte a isso no Android 13 e versões posteriores.

Gerenciador de Telefonia

Interface de usuário

Para resolver a ambigüidade da seleção da porta eSIM, em dispositivos que suportam MEP, os usuários devem ser capazes de desabilitar uma das assinaturas ativas para habilitar 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, permitindo fluxos de usuário no aplicativo Configurações. A Figura 6 mostra um exemplo desse fluxo de UX.

Fluxo de usuários para assinatura MEP SIM

Figura 6. Fluxo de usuários para ativar a assinatura do SIM

Sinalizadores de recursos

Para oferecer suporte ao MEP, os dispositivos devem declarar os seguintes sinalizadores de recursos:

Implementação da LPA

Para apoiar o MEP, certifique-se de que a implementação do seu LPA atenda aos seguintes requisitos:

  • Implementa as APIs do EuiccService para suportar múltiplas portas.
  • Usa as APIs para seleção de porta e ativação de perfil.
  • Fornece UX permitindo que aplicativos de operadoras habilitem perfis em portas selecionadas.

Validação

Para testar sua implementação do recurso MEP, certifique-se de que as compilações passem nos seguintes casos de teste CTS (para APIs públicas): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts .

Os fabricantes de dispositivos também devem trabalhar com seus fornecedores de modem, chip eUICC e sistema operacional eSIM para garantir que o dispositivo possa fazer o seguinte:

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

Recomendação para operadoras

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

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