एक से ज़्यादा प्रोफ़ाइलें चालू हैं

Android 13 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए, Android, eUICC के लिए एक से ज़्यादा चालू प्रोफ़ाइलों (एमईपी) के साथ काम करता है. इस सुविधा की मदद से, डिवाइसों में एक ही ई-सिम चिप का इस्तेमाल करके, दो सिम इस्तेमाल किए जा सकते हैं. इस चिप में कई सिम प्रोफ़ाइलें हो सकती हैं. साथ ही, यह एक ही समय में दो अलग-अलग मोबाइल और इंटरनेट सेवा देने वाली कंपनियों से कनेक्ट हो सकती है. डिवाइस बनाने वाली कंपनियों को, SoC वेंडर और ई-सिम चिपसेट वेंडर के साथ मिलकर काम करना होगा. इससे वे अपने डिवाइसों में इस सुविधा को इंटिग्रेट कर पाएंगी.

बैकग्राउंड

Android 12 और इससे पहले के वर्शन पर चलने वाले डिवाइसों पर, AOSP एक ही ई-सिम से एक साथ कई प्रोफ़ाइलों को इस्तेमाल करने की सुविधा सीमित तौर पर देता है. ई-सिम से काफ़ी जगह बचती है और इसकी लागत भी कम होती है. हालांकि, दो सिम कार्ड इस्तेमाल करने की सुविधा न होने की वजह से, डिवाइस बनाने वाली कंपनियां सिर्फ़ ई-सिम वाले डिवाइस नहीं बना पाती हैं. सिर्फ़ ई-सिम की सुविधा वाले डिवाइस पर ड्यूअल सिम की सुविधा देने के लिए, डिवाइस बनाने वाली कंपनियों को डिवाइस में दो ई-सिम एलिमेंट डालने होते हैं. इससे, डिवाइस बनाने में इस्तेमाल होने वाले कॉम्पोनेंट की लागत बढ़ जाती है. साथ ही, सदस्यता मैनेज करने के दौरान उपयोगकर्ताओं को खराब अनुभव मिलता है. 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 चुनने के मॉडल के बारे में बताया गया है.

  • MEP-A1: पोर्ट 0 पर ISD-R चुना गया है (कमांड पोर्ट 0 है) और ई-सिम पोर्ट 1 और उससे ज़्यादा पर प्रोफ़ाइलें चुनी गई हैं. ES10 कमांड हमेशा पोर्ट 0 पर भेजी जाती हैं. साथ ही, कमांड पोर्ट और टारगेट पोर्ट हमेशा अलग-अलग होते हैं. एलपीए, पोर्ट चुनता है.

    MEP-A1 ISD-R चुनने का मॉडल

    पहली इमेज. MEP-A1 ISD-R चुनने का मॉडल

  • MEP-B: किसी भी पोर्ट पर 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 या इससे पहले के वर्शन वाले ऐसे डिवाइसों में, एक समय में सिर्फ़ एक eSIM प्रोफ़ाइल इस्तेमाल की जा सकती है. साथ ही, इनमें DSDS की सुविधा काम नहीं करती. इन डिवाइसों में MEP की सुविधा नहीं होती है. इनके बारे में इमेज 4 में बताया गया है.

ई-सिम चिप का ऐसा आर्किटेक्चर जिसमें MEP की सुविधा काम नहीं करती

चौथी इमेज. 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 चुनने का मॉडल) का इस्तेमाल करता है. साथ ही, आईसीसी लॉजिकल चैनल के ऑपरेशन के दौरान ES10 APDU कमांड की जानकारी देता है.

CardStatus

मॉडम में getIccCardStatusResponse तरीके के जवाब के तौर पर, CardStatus एपीआई काम करना चाहिए. जवाब में, SimPortSlotMapping के ज़रिए तय किया गया पोर्ट इंडेक्स और फ़िज़िकल स्लॉट इंडेक्स शामिल होना चाहिए.

Android 14 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए, यह ज़रूरी है कि मॉडम, MEP मोड के साथ काम करे. साथ ही, सभी CardStatus इवेंट के साथ काम करे.

SimSlotStatus

मॉडम में getSimSlotsStatus तरीके के जवाब के तौर पर, SimSlotStatus एपीआई काम करना चाहिए. सिम स्लॉट के स्टेटस में SimPortInfo इंटरफ़ेस की एक ऐरे शामिल होती है. इसमें पोर्ट इंडेक्स, चालू की गई प्रोफ़ाइल के लिए ICCID, और पोर्ट की स्थिति शामिल होती है. मॉडेम को कम से कम दो SimPortInfo ऑब्जेक्ट वापस भेजने चाहिए.

Android 14 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए, यह ज़रूरी है कि मॉडम, MEP मोड के साथ काम करे. साथ ही, सभी CardStatus इवेंट के साथ काम करे.

setSimSlotMapping

setSimSlotMapping तरीके में, SimPortSlotMapping का एक कलेक्शन पास करना ज़रूरी है. ऐरे का इंडेक्स लॉजिकल स्लॉट होता है और SimPortSlotMapping, मैप किए गए पोर्ट और फ़िज़िकल स्लॉट के इंडेक्स के बारे में बताता है. setSimSlotMapping तरीके से, पोर्ट से लॉजिकल स्लॉट तक मैपिंग सेट की जाती है. एलपीए ऐप्लिकेशन, चालू पोर्ट चुनने के लिए इस तरीके का इस्तेमाल करता है.

eUICC के लिए MEP की सुविधा देने वाले एपीआई

AOSP टेलीफ़ोनी स्टैक के तहत, एक से ज़्यादा प्रोफ़ाइलें चालू करने की सुविधा वाले Android डिवाइसों के लिए, इन एपीआई के साथ काम करना ज़रूरी है.

UiccCardInfo

  • (Android 13 और इसके बाद के वर्शन) isMultipleEnabledProfilesSupported : इससे यह पता चलता है कि यह यूआईसीसी, एमईपी के साथ काम करता है या नहीं.
  • (Android 13 और उसके बाद के वर्शन) getPorts: यह किसी यूआईसीसी के लिए, सभी संभावित पोर्ट की सूची दिखाता है. अगर UICC, pSIM या eSIM है और MEP के साथ काम नहीं करता है, तो यह एक एलिमेंट की सूची दिखाता है.
  • (अब इस्तेमाल नहीं किया जा सकता) getIccId: यह फ़ंक्शन, ICCID दिखाता है. एमईपी की सुविधा वाले डिवाइसों के लिए, किसी 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: यह एक कॉन्स्टेंट वैल्यू दिखाता है, जो कार्ड के लिए किए गए आवेदन की स्थिति के बारे में बताती है. यह एपीआई, फ़िज़िकल स्लॉट इंडेक्स और पोर्ट इंडेक्स, दोनों को पास करता है. simApplicationState ऑब्जेक्ट पाने के लिए, getSimApplicationState(int physicalSlotIndex) तरीके (अब इस्तेमाल नहीं किया जाता) से सिर्फ़ फ़िज़िकल स्लॉट इंडेक्स पास किया जाता है.
  • (Android 13 और उसके बाद के वर्शन) setSimSlotMapping(Collection<UiccSlotMapping> slots): यह लॉजिकल स्लॉट को फ़िज़िकल स्लॉट और पोर्ट से मैप करता है.
  • (Android 13 और उसके बाद के वर्शन) Collection<UiccSlotMapping> getSimSlotMapping: यह लॉजिकल स्लॉट से फ़िज़िकल सिम स्लॉट और पोर्ट इंडेक्स तक की मैपिंग की जानकारी देता है.

उपयोगकर्ता इंटरफ़ेस

eSIM पोर्ट के चुनाव से जुड़ी समस्या को हल करने के लिए, MEP की सुविधा वाले डिवाइसों पर उपयोगकर्ताओं को नई सदस्यता चालू करने के लिए, चालू की गई किसी एक सदस्यता को बंद करना होगा. Android 13 में, AOSP में उपयोगकर्ता फ़्लो शामिल है. इसमें तीन विकल्पों वाला डायलॉग बॉक्स होता है. इसे Settings ऐप्लिकेशन से सदस्यता चालू करने वाले उपयोगकर्ता फ़्लो पर लागू किया जा सकता है. छठे फ़िगर में, इस यूज़र एक्सपीरियंस फ़्लो का उदाहरण दिखाया गया है.

एमईपी सिम की सदस्यता के लिए यूज़र फ़्लो

छठी इमेज. सिम की सदस्यता चालू करने के लिए यूज़र फ़्लो

Feature flags

एमईपी की सुविधा के लिए, डिवाइसों को इन फ़ीचर फ़्लैग का एलान करना होगा:

एलपीए लागू करना

एमईपी की सुविधा काम करे, इसके लिए पक्का करें कि एलपीए को लागू करने से जुड़ी ये ज़रूरी शर्तें पूरी होती हों:

  • एक से ज़्यादा पोर्ट के साथ काम करने के लिए, EuiccService से एपीआई लागू करता है.
  • यह पोर्ट चुनने और प्रोफ़ाइल चालू करने के लिए, एपीआई का इस्तेमाल करता है.
  • इससे मोबाइल और इंटरनेट सेवा देने वाली कंपनियों के ऐप्लिकेशन को, चुने गए पोर्ट पर प्रोफ़ाइलें चालू करने की अनुमति मिलती है.

Validation

एमईपी सुविधा को लागू करने की जांच करने के लिए, पक्का करें कि बिल्ड इन सीटीएस टेस्ट केस (सार्वजनिक एपीआई के लिए) पास करें: /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts.

डिवाइस बनाने वाली कंपनियों को अपने मॉडम, eUICC चिप, और ई-सिम ओएस वेंडर के साथ मिलकर काम करना चाहिए. इससे यह पक्का किया जा सकेगा कि डिवाइस ये काम कर सकता है:

  • दो ई-सिम प्रोफ़ाइलें चालू की जा सकती हैं और उन्हें दो अलग-अलग नेटवर्क से जोड़ा जा सकता है.
  • ई-सिम प्रोफ़ाइलों को किसी भी ई-सिम पोर्ट पर चालू और बंद किया जा सकता है.
  • कैरियर ऐप्लिकेशन से ट्रिगर होने वाला यूज़र एक्सपीरियंस (यूएक्स) फ़्लो होता है. इससे उपयोगकर्ताओं को प्रोफ़ाइलें स्विच करने की अनुमति मिलती है.

कैरियर के लिए सुझाव

हमारा सुझाव है कि मोबाइल और इंटरनेट सेवा देने वाली कंपनियां, इन सुविधाओं के लिए सहायता उपलब्ध कराएं, ताकि उपयोगकर्ता एक पोर्ट से दूसरे पोर्ट पर ई-सिम प्रोफ़ाइलें ट्रांसफ़र करते समय, सेवा का इस्तेमाल जारी रख सकें:

  • IMEI और सिम की फ़्लूइड मैपिंग
  • हर eUICC आइडेंटिफ़ायर (ईआईडी) के लिए, एक से ज़्यादा ICCID या सिम