Android 13 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए, Android, eUICC के लिए एक से ज़्यादा चालू प्रोफ़ाइलों (एमईपी) के साथ काम करता है. इस सुविधा की मदद से, डिवाइसों में एक ही ई-सिम चिप का इस्तेमाल करके, दो सिम इस्तेमाल किए जा सकते हैं. इसमें कई सिम प्रोफ़ाइल हो सकती हैं और यह एक ही समय में दो अलग-अलग मोबाइल और इंटरनेट सेवा देने वाली कंपनियों से कनेक्ट हो सकती है. डिवाइस बनाने वाली कंपनियों को, एसओसी और ई-सिम चिपसेट बनाने वाली कंपनियों के साथ मिलकर काम करना होगा. इससे वे अपने डिवाइसों में यह सुविधा जोड़ पाएंगी.
बैकग्राउंड
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 में बताए गए eSIM पोर्ट चुनने के लिए, MEP-A1 और MEP-B विकल्पों के साथ काम करता है. यहां 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 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों को, एचएएल इंटरफ़ेस के IRadio 2.1 वर्शन का इस्तेमाल करना होगा. यह MultipleEnabledProfileMode (मॉडेम या eUICC के साथ काम करने वाला ISD-R सिलेक्शन मॉडल) का इस्तेमाल करता है. साथ ही, आईसीसी लॉजिकल चैनल के ऑपरेशन के दौरान 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 के साथ काम नहीं करता है, तो यह एक एलिमेंट की सूची दिखाता है.
- (Deprecated) 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 में, एओएसपी में उपयोगकर्ता फ़्लो शामिल है. इसमें तीन विकल्पों वाला डायलॉग बॉक्स होता है. इसे Settings ऐप्लिकेशन से सदस्यता चालू करने वाले उपयोगकर्ता फ़्लो पर लागू किया जा सकता है. छठे फ़िगर में, इस यूएक्स फ़्लो का उदाहरण दिखाया गया है.
 
 
छठी इमेज. सिम की सदस्यता चालू करने के लिए यूज़र फ़्लो
Feature flags
एमईपी की सुविधा के लिए, डिवाइसों को इन फ़ीचर फ़्लैग का एलान करना होगा:
एलपीए लागू करना
एमईपी की सुविधा के लिए, पक्का करें कि एलपीए को लागू करने से जुड़ी ये ज़रूरी शर्तें पूरी होती हों:
- यह कई पोर्ट के साथ काम करने के लिए, EuiccService से एपीआई लागू करता है.
- यह पोर्ट चुनने और प्रोफ़ाइल चालू करने के लिए, एपीआई का इस्तेमाल करता है.
- इससे मोबाइल और इंटरनेट सेवा देने वाली कंपनियों के ऐप्लिकेशन को, चुने गए पोर्ट पर प्रोफ़ाइलें चालू करने की अनुमति मिलती है.
Validation
एमईपी सुविधा को लागू करने की जांच करने के लिए, पक्का करें कि बिल्ड, सीटीएस के इन टेस्ट केस को पास करते हों (सार्वजनिक एपीआई के लिए):
/platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts.
डिवाइस बनाने वाली कंपनियों को अपने मॉडम, eUICC चिप, और eSIM ओएस वेंडर के साथ मिलकर काम करना चाहिए. इससे यह पक्का किया जा सकेगा कि डिवाइस ये काम कर सकता है:
- दो ई-सिम प्रोफ़ाइलें चालू की जा सकती हैं और उन्हें दो अलग-अलग नेटवर्क से जोड़ा जा सकता है.
- ई-सिम प्रोफ़ाइलों को किसी भी ई-सिम पोर्ट पर चालू और बंद किया जा सकता है.
- कैरियर ऐप्लिकेशन से ट्रिगर होने वाला यूज़र एक्सपीरियंस (यूएक्स) फ़्लो होता है. इससे उपयोगकर्ताओं को प्रोफ़ाइलें स्विच करने की अनुमति मिलती है.
कैरियर के लिए सुझाव
हमारा सुझाव है कि मोबाइल और इंटरनेट सेवा देने वाली कंपनियां, इन सुविधाओं के लिए सहायता उपलब्ध कराएं, ताकि उपयोगकर्ता एक पोर्ट से दूसरे पोर्ट पर ई-सिम प्रोफ़ाइलें ट्रांसफ़र करते समय, सेवा का इस्तेमाल जारी रख सकें:
- IMEI और सिम की फ़्लूइड मैपिंग
- हर eUICC आइडेंटिफ़ायर (ईआईडी) के लिए, एक से ज़्यादा ICCID या सिम
