Untuk perangkat yang menjalankan Android 13 atau yang lebih tinggi, Android mendukung beberapa profil yang diaktifkan (MEP) untuk eUICC. Fitur ini memungkinkan perangkat memiliki dukungan SIM ganda yang menggunakan satu chip eSIM, yang dapat memiliki beberapa SIM profil dan dapat tersambung ke dua operator yang berbeda pada saat yang sama. Perangkat produsen harus bekerja sama dengan vendor SoC dan chipset eSIM vendor untuk mengintegrasikan fitur ini di perangkat mereka.
Latar belakang
Pada perangkat yang menjalankan Android 12 dan yang lebih rendah, AOSP menyediakan dukungan terbatas yang memungkinkan satu eSIM mendukung beberapa profil di perangkat lain di waktu yang sama. Terlepas dari menghemat ruang dan biaya signifikan yang ditawarkan eSIM, kurangnya dukungan SIM ganda mencegah produsen perangkat mengadopsi eSIM perangkat. Untuk memberikan dukungan SIM ganda di perangkat khusus eSIM, perangkat produsen harus mengemas dua elemen eSIM ke dalam perangkat, yang meningkatkan biaya tagihan material (BOM) dan menyebabkan pengalaman pengguna yang buruk untuk langganan otomatisasi pengelolaan biaya. 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 berbagai versi Android dan arsitektur chip eSIM untuk perangkat tanpa MEP.
Android 14
Untuk perangkat yang menjalankan Android 14 atau yang lebih tinggi, Android mendukung MEP-A1 dan MEP-B opsi untuk pemilihan root domain keamanan penerbit (ISD-R) dan pemilihan port eSIM seperti yang ditentukan dalam GSMA SGP V22 3.0. Berikut penjelasan model pemilihan MEP-A1 dan MEP-B ISD-R.
MEP-A1: ISD-R dipilih pada port 0 (port perintah adalah 0) dan profil dipilih di port eSIM 1 dan yang lebih baru. Perintah ES10 selalu dikirim ke porta 0, dan porta perintah serta porta target selalu berbeda. LPA memilih porta.
Gambar 1. Model pemilihan MEP-A1 ISD-R
MEP-B: ISD-R dipilih pada port mana pun dan port mana pun dapat ditetapkan untuk profil. Perintah {i>enable<i} dan nonaktifkan dikirim ke porta tempat profil harus diaktifkan atau dinonaktifkan (jika pembaruan menunggu keputusan). Tujuan porta perintah dan porta target selalu sama.
Gambar 2. Model pemilihan MEP-B ISD-R
Android 13
Di Android 13 atau yang lebih tinggi, di perangkat yang mendukung MEP, slot eSIM berisi beberapa port eUICC tempat port dapat diaktifkan untuk profil. Seperti yang ditunjukkan pada Gambar 3, dengan arsitektur ini, satu eUICC (satu slot fisik) mendukung dual SIM dual standby (DSDS) dengan memiliki setiap port eUICC sambungkan ke pita basis modem. HAL dan API Android 13 adalah Varian MEP tidak bergantung pada varian.
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 rendah tanpa MEP seperti yang ditunjukkan pada Gambar 4, Slot eSIM hanya mendukung satu profil yang diaktifkan pada satu waktu dan perangkat tidak dapat mendukung DSDS.
Gambar 4. Arsitektur chip eSIM tanpa dukungan MEP (Android 12 atau lebih rendah)
Alur informasi API untuk beberapa profil yang diaktifkan
Gambar 5 menjelaskan aliran informasi untuk MEP untuk eUICC di
Android 13. Kerangka kerja telepon mencakup
Class UiccPort
, yang mewakili struktur fisik di eUICC. Tujuan
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 paling banyak ke satu
Instance UiccProfile
. Alur ini memungkinkan UiccPort
dipetakan ke slot logis dan
UiccSlot
(fisik
slot) untuk memetakan
ke beberapa slot logis.
Gambar 5. Alur informasi untuk eUICC dengan dukungan MEP
Implementasi
Bagian ini menjelaskan cara menerapkan fitur MEP, termasuk detailnya tentang persyaratan HAL, API, dan antarmuka pengguna. Produsen perangkat seharusnya bekerja sama dengan vendor SoC dan vendor chipset eSIM untuk mendukung MEP.
Persyaratan HAL
Guna mendukung MEP untuk eUICC, terapkan API IRadio AIDL HAL berikut,
inci
/platform/hardware/interfaces/radio/aidl/aidl_api
Perangkat yang menjalankan Android 14 atau yang lebih tinggi harus menggunakan HAL versi IRadio 2.1
antarmuka, yang menggunakan
MultipleEnabledProfileMode
(Model pemilihan ISD-R yang didukung oleh modem atau eUICC) dan teruskan ES10 APDU
informasi perintah selama operasi saluran logis ICC.
StatusKartu
Modem harus mendukung
CardStatus
API sebagai respons terhadap
getIccCardStatusResponse
. Respons harus menyertakan indeks port dan indeks slot fisik
ditentukan oleh
SimPortSlotMapping
Untuk perangkat yang menjalankan Android 14 atau yang lebih tinggi, modem harus meneruskan Mode MEP dengan semua peristiwa CardStatus.
Status SimSlot
Modem harus mendukung
SimSlotStatus
API sebagai respons terhadap
getSimSlotsStatus
. Status slot SIM mencakup susunan objek
SimPortInfo
antarmuka, yang mencakup indeks porta, ICCID untuk profil yang diaktifkan, dan
status porta. Modem harus menampilkan minimal dua objek SimPortInfo
.
Untuk perangkat yang menjalankan Android 14 atau yang lebih tinggi, modem harus meneruskan Mode MEP dengan semua peristiwa CardStatus.
setSimSlotMapping
Tujuan
setSimSlotMapping
harus meneruskan array dari
SimPortSlotMapping
.
Indeks array adalah slot logis dan
SimPortSlotMapping
menentukan port yang dipetakan dan slot fisik yang sesuai
Google Cloud. Metode setSimSlotMapping
menetapkan pemetaan dari port ke logis
slot waktu. Aplikasi LPA menggunakan
metode ini untuk memilih porta yang aktif.
API yang mendukung MEP untuk eUICC
Perangkat Android yang mendukung beberapa profil yang diaktifkan sebagai bagian dari AOSP stack telepon diperlukan untuk mendukung API berikut.
UiccCardInfo
- (Android 13 dan yang lebih baru)
isMultipleEnabledProfilesSupported
: Menampilkan apakah UICC ini mendukung MEP. - (Android 13 dan yang lebih baru)
getPorts
Hasil daftar semua porta yang mungkin untuk UICC tertentu. Jika UICC adalah pSIM atau eSIM yang tidak mendukung MEP, akan menampilkan daftar satu elemen. - (Tidak digunakan lagi)
getIccId
Menampilkan ICCID. Karena UICC dapat memiliki lebih dari satu ICCID untuk perangkat dengan MEP, gunakanUiccPortInfo.getIccId()
sebagai gantinya.
(Android 13 dan yang lebih tinggi) UiccPortInfo
getIccId
: Menampilkan ICCID jika ada langganan yang diaktifkan di port ini.getPortIndex
: Menampilkan indeks port.getLogicalSlotIndex
: Menampilkan indeks tumpukan modem logis aktif.
InfoLangganan
- (Android 13 dan yang lebih baru)
getPortIndex
Menampilkan indeks port tempat langganan diaktifkan. Jika langganan dinonaktifkan, menampilkanINVALID_PORT_ID -1
.
Pengelola Euicc
switchToSubscription
: Beralih ke langganan tertentu. Digunakan oleh aplikasi yang tidak memiliki operator hak istimewa pada langganan aktif. Ketika dipanggil, platform secara internal menyelesaikan indeks port melalui pilihan tiga pilihan dialog 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 tidak valid; sebagai gantinya, mereka harus menggunakanswitchToSubscription
(ditambahkan di Android 13) dengan indeks port yang ditentukan.- (Android 13 dan yang lebih baru)
switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback)
Beralih ke langganan tertentu. Aplikasi panggilan dengan hak istimewa operator lebih dari langganan aktif dapat menentukan porta mana yang akan mengaktifkan langganan kueri. - (Android 13 dan yang lebih baru)
isSimPortAvailable
Menampilkan apakah indeks port penerusan tersedia. Port tersedia jika langganan tidak diaktifkan atau aplikasi panggilan memiliki hak istimewa operator melalui langganan yang diinstal pada porta yang dipilih.
Layanan Euicc
- (Android 13 dan yang lebih baru)
onSwitchToSubscriptionWithPort
Beralih ke langganan tertentu pada port yang ditentukan. Implementasi LPA harus mendukung fitur ini di Android 13 dan yang lebih baru.
Pengelola Telepon
- (Android 13 dan yang lebih baru)
getSimApplicationState
Menampilkan konstanta yang menunjukkan status aplikasi kartu. API ini meneruskan indeks slot fisik dan indeks porta. TujuangetSimApplicationState(int physicalSlotIndex)
(tidak digunakan lagi) hanya meneruskan indeks slot fisik untuk mendapatkansimApplicationState
. - (Android 13 dan yang lebih baru)
setSimSlotMapping(Collection<UiccSlotMapping> slots)
Memetakan slot logis ke slot dan port fisik. - (Android 13 dan yang lebih baru)
Collection<UiccSlotMapping> getSimSlotMapping
Mengambil pemetaan dari slot logis ke slot SIM fisik dan indeks port.
Antarmuka pengguna
Untuk mengatasi ambiguitas pemilihan port eSIM, pada perangkat yang mendukung MEP, pengguna harus dapat menonaktifkan salah satu langganan aktif untuk mengaktifkan langganan Anda. Di Android 13, AOSP menyertakan alur penggunaan dengan pilihan tiga dialog yang dapat diterapkan ke langganan, yang memungkinkan alur pengguna dari aplikasi Setelan. Gambar 6 menunjukkan contoh alur UX ini.
Gambar 6. Alur penggunaan untuk mengaktifkan langganan SIM
Feature flags
Untuk mendukung MEP, perangkat harus mendeklarasikan tombol fitur berikut:
Implementasi LPA
Untuk mendukung MEP, pastikan LPA penerapan memenuhi persyaratan berikut:
- Mengimplementasikan API dari EuiccService untuk mendukung beberapa porta.
- Menggunakan API untuk pemilihan port dan pengaktifan profil.
- Menyediakan UX yang memungkinkan aplikasi operator mengaktifkan profil pada port yang dipilih.
Validasi
Untuk menguji implementasi fitur MEP, pastikan build lulus
kasus uji CTS berikut (untuk API publik):
/platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts
Produsen perangkat juga harus berfungsi dengan modem, chip eUICC, dan eSIM OS mereka vendor untuk memastikan bahwa perangkat tersebut dapat melakukan hal berikut:
- Dua profil eSIM dapat diaktifkan dan dikaitkan 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 untuk profil.
Rekomendasi untuk ekspedisi
Untuk memastikan pengguna tidak kehilangan layanan saat mereka memindahkan profil eSIM dari salah satu porta ke server lain, sebaiknya jasa kurir menyediakan dukungan untuk hal berikut:
- Pemetaan IMEI dan SIM yang dapat disesuaikan
- Beberapa ICCID atau SIM untuk setiap ID eUICC (EID)