Android 13 या उच्चतर चलाने वाले उपकरणों के लिए, Android eUICC के लिए एकाधिक सक्षम प्रोफ़ाइल (MEPs) का समर्थन करता है। यह सुविधा उपकरणों को एकल eSIM चिप का उपयोग करके दोहरी सिम समर्थन प्रदान करने की अनुमति देती है, जिसमें कई सिम प्रोफाइल हो सकते हैं और एक ही समय में दो अलग-अलग वाहक से कनेक्ट हो सकते हैं। डिवाइस निर्माताओं को अपने डिवाइस पर इस सुविधा को एकीकृत करने के लिए SoC विक्रेताओं और eSIM चिपसेट विक्रेताओं के साथ काम करना चाहिए।
पृष्ठभूमि
Android 12 और उससे पहले के संस्करण चलाने वाले उपकरणों पर, AOSP एक ही eSIM को एक ही समय में कई प्रोफ़ाइलों का समर्थन करने की अनुमति देने में सीमित समर्थन प्रदान करता है। eSIM द्वारा प्रदान की जाने वाली महत्वपूर्ण स्थान और लागत बचत के बावजूद, डुअल सिम समर्थन की कमी डिवाइस निर्माताओं को केवल eSIM डिवाइस अपनाने से रोकती है। केवल eSIM डिवाइस पर डुअल सिम समर्थन प्रदान करने के लिए, डिवाइस निर्माताओं को डिवाइस में दो eSIM तत्व पैक करने पड़ते हैं, जिससे सामग्री के बिल (BOM) की लागत बढ़ जाती है और सदस्यता प्रबंधन के लिए उपयोगकर्ता अनुभव खराब हो जाता है। एंड्रॉइड 13 से एओएसपी में उपलब्ध एमईपी सुविधा इस समस्या का समाधान करती है।
ईयूआईसीसी वास्तुकला
यह अनुभाग विभिन्न एंड्रॉइड संस्करणों के लिए एमईपी वाले उपकरणों के लिए ईएसआईएम चिप आर्किटेक्चर और एमईपी के बिना उपकरणों के लिए ईएसआईएम चिप आर्किटेक्चर का वर्णन करता है।
एंड्रॉइड 14
Android 14 या उच्चतर चलाने वाले उपकरणों के लिए, Android जारीकर्ता सुरक्षा डोमेन रूट (ISD-R) के चयन और GSMA SGP V22 3.0 में निर्दिष्ट eSIM पोर्ट के चयन के लिए MEP-A1 और MEP-B विकल्पों का समर्थन करता है। निम्नलिखित MEP-A1 और MEP-B ISD-R चयन मॉडल का वर्णन करता है।
एमईपी-ए1: आईएसडी-आर को पोर्ट 0 (कमांड पोर्ट 0 है) पर चुना गया है और प्रोफाइल को ईएसआईएम पोर्ट 1 और उच्चतर पर चुना गया है। ES10 कमांड हमेशा पोर्ट 0 पर भेजे जाते हैं, और कमांड पोर्ट और टारगेट पोर्ट हमेशा अलग होते हैं। एलपीए पोर्ट का चयन करता है।
चित्र 1. एमईपी-ए1 आईएसडी-आर चयन मॉडल
एमईपी-बी: आईएसडी-आर को किसी भी पोर्ट पर चुना जाता है और किसी भी पोर्ट को एक प्रोफ़ाइल सौंपी जा सकती है। सक्षम और अक्षम आदेश उस पोर्ट पर भेजे जाते हैं जहां प्रोफ़ाइल को सक्षम या अक्षम करने की आवश्यकता होती है (जहां रीफ्रेश लंबित है)। कमांड पोर्ट और टारगेट पोर्ट हमेशा एक समान होते हैं।
चित्र 2. एमईपी-बी आईएसडी-आर चयन मॉडल
एंड्रॉइड 13
एंड्रॉइड 13 या उच्चतर में, एमईपी का समर्थन करने वाले उपकरणों पर, eSIM स्लॉट में कई eUICC पोर्ट होते हैं जहां पोर्ट में एक सक्षम प्रोफ़ाइल हो सकती है। जैसा कि चित्र 3 में दिखाया गया है, इस आर्किटेक्चर के साथ, एक एकल ईयूआईसीसी (एकल भौतिक स्लॉट) प्रत्येक ईयूआईसीसी पोर्ट को एक मॉडेम बेसबैंड से लिंक करके दोहरी सिम दोहरी स्टैंडबाय (डीएसडीएस) का समर्थन करता है। एंड्रॉइड 13 एचएएल और एपीआई एमईपी संस्करण स्वतंत्र हैं।
चित्र 3. एमईपी समर्थन के साथ eSIM चिप आर्किटेक्चर (एंड्रॉइड 13 या उच्चतर)
एंड्रॉइड 12 और उससे नीचे का संस्करण
जैसा कि चित्र 4 में दिखाया गया है, एमईपी के बिना एंड्रॉइड 12 या उससे कम संस्करण चलाने वाले उपकरणों के लिए, eSIM स्लॉट एक समय में केवल एक सक्षम प्रोफ़ाइल का समर्थन करता है और डिवाइस DSDS का समर्थन नहीं कर सकता है।
चित्र 4. एमईपी समर्थन के बिना eSIM चिप आर्किटेक्चर (एंड्रॉइड 12 या उससे कम)
एकाधिक सक्षम प्रोफ़ाइलों के लिए एपीआई सूचना प्रवाह
चित्र 5 एंड्रॉइड 13 में ईयूआईसीसी के लिए एमईपी के लिए सूचना प्रवाह का वर्णन करता है। टेलीफोनी ढांचे में UiccPort
वर्ग शामिल है, जो ईयूआईसीसी पर भौतिक संरचना का प्रतिनिधित्व करता है। UiccPort
वर्ग का उपयोग सभी प्रकार के सिम कार्डों के लिए किया जाता है: भौतिक सिम (pSIM), एकीकृत सिम (iSIM), और एम्बेडेड सिम (eSIM)। एकाधिक पोर्ट वाले eUICC के लिए, एक एकल UiccSlot
ऑब्जेक्ट और UiccCard
ऑब्जेक्ट को एकाधिक UiccPort
उदाहरणों के लिए मैप किया जाता है। प्रत्येक UiccPort
इंस्टेंस अधिकतम एक UiccProfile
इंस्टेंस से लिंक हो सकता है। यह प्रवाह UiccPort
एक तार्किक स्लॉट पर मैप करने और UiccSlot
(भौतिक स्लॉट) को कई तार्किक स्लॉट पर मैप करने की अनुमति देता है।
चित्र 5. एमईपी समर्थन के साथ ईयूआईसीसी के लिए सूचना प्रवाह
कार्यान्वयन
यह अनुभाग बताता है कि एचएएल आवश्यकताओं, एपीआई और उपयोगकर्ता इंटरफ़ेस के विवरण सहित एमईपी सुविधा को कैसे लागू किया जाए। डिवाइस निर्माताओं को MEP का समर्थन करने के लिए SoC विक्रेताओं और eSIM चिपसेट विक्रेताओं के साथ काम करना चाहिए।
एचएएल आवश्यकताएँ
eUICC के लिए MEP का समर्थन करने के लिए, /platform/hardware/interfaces/radio/aidl/aidl_api
में स्थित निम्नलिखित IRadio AIDL HAL API को लागू करें।
एंड्रॉइड 14 या उच्चतर चलाने वाले उपकरणों को एचएएल इंटरफेस के IRadio 2.1 संस्करण का उपयोग करना चाहिए, जो MultipleEnabledProfileMode
(मॉडेम या ईयूआईसीसी द्वारा समर्थित आईएसडी-आर चयन मॉडल) का उपयोग करता है और आईसीसी तार्किक चैनल संचालन के दौरान ईएस10 एपीडीयू कमांड जानकारी पास करता है।
कार्ड स्थिति
मॉडेम को getIccCardStatusResponse
विधि की प्रतिक्रिया के रूप में CardStatus
एपीआई का समर्थन करना चाहिए। प्रतिक्रिया में पोर्ट इंडेक्स और SimPortSlotMapping
द्वारा निर्दिष्ट भौतिक स्लॉट इंडेक्स शामिल होना चाहिए।
एंड्रॉइड 14 या उच्चतर चलाने वाले उपकरणों के लिए, मॉडेम को सभी कार्डस्टैटस ईवेंट के साथ समर्थित एमईपी मोड पास करना होगा।
सिमस्लॉटस्टेटस
मॉडेम को getSimSlotsStatus
विधि की प्रतिक्रिया के रूप में SimSlotStatus
API का समर्थन करना चाहिए। सिम स्लॉट स्थिति में SimPortInfo
इंटरफ़ेस की एक सरणी शामिल है, जिसमें पोर्ट इंडेक्स, सक्षम प्रोफ़ाइल के लिए ICCID और पोर्ट स्थिति शामिल है। मॉडेम को कम से कम दो SimPortInfo
ऑब्जेक्ट लौटाने होंगे।
एंड्रॉइड 14 या उच्चतर चलाने वाले उपकरणों के लिए, मॉडेम को सभी कार्डस्टैटस ईवेंट के साथ समर्थित एमईपी मोड पास करना होगा।
सेटसिमस्लॉटमैपिंग
setSimSlotMapping
विधि को SimPortSlotMapping
की एक सरणी पास करनी होगी। सरणी का सूचकांक तार्किक स्लॉट है और SimPortSlotMapping
संबंधित मैप किए गए पोर्ट और भौतिक स्लॉट सूचकांक को निर्दिष्ट करता है। setSimSlotMapping
विधि पोर्ट से लॉजिकल स्लॉट तक मैपिंग सेट करती है। एलपीए ऐप सक्रिय पोर्ट का चयन करने के लिए इस पद्धति का उपयोग करता है।
ईयूआईसीसी के लिए एमईपी का समर्थन करने वाले एपीआई
एंड्रॉइड डिवाइस जो एओएसपी टेलीफोनी स्टैक के हिस्से के रूप में कई सक्षम प्रोफाइल का समर्थन करते हैं, उन्हें निम्नलिखित एपीआई का समर्थन करना आवश्यक है।
UiccCardInfo
- (एंड्रॉइड 13 और उच्चतर)
isMultipleEnabledProfilesSupported
: यह बताता है कि यह यूआईसीसी एमईपी का समर्थन करता है या नहीं। - (एंड्रॉइड 13 और उच्चतर)
getPorts
: किसी विशेष UICC के लिए सभी संभावित पोर्ट की सूची लौटाता है। यदि यूआईसीसी एक पीएसआईएम या ईएसआईएम है जो एमईपी का समर्थन नहीं करता है, तो एक तत्व की एक सूची लौटाता है। - (अस्वीकृत)
getIccId
: एक ICCID लौटाता है। क्योंकि यूआईसीसी में एमईपी वाले उपकरणों के लिए एक से अधिक आईसीसीआईडी हो सकती है, इसके बजायUiccPortInfo.getIccId()
उपयोग करें।
(एंड्रॉइड 13 और उच्चतर) UiccPortInfo
-
getIccId
: यदि इस पोर्ट पर कोई सक्षम सदस्यता है तो ICCID लौटाता है। -
getPortIndex
: पोर्ट इंडेक्स लौटाता है। -
getLogicalSlotIndex
: सक्रिय लॉजिकल मॉडेम स्टैक इंडेक्स लौटाता है।
सदस्यता जानकारी
- (एंड्रॉइड 13 और उच्चतर)
getPortIndex
: वह पोर्ट इंडेक्स लौटाता है जिस पर सदस्यता सक्षम है। यदि सदस्यता अक्षम है, तोINVALID_PORT_ID -1
लौटाता है।
यूआईसीसी प्रबंधक
-
switchToSubscription
: किसी दिए गए सब्सक्रिप्शन पर स्विच करता है। उन ऐप्स द्वारा उपयोग किया जाता है जिनके पास सक्रिय सदस्यता पर वाहक विशेषाधिकार नहीं है। जब कॉल किया जाता है, तो प्लेटफ़ॉर्म आंतरिक रूप से तीन-विकल्प चयन संवाद के माध्यम से पोर्ट इंडेक्स को हल करता है ताकि कोई उपलब्ध पोर्ट न होने पर चयनित सक्रिय सदस्यता को अक्षम किया जा सके। एंड्रॉइड 13 और उच्चतर को लक्षित करने वाले ऐप्स को अमान्य सदस्यता आईडी पास करके सदस्यता को अक्षम करने के लिए इस एपीआई का उपयोग नहीं करना चाहिए; इसके बजाय उन्हें निर्दिष्ट पोर्ट इंडेक्स के साथswitchToSubscription
विधि (एंड्रॉइड 13 में जोड़ा गया) का उपयोग करना होगा। - (एंड्रॉइड 13 और उच्चतर)
switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback)
: किसी दिए गए सब्सक्रिप्शन पर स्विच करता है। सक्रिय सब्सक्रिप्शन पर वाहक विशेषाधिकार वाले कॉलिंग ऐप्स निर्दिष्ट कर सकते हैं कि किस पोर्ट पर सब्सक्रिप्शन सक्षम करना है। - (एंड्रॉइड 13 और उच्चतर)
isSimPortAvailable
: लौटाता है कि पासिंग पोर्ट इंडेक्स उपलब्ध है या नहीं। एक पोर्ट उपलब्ध है यदि इसमें कोई सदस्यता सक्षम नहीं है या कॉलिंग ऐप के पास चयनित पोर्ट पर स्थापित सदस्यता पर वाहक विशेषाधिकार है।
यूआईसीसीसेवा
- (एंड्रॉइड 13 और उच्चतर)
onSwitchToSubscriptionWithPort
: एक निर्दिष्ट पोर्ट पर दिए गए सब्सक्रिप्शन पर स्विच करता है। एलपीए कार्यान्वयन को एंड्रॉइड 13 और उच्चतर पर इसका समर्थन करना चाहिए।
टेलीफोनी प्रबंधक
- (एंड्रॉइड 13 और उच्चतर)
getSimApplicationState
: कार्ड एप्लिकेशन की स्थिति को इंगित करने वाला एक स्थिरांक लौटाता है। यह एपीआई भौतिक स्लॉट इंडेक्स और पोर्ट इंडेक्स दोनों को पास करता है।getSimApplicationState(int physicalSlotIndex)
विधि (पदावनत)simApplicationState
ऑब्जेक्ट प्राप्त करने के लिए केवल भौतिक स्लॉट इंडेक्स को पास करती है। - (एंड्रॉइड 13 और उच्चतर)
setSimSlotMapping(Collection<UiccSlotMapping> slots)
: तार्किक स्लॉट्स को भौतिक स्लॉट्स और पोर्ट पर मैप करता है। - (एंड्रॉइड 13 और उच्चतर)
Collection<UiccSlotMapping> getSimSlotMapping
: लॉजिकल स्लॉट से भौतिक सिम स्लॉट और पोर्ट इंडेक्स तक मैपिंग प्राप्त करता है।
प्रयोक्ता इंटरफ़ेस
एमईपी का समर्थन करने वाले उपकरणों पर eSIM पोर्ट चयन की अस्पष्टता को हल करने के लिए, उपयोगकर्ताओं को नई सदस्यता सक्षम करने के लिए सक्रिय सदस्यता में से एक को अक्षम करने में सक्षम होना चाहिए। एंड्रॉइड 13 में, एओएसपी में तीन-विकल्प संवाद के साथ एक उपयोगकर्ता प्रवाह शामिल है जिसे सेटिंग्स ऐप से उपयोगकर्ता प्रवाह को सक्षम करने वाली सदस्यता पर लागू किया जा सकता है। चित्र 6 इस यूएक्स प्रवाह का एक उदाहरण दिखाता है।
चित्र 6. सिम सदस्यता सक्षम करने के लिए उपयोगकर्ता प्रवाह
फ़ीचर झंडे
एमईपी का समर्थन करने के लिए, उपकरणों को निम्नलिखित फीचर झंडे घोषित करने होंगे:
एलपीए कार्यान्वयन
एमईपी का समर्थन करने के लिए, सुनिश्चित करें कि आपका एलपीए कार्यान्वयन निम्नलिखित आवश्यकताओं को पूरा करता है:
- एकाधिक पोर्ट का समर्थन करने के लिए EuiccService से एपीआई लागू करता है।
- पोर्ट चयन और प्रोफ़ाइल सक्षम करने के लिए एपीआई का उपयोग करता है।
- यूएक्स प्रदान करता है जो वाहक ऐप्स को चयनित पोर्ट पर प्रोफ़ाइल सक्षम करने की अनुमति देता है।
मान्यकरण
एमईपी सुविधा के आपके कार्यान्वयन का परीक्षण करने के लिए, सुनिश्चित करें कि बिल्ड निम्नलिखित सीटीएस परीक्षण मामलों (सार्वजनिक एपीआई के लिए) पास करते हैं: /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts
डिवाइस निर्माताओं को अपने मॉडेम, eUICC चिप और eSIM OS विक्रेताओं के साथ भी काम करना चाहिए ताकि यह सुनिश्चित हो सके कि डिवाइस निम्नलिखित कार्य कर सके:
- दो eSIM प्रोफाइल को सक्षम किया जा सकता है और दो अलग-अलग नेटवर्क से जोड़ा जा सकता है।
- eSIM प्रोफाइल को किसी भी eSIM पोर्ट पर सक्रिय और निष्क्रिय किया जा सकता है।
- वाहक ऐप द्वारा ट्रिगर किया गया एक यूएक्स प्रवाह है जो उपयोगकर्ताओं को प्रोफ़ाइल स्विच करने की अनुमति देता है।
वाहकों के लिए सिफ़ारिश
यह सुनिश्चित करने के लिए कि eSIM प्रोफाइल को एक पोर्ट से दूसरे पोर्ट पर ले जाने पर उपयोगकर्ता सेवा न खोएं, हम अनुशंसा करते हैं कि वाहक निम्नलिखित के लिए समर्थन प्रदान करें:
- IMEI और SIM की फ़्लूइड मैपिंग
- प्रत्येक eUICC पहचानकर्ता (EID) के लिए एकाधिक ICCID या सिम