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