चालू की गई एक से ज़्यादा प्रोफ़ाइलें

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

बैकग्राउंड

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

ईयूआईसीसी आर्किटेक्चर

इस सेक्शन में, अलग-अलग Android वर्शन के लिए एमईपी वाले डिवाइसों के ई-सिम चिप आर्किटेक्चर और एमईपी के बिना डिवाइसों के ई-सिम चिप आर्किटेक्चर के बारे में बताया गया है.

Android 14

Android 14 या इसके बाद के वर्शन वाले डिवाइसों के लिए, Android, जारी करने वाले के सुरक्षा डोमेन रूट (आईएसडी-आर) और GSMA SGP V22 3.0 में बताए गए ई-सिम पोर्ट को चुनने के लिए, MEP-A1 और MEP-B विकल्पों के साथ काम करता है. यहां MEP-A1 और MEP-B ISD-R के सिलेक्शन मॉडल के बारे में बताया गया है.

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

    MEP-A1 ISD-R सिलेक्शन मॉडल

    पहली इमेज. MEP-A1 ISD-R सिलेक्शन मॉडल

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

    एमईपी-बी आईएसडी-आर चुनने का मॉडल

    दूसरी इमेज. एमईपी-बी आईएसडी-आर चुनने का मॉडल

Android 13

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

एमईपी की सुविधा के साथ ई-सिम चिप आर्किटेक्चर

तीसरा इलस्ट्रेशन. एमईपी के साथ काम करने वाली eSIM चिप का आर्किटेक्चर (Android 13 या इसके बाद का वर्शन)

Android 12 और उससे पहले के वर्शन

Android 12 या उससे पहले के वर्शन वाले उन डिवाइसों के लिए जिनमें एमईपी वाला वर्शन नहीं है, जैसा कि इमेज 4 में दिखाया गया है. ई-सिम स्लॉट, एक बार में सिर्फ़ एक चालू प्रोफ़ाइल के साथ काम करता है और डिवाइस पर डीएसडीएस की सुविधा काम नहीं करती.

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

चौथा इलस्ट्रेशन. MEP के बिना काम करने वाला ई-सिम चिप आर्किटेक्चर (Android 12 या इससे पहले के वर्शन)

एक से ज़्यादा चालू प्रोफ़ाइलों के लिए, एपीआई की जानकारी का फ़्लो

पांचवीं इमेज में, Android 13 में eUICC के लिए एमईपी के बारे में जानकारी देने वाले फ़्लो के बारे में बताया गया है. टेलीफ़ोनी फ़्रेमवर्क में UiccPort क्लास शामिल होती है, जो eUICC पर फ़िज़िकल स्ट्रक्चर को दिखाती है. UiccPort क्लास का इस्तेमाल सभी तरह के सिम कार्ड के लिए किया जाता है: फ़िज़िकल सिम (पीएसआईएम), इंटिग्रेटेड सिम (आईसिम), और एम्बेड किया गया सिम (ई-सिम). एक से ज़्यादा पोर्ट वाले eUICC के लिए, एक UiccSlot ऑब्जेक्ट और UiccCard ऑब्जेक्ट, एक से ज़्यादा UiccPort इंस्टेंस पर मैप होते हैं. हर UiccPort इंस्टेंस, ज़्यादा से ज़्यादा एक UiccProfile इंस्टेंस से लिंक हो सकता है. इस फ़्लो की मदद से, UiccPort को लॉजिकल स्लॉट पर मैप किया जा सकता है और UiccSlot (फ़िज़िकल स्लॉट) को कई लॉजिकल स्लॉट पर मैप किया जा सकता है.

एमईपी का डेटा फ़्लो

पांचवीं इमेज. एमईपी के साथ काम करने वाले ईयूआईसीसी के लिए जानकारी का फ़्लो

लागू करना

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

एचएएल की ज़रूरी शर्तें

eUICC के लिए एमईपी की सुविधा इस्तेमाल करने के लिए, /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 इंटरफ़ेस का कलेक्शन शामिल होता है. इसमें पोर्ट इंडेक्स, चालू की गई प्रोफ़ाइल का आईसीसीआईडी, और पोर्ट की स्थिति शामिल होती है. मॉडम सेवा के लिए, कम से कम दो SimPortInfo ऑब्जेक्ट मिलने चाहिए.

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

setSimSlotMapping

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

ईयूआईसीसी के लिए एमईपी की सुविधा देने वाले एपीआई

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

यूआईसी कार्डजानकारी

  • (Android 13 और उसके बाद के वर्शन) isMultipleEnabledProfilesSupported : इससे पता चलता है कि यह यूज़र इंटरफ़ेस (यूआईसीसी), एमईपी के साथ काम करता है या नहीं.
  • (Android 13 और उसके बाद के वर्शन) getPorts: किसी खास UICC के लिए, सभी संभावित पोर्ट की सूची दिखाता है. अगर UICC, ऐसा pSIM या eSIM है जो एमईपी के साथ काम नहीं करता, तो एक एलिमेंट की सूची दिखाता है.
  • (अब काम नहीं करता) getIccId: यह फ़ंक्शन एक आईसीसीआईडी दिखाता है. एमईपी वाले डिवाइसों के लिए, किसी यूआईसीसी में एक से ज़्यादा आईसीसीआईडी हो सकते हैं. इसलिए, इसके बजाय UiccPortInfo.getIccId() का इस्तेमाल करें.

(Android 13 और उसके बाद के वर्शन) UiccPortInfo

  • getIccId: अगर इस पोर्ट पर कोई चालू सदस्यता है, तो आईसीसीआईडी दिखाता है.
  • getPortIndex: यह पोर्ट इंडेक्स को दिखाता है.
  • getLogicalSlotIndex: यह सक्रिय लॉजिकल मॉडेम स्टैक इंडेक्स दिखाता है.

सदस्यता की जानकारी

  • (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: यह विकल्प, किसी खास पोर्ट पर दी गई सदस्यता पर स्विच करता है. एलपीए लागू करने के लिए ज़रूरी है कि यह Android 13 और उसके बाद के वर्शन पर काम करे.

TelephonyManager

  • (Android 13 और उसके बाद के वर्शन) getSimApplicationState: यह एक कॉन्स्टेंट दिखाता है, जो कार्ड के आवेदन की स्थिति के बारे में बताता है. यह एपीआई, फ़िज़िकल स्लॉट इंडेक्स और पोर्ट इंडेक्स, दोनों से पास होता है. यह getSimApplicationState(int physicalSlotIndex) यह तरीका अब सेवा में नहीं है. यहsimApplicationState ऑब्जेक्ट पाने के लिए, सिर्फ़ फ़िज़िकल स्लॉट इंडेक्स को पास करता है.
  • (Android 13 और उसके बाद के वर्शन) setSimSlotMapping(Collection<UiccSlotMapping> slots): लॉजिकल स्लॉट को फ़िज़िकल स्लॉट और पोर्ट से मैप करता है.
  • (Android 13 और उसके बाद के वर्शन) Collection<UiccSlotMapping> getSimSlotMapping: लॉजिकल स्लॉट से फ़िज़िकल सिम स्लॉट और पोर्ट इंडेक्स पर मैपिंग करता है.

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

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

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

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

Feature flags

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

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

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

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

पुष्टि करें

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

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

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

मोबाइल और इंटरनेट सेवा देने वाली कंपनियों के लिए सुझाव

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

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