Android 13 veya sonraki sürümlerin yüklü olduğu cihazlarda Android, eUICC için birden fazla etkin profili (MEP) destekler. Bu özellik, cihazların tek bir eSIM çipi kullanarak çift SIM desteğine sahip olmasını sağlar. Bu çipte birden fazla SIM profili olabilir ve aynı anda iki farklı operatöre bağlanabilir. Cihaz üreticileri, bu özelliği cihazlarına entegre etmek için SoC tedarikçileri ve eSIM yonga seti tedarikçileriyle birlikte çalışmalıdır.
Arka plan
Android 12 ve önceki sürümlerin yüklü olduğu cihazlarda AOSP, tek bir eSIM'in aynı anda birden fazla profili desteklemesine izin verme konusunda sınırlı destek sunar. eSIM'in sunduğu önemli alan ve maliyet tasarrufuna rağmen, çift SIM desteğinin olmaması cihaz üreticilerinin yalnızca eSIM'i destekleyen cihazları kullanmasını engelliyor. Yalnızca eSIM destekli bir cihazda çift SIM desteği sağlamak için cihaz üreticilerinin cihaza iki eSIM öğesi yerleştirmesi gerekir. Bu durum, malzeme listesi (BOM) maliyetlerini artırır ve abonelik yönetimi açısından kötü bir kullanıcı deneyimine yol açar. Android 13'ten itibaren AOSP'de kullanılabilen MEP özelliği bu sorunu giderir.
eUICC mimarisi
Bu bölümde, farklı Android sürümlerinde MEP'nin kullanıldığı cihazlar için eSIM çip mimarisi ve MEP'nin kullanılmadığı cihazlar için eSIM çip mimarisi açıklanmaktadır.
Android 14
Android 14 veya sonraki sürümleri çalıştıran cihazlarda Android, GSMA SGP V22 3.0'da belirtildiği gibi, veren güvenlik alanı kökünün (ISD-R) ve eSIM bağlantı noktalarının seçimi için MEP-A1 ve MEP-B seçeneklerini destekler. Aşağıda MEP-A1 ve MEP-B ISD-R seçim modelleri açıklanmaktadır.
MEP-A1: ISD-R, bağlantı noktası 0'da (komut bağlantı noktası 0'dır) seçilir ve profiller, eSIM bağlantı noktası 1 ve daha yüksek bağlantı noktalarında seçilir. ES10 komutları her zaman 0 numaralı bağlantı noktasına gönderilir ve komut bağlantı noktası ile hedef bağlantı noktası her zaman farklıdır. LPA, bağlantı noktasını seçer.
1. şekil. MEP-A1 ISD-R seçim modeli
MEP-B: ISD-R herhangi bir bağlantı noktasında seçilir ve herhangi bir bağlantı noktasına profil atanabilir. Etkinleştirme ve devre dışı bırakma komutları, profilin etkinleştirilmesi veya devre dışı bırakılması gereken porta (yenileme işleminin beklemede olduğu yer) gönderilir. Komut bağlantı noktası ve hedef bağlantı noktası her zaman aynıdır.
Şekil 2. MEP-B ISD-R seçim modeli
Android 13
Android 13 veya sonraki sürümlerde, MEP'yi destekleyen cihazlarda eSIM yuvası, birden fazla eUICC bağlantı noktası içerir. Bu bağlantı noktalarından birinde etkin bir profil olabilir. Şekil 3'te gösterildiği gibi, bu mimaride her eUICC bağlantı noktası bir modem temel bandına bağlanarak tek bir eUICC (tek bir fiziksel yuva) ile çift SIM çift bekleme (DSDS) desteklenir. Android 13 HAL ve API'leri, MEP varyantından bağımsızdır.
Şekil 3. MEP desteği olan eSIM çip mimarisi (Android 13 veya sonraki sürümler)
Android 12 ve önceki sürümler
Şekil 4'te gösterildiği gibi MEP'nin bulunmadığı Android 12 veya önceki sürümlerin yüklü olduğu cihazlarda eSIM yuvası aynı anda yalnızca tek bir etkin profili destekler ve cihaz DSDS'yi destekleyemez.
Şekil 4. MEP desteği olmayan eSIM çip mimarisi (Android 12 veya daha eski sürümler)
Birden fazla etkin profil için API bilgi akışı
Şekil 5'te Android 13'teki eUICC için MEP'nin bilgi akışı açıklanmaktadır. Telefon çerçevesi, eUICC'deki fiziksel yapıyı temsil eden
UiccPort
sınıfını içerir. UiccPort
sınıfı, fiziksel SIM (pSIM), entegre SIM (iSIM) ve yerleşik SIM (eSIM) olmak üzere tüm SIM kart türleri için kullanılır. Birden fazla bağlantı noktası olan bir eUICC için tek bir UiccSlot
nesnesi ve UiccCard
nesnesi birden fazla UiccPort
örneğiyle eşlenir. Her UiccPort
örneği en fazla bir UiccProfile
örneğine bağlanabilir. Bu akış, UiccPort
öğesinin mantıksal bir yuvayla, UiccSlot
(fiziksel yuva) öğesinin ise birden fazla mantıksal yuvayla eşlenmesine olanak tanır.
5.şekil MEP desteği olan eUICC için bilgi akışı
Uygulama
Bu bölümde, HAL gereksinimleri, API'ler ve kullanıcı arayüzü ile ilgili ayrıntılar da dahil olmak üzere MEP özelliğinin nasıl uygulanacağı açıklanmaktadır. Cihaz üreticileri, MEP'yi desteklemek için SoC tedarikçileri ve eSIM yonga seti tedarikçileriyle birlikte çalışmalıdır.
HAL gereksinimleri
eUICC için MEP'yi desteklemek üzere /platform/hardware/interfaces/radio/aidl/aidl_api
konumundaki aşağıdaki IRadio AIDL HAL API'lerini uygulayın.
Android 14 veya sonraki sürümlerin yüklü olduğu cihazlar, MultipleEnabledProfileMode
(modem veya eUICC tarafından desteklenen ISD-R seçim modeli) kullanan ve ICC mantıksal kanal işlemleri sırasında ES10 APDU komut bilgilerini ileten HAL arayüzlerinin IRadio 2.1 sürümünü kullanmalıdır.
CardStatus
Modem, getIccCardStatusResponse
yöntemine yanıt olarak CardStatus
API'sini desteklemelidir. Yanıt, SimPortSlotMapping
tarafından belirtilen bağlantı noktası dizinini ve fiziksel yuva dizinini içermelidir.
Android 14 veya sonraki sürümlerin yüklü olduğu cihazlarda modem, tüm CardStatus etkinlikleriyle desteklenen MEP modunu geçmelidir.
SimSlotStatus
Modem, getSimSlotsStatus
yöntemine yanıt olarak SimSlotStatus
API'sini desteklemelidir. SIM yuvası durumu, bağlantı noktası dizinini, etkin profilin ICCID'sini ve bağlantı noktası durumunu içeren SimPortInfo
arayüzünün bir dizisini içerir. Modem en az iki SimPortInfo
nesnesi döndürmelidir.
Android 14 veya sonraki sürümlerin yüklü olduğu cihazlarda modem, tüm CardStatus etkinlikleriyle desteklenen MEP modunu geçmelidir.
setSimSlotMapping
setSimSlotMapping
yönteminde bir SimPortSlotMapping
dizisi geçirilmelidir.
Dizinin dizini mantıksal yuvadır ve SimPortSlotMapping
, karşılık gelen eşlenmiş bağlantı noktasını ve fiziksel yuva dizinini belirtir. setSimSlotMapping
yöntemi, bağlantı noktalarından mantıksal yuvalara eşlemeyi ayarlar. LPA uygulaması, etkin bağlantı noktasını seçmek için bu yöntemi kullanır.
eUICC için MEP'yi destekleyen API'ler
AOSP telefon yığını kapsamında birden fazla etkinleştirilmiş profili destekleyen Android cihazların aşağıdaki API'leri desteklemesi gerekir.
UiccCardInfo
- (Android 13 ve sonraki sürümler)
isMultipleEnabledProfilesSupported
: Bu UICC'nin MEP'yi destekleyip desteklemediğini döndürür. - (Android 13 ve sonraki sürümler)
getPorts
: Belirli bir UICC için olası tüm bağlantı noktalarının listesini döndürür. UICC, MEP'yi desteklemeyen bir pSIM veya eSIM ise tek öğeli bir liste döndürür. - (Desteği sonlandırıldı)
getIccId
: ICCID döndürür. MEP'li cihazlar için bir UICC'nin birden fazla ICCID'si olabileceğindenUiccPortInfo.getIccId()
yerine bunu kullanın.
(Android 13 ve sonraki sürümler) UiccPortInfo
getIccId
: Bu bağlantı noktasında etkin bir abonelik varsa ICCID'yi döndürür.getPortIndex
: Bağlantı noktası dizinini döndürür.getLogicalSlotIndex
: Etkin mantıksal modem yığını dizinini döndürür.
SubscriptionInfo
- (Android 13 ve sonraki sürümler)
getPortIndex
: Aboneliğin etkinleştirildiği bağlantı noktası dizinini döndürür. Abonelik devre dışı bırakılmışsaINVALID_PORT_ID -1
değerini döndürür.
EuiccManager
switchToSubscription
: Belirli bir aboneliğe geçiş yapar. Etkin aboneliklerde operatör ayrıcalığına sahip olmayan uygulamalar tarafından kullanılır. Platform, çağrıldığında kullanılabilir bağlantı noktası yoksa seçilen etkin aboneliği devre dışı bırakmak için bağlantı noktası dizinini dahili olarak üç seçenekli bir seçim iletişim kutusu aracılığıyla çözer. Android 13 ve sonraki sürümleri hedefleyen uygulamalar, geçersiz bir abonelik kimliği ileterek aboneliği devre dışı bırakmak için bu API'yi kullanmamalıdır. Bunun yerine, belirtilen bağlantı noktası diziniyle birlikteswitchToSubscription
yöntemini (Android 13'te eklenmiştir) kullanmalıdır.- (Android 13 ve sonraki sürümler)
switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback)
: Belirli bir aboneliğe geçiş yapar. Etkin abonelikler üzerinde operatör ayrıcalığına sahip arama uygulamaları, aboneliğin hangi bağlantı noktasında etkinleştirileceğini belirtebilir. - (Android 13 ve sonraki sürümler)
isSimPortAvailable
: Geçen bağlantı noktası dizininin kullanılabilir olup olmadığını döndürür. Abonelik etkinleştirilmemişse veya arama uygulaması, seçilen bağlantı noktasına yüklenen abonelik üzerinde operatör ayrıcalığına sahipse bağlantı noktası kullanılabilir.
EuiccService
- (Android 13 ve sonraki sürümler)
onSwitchToSubscriptionWithPort
: Belirtilen bağlantı noktasında belirli bir aboneliğe geçer. LPA uygulaması, Android 13 ve sonraki sürümlerde bu özelliği desteklemelidir.
TelephonyManager
- (Android 13 ve sonraki sürümler)
getSimApplicationState
: Kart başvurusu durumunu belirten bir sabit döndürür. Bu API, hem fiziksel yuva dizinini hem de bağlantı noktası dizinini iletir.simApplicationState
nesnesi almak için yalnızca fiziksel yuva dizinini iletengetSimApplicationState(int physicalSlotIndex)
yöntemi (kullanımdan kaldırıldı) kullanılır. - (Android 13 ve sonraki sürümler)
setSimSlotMapping(Collection<UiccSlotMapping> slots)
: Mantıksal yuvaları fiziksel yuvalara ve bağlantı noktalarına eşler. - (Android 13 ve sonraki sürümler)
Collection<UiccSlotMapping> getSimSlotMapping
: Mantıksal yuvalardan fiziksel SIM yuvalarına ve bağlantı noktası dizinlerine eşlemeyi alır.
Kullanıcı arayüzü
eSIM bağlantı noktası seçimindeki belirsizliği gidermek için MEP'yi destekleyen cihazlarda kullanıcıların yeni bir aboneliği etkinleştirmek üzere etkin aboneliklerden birini devre dışı bırakabilmesi gerekir. Android 13'te AOSP, Ayarlar uygulamasından abonelik etkinleştirme kullanıcı akışlarına uygulanabilen üç seçenekli bir iletişim kutusu içeren bir kullanıcı akışı içerir. Şekil 6'da bu kullanıcı deneyimi akışının bir örneği gösterilmektedir.
6.şekil SIM aboneliğini etkinleştirmeye yönelik kullanıcı işlemleri akışı
Özellik işaretleri
MEP'yi desteklemek için cihazların aşağıdaki özellik işaretlerini bildirmesi gerekir:
LPA uygulaması
MEP'yi desteklemek için LPA uygulamanızın aşağıdaki koşulları karşıladığından emin olun:
- Birden fazla bağlantı noktasını desteklemek için EuiccService'teki API'leri uygular.
- Bağlantı noktası seçimi ve profil etkinleştirme için API'leri kullanır.
- Operatör uygulamalarının belirli bağlantı noktalarında profilleri etkinleştirmesine olanak tanıyan bir kullanıcı deneyimi sağlar.
Doğrulama
MEP özelliğini uygulamanızı test etmek için derlemelerin aşağıdaki CTS test senaryolarını (herkese açık API'ler için) geçtiğinden emin olun:
/platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts
.
Cihaz üreticileri, cihazın aşağıdakileri yapabildiğinden emin olmak için modem, eUICC çipi ve eSIM OS satıcılarıyla da birlikte çalışmalıdır:
- İki eSIM profili etkinleştirilebilir ve iki farklı ağa bağlanabilir.
- eSIM profilleri, herhangi bir eSIM bağlantı noktasında etkinleştirilebilir ve devre dışı bırakılabilir.
- Operatör uygulaması tarafından tetiklenen ve kullanıcıların profiller arasında geçiş yapmasına olanak tanıyan bir kullanıcı deneyimi akışı vardır.
Operatörler için öneri
Kullanıcıların eSIM profillerini bir bağlantı noktasından diğerine taşırken hizmeti kaybetmemesini sağlamak için operatörlerin aşağıdakilerle ilgili destek sunmasını öneririz:
- IMEI ve SIM'in akışkan eşlemesi
- Her eUICC tanımlayıcısı (EID) için birden fazla ICCID veya SIM