Beberapa profil yang diaktifkan

Untuk perangkat yang menjalankan Android 13 atau yang lebih baru, Android mendukung beberapa profil yang diaktifkan (MEP) untuk eUICC. Fitur ini memungkinkan perangkat memiliki dukungan SIM ganda menggunakan satu chip eSIM, yang dapat memiliki beberapa profil SIM dan dapat terhubung ke dua operator berbeda secara bersamaan. Produsen perangkat harus bekerja sama dengan vendor SoC dan vendor chipset eSIM untuk mengintegrasikan fitur ini di perangkat mereka.

Latar belakang

Pada perangkat yang menjalankan Android 12 dan yang lebih lama, AOSP memberikan dukungan terbatas dalam mengizinkan satu eSIM mendukung beberapa profil sekaligus. Meskipun eSIM menawarkan penghematan ruang dan biaya yang signifikan, kekurangan dukungan SIM ganda ini mencegah produsen perangkat mengadopsi perangkat khusus eSIM. Untuk memberikan dukungan SIM ganda pada perangkat khusus eSIM, produsen perangkat harus mengemas dua elemen eSIM ke dalam perangkat, yang meningkatkan biaya bill of material (BOM) dan menyebabkan pengalaman pengguna yang buruk untuk pengelolaan langganan. Fitur MEP yang tersedia di AOSP dari Android 13 mengatasi masalah ini.

Arsitektur eUICC

Bagian ini menjelaskan arsitektur chip eSIM untuk perangkat dengan MEP untuk versi Android yang berbeda dan arsitektur chip eSIM untuk perangkat tanpa MEP.

Android 14

Untuk perangkat yang menjalankan Android 14 atau yang lebih tinggi, Android mendukung opsi MEP-A1 dan MEP-B untuk pemilihan root domain keamanan penerbit (ISD-R) dan pemilihan port eSIM seperti yang ditentukan dalam GSMA SGP V22 3.0. Berikut ini penjelasan model pemilihan ISD-R MEP-A1 dan MEP-B.

  • MEP-A1: ISD-R dipilih di port 0 (port perintah adalah 0) dan profil dipilih di port eSIM 1 dan yang lebih tinggi. Perintah ES10 selalu dikirim ke port 0, dan port perintah dan port target selalu berbeda. LPA memilih porta.

    Model pemilihan ISD-R MEP-A1

    Gambar 1. Model pemilihan ISD-R MEP-A1

  • MEP-B: ISD-R dipilih di port mana pun dan port mana pun dapat diberi profil. Perintah aktifkan dan nonaktifkan dikirim ke port tempat profil perlu diaktifkan atau dinonaktifkan (saat pemuatan ulang tertunda). Port perintah dan port target selalu sama.

    Model pemilihan MEP-B ISD-R

    Gambar 2. Model pemilihan MEP-B ISD-R

Android 13

Di Android 13 atau yang lebih baru, pada perangkat yang mendukung MEP, slot eSIM berisi beberapa port eUICC tempat port dapat memiliki profil yang diaktifkan. Seperti yang ditunjukkan pada Gambar 3, dengan arsitektur ini, satu eUICC (satu slot fisik) mendukung dual SIM dual standby (DSDS) dengan membuat setiap port eUICC tertaut ke baseband modem. HAL dan API Android 13 tidak bergantung pada varian MEP.

Arsitektur chip eSIM dengan dukungan MEP

Gambar 3. Arsitektur chip eSIM dengan dukungan MEP (Android 13 atau yang lebih baru)

Android 12 dan yang lebih lama

Untuk perangkat yang menjalankan Android 12 atau yang lebih lama tanpa MEP seperti yang ditunjukkan pada Gambar 4, slot eSIM hanya mendukung satu profil yang diaktifkan sekaligus dan perangkat tidak dapat mendukung DSDS.

Arsitektur chip eSIM tanpa dukungan MEP

Gambar 4. Arsitektur chip eSIM tanpa dukungan MEP (Android 12 atau yang lebih lama)

Alur informasi API untuk beberapa profil yang diaktifkan

Gambar 5 menjelaskan alur informasi untuk MEP untuk eUICC di Android 13. Framework telephony menyertakan class UiccPort, yang mewakili struktur fisik di eUICC. Class UiccPort digunakan untuk semua jenis kartu SIM: SIM fisik (pSIM), SIM terintegrasi (iSIM), dan SIM tersemat (eSIM). Untuk eUICC dengan beberapa port, satu objek UiccSlot dan objek UiccCard dipetakan ke beberapa instance UiccPort. Setiap instance UiccPort dapat ditautkan ke maksimal satu instance UiccProfile. Alur ini memungkinkan UiccPort untuk dipetakan ke slot logis dan UiccSlot (slot fisik) untuk dipetakan ke beberapa slot logis.

Alur informasi MEP

Gambar 5. Alur informasi untuk eUICC dengan dukungan MEP

Implementasi

Bagian ini menjelaskan cara menerapkan fitur MEP, termasuk detail tentang persyaratan HAL, API, dan antarmuka pengguna. Produsen perangkat harus bekerja sama dengan vendor SoC dan vendor chipset eSIM untuk mendukung MEP.

Persyaratan HAL

Untuk mendukung MEP untuk eUICC, terapkan IRadio AIDL HAL API berikut, yang terletak di /platform/hardware/interfaces/radio/aidl/aidl_api.

Perangkat yang menjalankan Android 14 atau yang lebih tinggi harus menggunakan antarmuka HAL versi IRadio 2.1, yang menggunakan MultipleEnabledProfileMode (model pemilihan ISD-R yang didukung oleh modem atau eUICC) dan meneruskan informasi perintah APDU ES10 selama operasi saluran logis ICC.

CardStatus

Modem harus mendukung CardStatus API sebagai respons terhadap metode getIccCardStatusResponse. Respons harus menyertakan indeks port dan indeks slot fisik yang ditentukan oleh SimPortSlotMapping.

Untuk perangkat yang menjalankan Android 14 atau yang lebih baru, modem harus meneruskan mode MEP yang didukung dengan semua peristiwa CardStatus.

SimSlotStatus

Modem harus mendukung SimSlotStatus API sebagai respons terhadap metode getSimSlotsStatus. Status slot SIM mencakup array antarmuka SimPortInfo, yang mencakup indeks port, ICCID untuk profil yang diaktifkan, dan status port. Modem harus menampilkan minimal dua objek SimPortInfo.

Untuk perangkat yang menjalankan Android 14 atau yang lebih baru, modem harus meneruskan mode MEP yang didukung dengan semua peristiwa CardStatus.

setSimSlotMapping

Metode setSimSlotMapping harus meneruskan array SimPortSlotMapping. Indeks array adalah slot logis dan SimPortSlotMapping menentukan port yang dipetakan dan indeks slot fisik yang sesuai. Metode setSimSlotMapping menetapkan pemetaan dari port ke slot logika. Aplikasi LPA menggunakan metode ini untuk memilih port aktif.

API yang mendukung MEP untuk eUICC

Perangkat Android yang mendukung beberapa profil yang diaktifkan sebagai bagian dari stack telepon AOSP harus mendukung API berikut.

UiccCardInfo

  • (Android 13 dan yang lebih baru) isMultipleEnabledProfilesSupported : Menampilkan apakah UICC ini mendukung MEP.
  • (Android 13 dan yang lebih baru) getPorts: Menampilkan daftar semua kemungkinan port untuk UICC tertentu. Jika UICC adalah pSIM atau eSIM yang tidak mendukung MEP, menampilkan daftar satu elemen.
  • (Tidak digunakan lagi) getIccId: Menampilkan ICCID. Karena UICC dapat memiliki lebih dari satu ICCID untuk perangkat dengan MEP, gunakan UiccPortInfo.getIccId() sebagai gantinya.

(Android 13 dan yang lebih baru) UiccPortInfo

InfoLangganan

  • (Android 13 dan yang lebih baru) getPortIndex: Menampilkan indeks port tempat langganan diaktifkan. Jika langganan dinonaktifkan, INVALID_PORT_ID -1 akan ditampilkan.

EuiccManager

  • switchToSubscription: Beralih ke langganan tertentu. Digunakan oleh aplikasi yang tidak memiliki hak istimewa operator pada langganan aktif. Saat dipanggil, platform akan me-resolve indeks port secara internal melalui dialog pilihan tiga pilihan untuk menonaktifkan langganan aktif yang dipilih jika tidak ada port yang tersedia. Aplikasi yang menargetkan Android 13 dan yang lebih tinggi tidak boleh menggunakan API ini untuk menonaktifkan langganan dengan meneruskan ID langganan yang tidak valid; sebaliknya, aplikasi harus menggunakan metode switchToSubscription (ditambahkan di Android 13) dengan indeks port yang ditentukan.
  • (Android 13 dan yang lebih tinggi) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback): Beralih ke langganan tertentu. Memanggil aplikasi dengan hak istimewa operator melalui langganan aktif dapat menentukan port mana yang akan mengaktifkan langganan.
  • (Android 13 dan yang lebih tinggi) isSimPortAvailable: Menampilkan apakah indeks port yang diteruskan tersedia. Port tersedia jika tidak mengaktifkan langganan atau aplikasi panggilan memiliki hak istimewa operator atas langganan yang diinstal di port yang dipilih.

EuiccService

  • (Android 13 dan yang lebih tinggi) onSwitchToSubscriptionWithPort: Beralih ke langganan tertentu di port yang ditentukan. Implementasi LPA harus mendukung hal ini di Android 13 dan yang lebih baru.

Pengelola Telepon

Antarmuka pengguna

Untuk mengatasi ambiguitas pemilihan port eSIM, pada perangkat yang mendukung MEP, pengguna harus dapat menonaktifkan salah satu langganan aktif untuk mengaktifkan langganan baru. Di Android 13, AOSP menyertakan alur penggunaan dengan dialog tiga pilihan yang dapat diterapkan ke alur penggunaan yang mengaktifkan langganan dari aplikasi Setelan. Gambar 6 menunjukkan contoh alur UX ini.

Alur penggunaan untuk langganan SIM MEP

Gambar 6. Alur penggunaan untuk mengaktifkan langganan SIM

Feature flags

Untuk mendukung MEP, perangkat harus mendeklarasikan tombol fitur berikut:

Penerapan LPA

Untuk mendukung MEP, pastikan penerapan LPA Anda memenuhi persyaratan berikut:

  • Mengimplementasikan API dari EuiccService untuk mendukung beberapa port.
  • Menggunakan API untuk pemilihan port dan pengaktifan profil.
  • Memberikan UX yang memungkinkan aplikasi operator mengaktifkan profil di port yang dipilih.

Validasi

Untuk menguji penerapan fitur MEP, pastikan build lulus kasus pengujian CTS berikut (untuk API publik): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts.

Produsen perangkat juga harus bekerja dengan modem, chip eUICC, dan vendor eSIM OS mereka untuk memastikan bahwa perangkat dapat melakukan hal berikut:

  • Dua profil eSIM dapat diaktifkan dan dilampirkan ke dua jaringan yang berbeda.
  • Profil eSIM dapat diaktifkan dan dinonaktifkan di port eSIM mana pun.
  • Ada alur UX yang dipicu oleh aplikasi operator yang memungkinkan pengguna beralih profil.

Rekomendasi untuk operator

Untuk memastikan pengguna tidak kehilangan layanan saat mereka memindahkan profil eSIM dari satu port ke port lainnya, sebaiknya operator memberikan dukungan untuk hal berikut:

  • Pemetaan IMEI dan SIM yang dapat disesuaikan
  • Beberapa ICCID atau SIM untuk setiap ID eUICC (EID)