Più profili abilitati

Per i dispositivi con Android 13 o versioni successive, Android supporta più profili abilitati (MEP) per eUICC. Questa funzionalità consente ai dispositivi di supportare la dual SIM utilizzando un singolo chip eSIM, che può avere più profili SIM e connettersi a due operatori diversi contemporaneamente. I produttori di dispositivi devono collaborare con i fornitori di SoC e i fornitori di chipset eSIM per integrare questa funzionalità nei loro dispositivi.

Sfondo

Sui dispositivi con Android 12 e versioni precedenti, AOSP fornisce un supporto limitato per consentire a una singola eSIM di supportare più profili contemporaneamente. Nonostante i notevoli risparmi di spazio e costi offerti dalla eSIM, questa mancanza di supporto per la dual SIM impedisce ai produttori di dispositivi di adottare dispositivi solo eSIM. Per fornire il supporto per la dual SIM su un dispositivo solo eSIM, i produttori di dispositivi devono inserire due elementi eSIM nel dispositivo, il che aumenta i costi della distinta base (BOM) e comporta esperienze utente scadenti per la gestione degli abbonamenti. La funzionalità MEP disponibile in AOSP a partire da Android 13 risolve questo problema.

Architettura eUICC

Questa sezione descrive l'architettura del chip eSIM per i dispositivi con MEP per diverse versioni di Android e l'architettura del chip eSIM per i dispositivi senza MEP.

Android 14

Per i dispositivi con Android 14 o versioni successive, Android supporta le opzioni MEP-A1 e MEP-B per la selezione della radice del dominio di sicurezza dell'emittente (ISD-R) e la selezione delle porte eSIM come specificato in GSMA SGP V22 3.0. Di seguito vengono descritti i modelli di selezione ISD-R MEP-A1 e MEP-B:

  • MEP-A1: ISD-R è selezionato sulla porta 0 (la porta di comando è 0) e i profili sono selezionati sulle porte eSIM 1 e successive. I comandi ES10 vengono sempre inviati alla porta 0 e la porta di comando e la porta di destinazione sono sempre diverse. LPA seleziona la porta.

    Modello di selezione MEP-A1 ISD-R

    Figura 1. Modello di selezione ISD-R MEP-A1

  • MEP-B: ISD-R è selezionato su qualsiasi porta e a qualsiasi porta può essere assegnato un profilo. I comandi di attivazione e disattivazione vengono inviati alla porta in cui è necessario attivare o disattivare il profilo (dove è in attesa un aggiornamento). La porta di comando e la porta di destinazione sono sempre le stesse.

    Modello di selezione MEP-B ISD-R

    Figura 2. Modello di selezione ISD-R MEP-B

Android 13

In Android 13 o versioni successive, sui dispositivi che supportano MEP, lo slot eSIM contiene più porte eUICC in cui ogni porta può avere un profilo abilitato. Come mostrato nella Figura 3, con questa architettura, una singola eUICC (un singolo slot fisico) supporta la dual SIM dual standby (DSDS) facendo in modo che ogni porta eUICC si colleghi a una banda base del modem. L'HAL e le API di Android 13 sono indipendenti dalla variante MEP.

Architettura del chip eSIM con supporto MEP

Figura 3. Architettura del chip eSIM con supporto MEP (Android 13 o versioni successive)

Android 12 e versioni precedenti

Per i dispositivi con Android 12 o versioni precedenti senza MEP, come mostrato nella Figura 4, lo slot eSIM supporta un solo profilo abilitato alla volta. Ciò significa che il dispositivo non può supportare DSDS.

Architettura del chip eSIM senza supporto MEP

Figura 4. Architettura del chip eSIM senza supporto MEP (Android 12 o versioni precedenti)

Flusso di informazioni API per più profili abilitati

La Figura 5 descrive il flusso di informazioni per MEP per eUICC in Android 13. Il framework di telefonia include la classe UiccPort, che rappresenta la struttura fisica su eUICC. La classe UiccPort viene utilizzata per tutti i tipi di schede SIM: SIM fisica (pSIM), SIM integrata (iSIM) e SIM incorporata (eSIM). Per una eUICC con più porte, un singolo oggetto UiccSlot e un oggetto UiccCard vengono mappati a più istanze UiccPort. Ogni istanza UiccPort può essere collegata a al massimo un'istanza UiccProfile. Questo flusso consente a UiccPort di eseguire il mapping a uno slot logico e a UiccSlot (slot fisico) di eseguire il mapping a più slot logici.

Flusso di informazioni MEP

Figura 5. Flusso di informazioni per eUICC con supporto MEP

Implementazione

Questa sezione descrive come implementare la funzionalità MEP, inclusi i dettagli sui requisiti HAL, le API e l'interfaccia utente. I produttori di dispositivi devono collaborare con i fornitori di SoC e i fornitori di chipset eSIM per supportare MEP.

Requisiti HAL

Per supportare MEP per eUICC, implementa le seguenti API HAL IRadio AIDL, che si trovano in /platform/hardware/interfaces/radio/aidl/aidl_api.

I dispositivi con Android 14 o versioni successive devono utilizzare la versione IRadio 2.1 delle interfacce HAL, che utilizzano MultipleEnabledProfileMode (modello di selezione ISD-R supportato dal modem o da eUICC) e trasmettono le informazioni sui comandi APDU ES10 durante le operazioni del canale logico ICC.

CardStatus

Il modem deve supportare l'API CardStatus come risposta al metodo getIccCardStatusResponse. La risposta deve includere l'indice della porta e l'indice dello slot fisico specificati da SimPortSlotMapping.

Per i dispositivi con Android 14 o versioni successive, il modem deve trasmettere la modalità MEP supportata con tutti gli eventi CardStatus.

SimSlotStatus

Il modem deve supportare l'API SimSlotStatus come risposta al metodo getSimSlotsStatus. Lo stato dello slot SIM include un array dell' SimPortInfo interfaccia, che include l'indice della porta, l'ICCID per il profilo abilitato e lo stato della porta. Il modem deve restituire almeno due oggetti SimPortInfo.

Per i dispositivi con Android 14 o versioni successive, il modem deve trasmettere la modalità MEP supportata con tutti gli eventi CardStatus.

setSimSlotMapping

Il metodo setSimSlotMapping deve trasmettere un array di SimPortSlotMapping. L'indice dell'array è lo slot logico e SimPortSlotMapping specifica l'indice della porta e dello slot fisico mappati corrispondenti. Il metodo setSimSlotMapping imposta il mapping dalle porte agli slot logici. L'app LPA utilizza questo metodo per selezionare la porta attiva.

API che supportano MEP per eUICC

I dispositivi Android che supportano più profili abilitati come parte dello stack di telefonia AOSP devono supportare le seguenti API.

UiccCardInfo

  • (Android 13 e versioni successive) isMultipleEnabledProfilesSupported: restituisce un valore che indica se questa UICC supporta MEP.
  • (Android 13 e versioni successive) getPorts: restituisce l'elenco di tutte le porte possibili per una determinata UICC. Se la UICC è una pSIM o una eSIM che non supporta MEP, restituisce un elenco di un elemento.
  • (Deprecata) getIccId: restituisce un ICCID. Poiché una UICC può avere più di un ICCID per i dispositivi con MEP, utilizza invece UiccPortInfo.getIccId().

(Android 13 e versioni successive) UiccPortInfo

  • getIccId: restituisce l'ICCID se è presente un abbonamento abilitato su questa porta.
  • getPortIndex: restituisce l'indice della porta.
  • getLogicalSlotIndex: restituisce l'indice dello stack del modem logico attivo.

SubscriptionInfo

  • (Android 13 e versioni successive) getPortIndex: restituisce l'indice della porta su cui è abilitato l'abbonamento. Se l'abbonamento è disattivato, restituisce INVALID_PORT_ID -1.

EuiccManager

  • switchToSubscription: passa a un determinato abbonamento. Utilizzato dalle app che non dispongono del privilegio dell'operatore sugli abbonamenti attivi. Quando viene chiamata, la piattaforma risolve internamente l'indice della porta tramite una selezione a tre scelte dialogo per disattivare l'abbonamento attivo selezionato se non sono disponibili porte. Le app destinate ad Android 13 e versioni successive non devono utilizzare questa API per disattivare un abbonamento passando un ID abbonamento non valido; devono invece utilizzare il metodo switchToSubscription (aggiunto in Android 13) con l'indice della porta specificato.
  • (Android 13 e versioni successive) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback): Passa a un determinato abbonamento. Le app che chiamano con il privilegio dell'operatore sugli abbonamenti attivi possono specificare la porta su cui abilitare l'abbonamento.
  • (Android 13 e versioni successive) isSimPortAvailable: restituisce un valore che indica se l'indice della porta di passaggio è disponibile. Una porta è disponibile se non ha abbonamenti abilitati o se l'app di chiamate ha il privilegio dell'operatore sull'abbonamento installato sulla porta selezionata.

EuiccService

  • (Android 13 e versioni successive) onSwitchToSubscriptionWithPort: passa a un determinato abbonamento su una porta specificata. L'implementazione di LPA deve supportare questa funzionalità su Android 13 e versioni successive.

TelephonyManager

Interfaccia utente

Per risolvere l'ambiguità della selezione della porta eSIM, sui dispositivi che supportano MEP, gli utenti devono essere in grado di disattivare uno degli abbonamenti attivi per abilitare un nuovo abbonamento. In Android 13, AOSP include un flusso utente con una finestra di dialogo a tre scelte che può essere applicata ai flussi utente di attivazione dell'abbonamento dall'app Impostazioni. La Figura 6 mostra un esempio di questo flusso UX.

Flusso utente per l'abbonamento alla SIM MEP

Figura 6. Flusso utente per l'attivazione dell'abbonamento SIM

Flag funzionalità

Per supportare MEP, i dispositivi devono dichiarare i seguenti flag funzionalità:

Implementazione di LPA

Per supportare MEP, assicurati che l'implementazione di LPA soddisfi i seguenti requisiti:

  • Implementa le API di EuiccService per supportare più porte.
  • Utilizza le API per la selezione delle porte e l'attivazione dei profili.
  • Fornisce un'esperienza utente che consente alle app degli operatori di attivare i profili sulle porte selezionate.

Convalida

Per testare l'implementazione della funzionalità MEP, assicurati che le build superino i seguenti test case CTS (per le API pubbliche): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts.

I produttori di dispositivi devono anche collaborare con i fornitori di modem, chip eUICC e sistemi operativi eSIM per verificare che il dispositivo possa eseguire le seguenti operazioni:

  • È possibile attivare due profili eSIM e collegarli a due reti diverse.
  • I profili eSIM possono essere attivati e disattivati su qualsiasi porta eSIM.
  • Esiste un flusso UX attivato dall'app dell'operatore che consente agli utenti di cambiare profilo.

Consigli per gli operatori

Per assicurarti che gli utenti non perdano il servizio quando spostano i profili eSIM da una porta all'altra, ti consigliamo di fornire il supporto per quanto segue:

  • Mapping fluido di IMEI e SIM
  • Più ICCID o SIM per ogni identificatore eUICC (EID)