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 चुना गया है और प्रोफ़ाइलें eSIM पोर्ट 1 और उसके बाद के पोर्ट पर चुनी गई हैं. ES10 निर्देश हमेशा पोर्ट 0 पर भेजे जाते हैं. साथ ही, निर्देश पोर्ट और टारगेट पोर्ट हमेशा अलग-अलग होते हैं. एलपीए, पोर्ट चुनता है.
पहली इमेज. MEP-A1 ISD-R सिलेक्शन मॉडल
MEP-B: किसी भी पोर्ट पर ISD-R चुना जाता है और किसी भी पोर्ट को प्रोफ़ाइल असाइन की जा सकती है. चालू और बंद करने के निर्देश उस पोर्ट पर भेजे जाते हैं जहां प्रोफ़ाइल को चालू या बंद करना है (जहां रीफ़्रेश होना बाकी है). कमांड पोर्ट और टारगेट पोर्ट हमेशा एक ही होते हैं.
दूसरी इमेज. एमईपी-बी आईएसडी-आर का सिलेक्शन मॉडल
Android 13
Android 13 या इसके बाद के वर्शन वाले उन डिवाइसों में जिनमें एमईपी की सुविधा काम करती है, ई-सिम स्लॉट में एक से ज़्यादा eUICC पोर्ट होते हैं. इनमें से किसी भी पोर्ट में चालू की गई प्रोफ़ाइल हो सकती है. जैसा कि तीसरे चित्र में दिखाया गया है, इस आर्किटेक्चर में एक सिंगल eUICC (एक सिंगल फ़िज़िकल स्लॉट), ड्यूअल सिम ड्यूअल स्टैंडबाय (डीएसडीएस) मोड के साथ काम करता है. इसके लिए, हर eUICC पोर्ट को मॉडेम बेसबैंड से लिंक किया जाता है. Android 13 के एचएएल और एपीआई, एमईपी के वैरिएंट पर निर्भर नहीं होते.
तीसरा इलस्ट्रेशन. एमईपी के साथ काम करने वाली eSIM चिप का आर्किटेक्चर (Android 13 या इसके बाद का वर्शन)
Android 12 और उससे पहले के वर्शन
चौथे चित्र में दिखाए गए तौर पर, Android 12 या उससे पहले के वर्शन वाले ऐसे डिवाइसों के लिए जिनमें एमईपी नहीं है, ई-सिम स्लॉट में एक बार में सिर्फ़ एक चालू प्रोफ़ाइल काम करती है. साथ ही, डिवाइस में डीएसडीएस की सुविधा काम नहीं करती.
चौथा इलस्ट्रेशन. MEP के बिना काम करने वाला eSIM चिप आर्किटेक्चर (Android 12 या इससे पहले के वर्शन)
चालू की गई एक से ज़्यादा प्रोफ़ाइलों के लिए एपीआई की जानकारी का फ़्लो
पांचवीं इमेज में, Android 13 में eUICC के लिए एमईपी के बारे में जानकारी देने वाले फ़्लो के बारे में बताया गया है. टेलीफ़ोनी फ़्रेमवर्क में UiccPort
क्लास शामिल होती है, जो eUICC पर फ़िज़िकल स्ट्रक्चर को दिखाती है. UiccPort
क्लास का इस्तेमाल, सभी तरह के सिम कार्ड के लिए किया जाता है: फ़िज़िकल सिम (pSIM), इंटिग्रेटेड सिम (iSIM), और एम्बेडेड सिम (eSIM). एक से ज़्यादा पोर्ट वाले eUICC के लिए, एक UiccSlot
ऑब्जेक्ट और UiccCard
ऑब्जेक्ट, एक से ज़्यादा UiccPort
इंस्टेंस पर मैप होते हैं. हर UiccPort
इंस्टेंस, ज़्यादा से ज़्यादा एक
UiccProfile
इंस्टेंस से लिंक हो सकता है. इस फ़्लो की मदद से, UiccPort
को लॉजिकल स्लॉट पर मैप किया जा सकता है और UiccSlot
(फ़िज़िकल स्लॉट) को कई लॉजिकल स्लॉट पर मैप किया जा सकता है.
पांचवीं इमेज. एमईपी के साथ काम करने वाले ईयूआईसीसी के लिए जानकारी का फ़्लो
लागू करना
इस सेक्शन में, एमईपी सुविधा को लागू करने का तरीका बताया गया है. इसमें एचएएल की ज़रूरी शर्तों, एपीआई, और यूज़र इंटरफ़ेस के बारे में जानकारी भी शामिल है. डिवाइस बनाने वाली कंपनियों को एमईपी की सुविधा देने के लिए, एसओसी वेंडर और ई-सिम चिपसेट वेंडर के साथ काम करना चाहिए.
एचएएल की ज़रूरी शर्तें
eUICC के लिए एमईपी की सुविधा इस्तेमाल करने के लिए, /platform/hardware/interfaces/radio/aidl/aidl_api
में मौजूद ये IRadio AIDL HAL API लागू करें.
Android 14 या इसके बाद के वर्शन वाले डिवाइसों के लिए, एचएएल इंटरफ़ेस के IRadio 2.1 वर्शन का इस्तेमाल करना ज़रूरी है. यह वर्शन, MultipleEnabledProfileMode
(मोडेम या eUICC के साथ काम करने वाला आईएसडी-आर सिलेक्शन मॉडल) का इस्तेमाल करता है. साथ ही, आईसीसी लॉजिकल चैनल के ऑपरेशन के दौरान, ES10 APDU कमांड की जानकारी पास करता है.
CardStatus
यह ज़रूरी है कि मोडेम, getIccCardStatusResponse
तरीके के जवाब के तौर पर CardStatus
एपीआई के साथ काम करता हो. रिस्पॉन्स में, SimPortSlotMapping
के ज़रिए तय किया गया पोर्ट इंडेक्स और फ़िज़िकल स्लॉट इंडेक्स शामिल होना चाहिए.
Android 14 या इसके बाद के वर्शन वाले डिवाइसों के लिए, मॉडेम को सभी CardStatus इवेंट के साथ, काम करने वाले MEP मोड को पास करना होगा.
SimSlotStatus
यह ज़रूरी है कि मोडेम, getSimSlotsStatus
तरीके के जवाब के तौर पर, SimSlotStatus
एपीआई के साथ काम करता हो. सिम स्लॉट के स्टेटस में, SimPortInfo
इंटरफ़ेस का कलेक्शन शामिल होता है. इसमें पोर्ट इंडेक्स, चालू की गई प्रोफ़ाइल का आईसीसीआईडी, और पोर्ट की स्थिति शामिल होती है. मॉडेम को कम से कम दो SimPortInfo
ऑब्जेक्ट दिखाने चाहिए.
Android 14 या इसके बाद के वर्शन वाले डिवाइसों के लिए, मॉडेम को सभी CardStatus इवेंट के साथ, काम करने वाले MEP मोड को पास करना होगा.
setSimSlotMapping
setSimSlotMapping
के लिए, SimPortSlotMapping
का ऐरे पास करना ज़रूरी है.
ऐरे का इंडेक्स, लॉजिकल स्लॉट होता है और SimPortSlotMapping
, मैप किए गए पोर्ट और फ़िज़िकल स्लॉट के इंडेक्स के बारे में बताता है. setSimSlotMapping
तरीका, पोर्ट से लॉजिकल स्लॉट पर मैपिंग सेट करता है. LPA ऐप्लिकेशन, चालू पोर्ट चुनने के लिए इस तरीके का इस्तेमाल करता है.
ईयूआईसीसी के लिए एमईपी की सुविधा देने वाले एपीआई
AOSP के टेलीफ़ोन स्टैक के हिस्से के तौर पर, एक से ज़्यादा चालू प्रोफ़ाइलों के साथ काम करने वाले Android डिवाइसों के लिए, इन एपीआई के साथ काम करना ज़रूरी है.
UiccCardInfo
- (Android 13 और उसके बाद के वर्शन)
isMultipleEnabledProfilesSupported
: यह बताता है कि यह यूआईसीसी, एमईपी के साथ काम करता है या नहीं. - (Android 13 और उसके बाद के वर्शन)
getPorts
: किसी खास UICC के लिए, सभी संभावित पोर्ट की सूची दिखाता है. अगर UICC, ऐसा pSIM या eSIM है जो एमईपी के साथ काम नहीं करता, तो एक एलिमेंट की सूची दिखाता है. - (अब काम नहीं करता)
getIccId
: आईसीसीआईडी दिखाता है. एमईपी वाले डिवाइसों के लिए, किसी यूआईसीसी में एक से ज़्यादा आईसीसीआईडी हो सकते हैं. इसलिए, इसके बजायUiccPortInfo.getIccId()
का इस्तेमाल करें.
(Android 13 और उसके बाद के वर्शन) UiccPortInfo
getIccId
: अगर इस पोर्ट पर कोई चालू सदस्यता है, तो आईसीसीआईडी दिखाता है.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
: यह किसी पोर्ट पर मौजूद सदस्यता पर स्विच करता है. एलपीए लागू करने के लिए, यह ज़रूरी है कि यह सुविधा Android 13 और इसके बाद के वर्शन पर काम करे.
TelephonyManager
- (Android 13 और उसके बाद के वर्शन)
getSimApplicationState
: यह एक कॉन्स्टेंट दिखाता है, जो कार्ड के आवेदन की स्थिति के बारे में बताता है. यह एपीआई, फ़िज़िकल स्लॉट इंडेक्स और पोर्ट इंडेक्स, दोनों को पास करता है.simApplicationState
ऑब्जेक्ट पाने के लिए,getSimApplicationState(int physicalSlotIndex)
वाला तरीका (अब काम नहीं करता) सिर्फ़ फ़िज़िकल स्लॉट का इंडेक्स पास करता है. - (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 और सिम की फ़्लूइड मैपिंग
- हर eUICC आइडेंटिफ़ायर (ईआईडी) के लिए एक से ज़्यादा आईसीसीआईडी या सिम