একাধিক সক্রিয় প্রোফাইল

অ্যান্ড্রয়েড ১৩ বা তার পরবর্তী ভার্সনে চলা ডিভাইসগুলির জন্য, অ্যান্ড্রয়েড eUICC-এর জন্য একাধিক সক্ষম প্রোফাইল (MEPs) সমর্থন করে। এই বৈশিষ্ট্যটি ডিভাইসগুলিকে একটি একক eSIM চিপ ব্যবহার করে ডুয়াল সিম সমর্থন করার অনুমতি দেয়, যার একাধিক সিম প্রোফাইল থাকতে পারে এবং একই সাথে দুটি ভিন্ন ক্যারিয়ারের সাথে সংযোগ স্থাপন করতে পারে। ডিভাইস নির্মাতাদের তাদের ডিভাইসে এই বৈশিষ্ট্যটি সংহত করার জন্য SoC বিক্রেতা এবং eSIM চিপসেট বিক্রেতাদের সাথে কাজ করতে হবে।

পটভূমি

অ্যান্ড্রয়েড ১২ এবং তার নিচের ভার্সনে চলমান ডিভাইসগুলিতে, AOSP সীমিত সহায়তা প্রদান করে যাতে একটি একক eSIM একই সময়ে একাধিক প্রোফাইল সমর্থন করতে পারে। eSIM-এর উল্লেখযোগ্য স্থান এবং খরচ সাশ্রয় সত্ত্বেও, ডুয়াল সিম সমর্থনের এই অভাব ডিভাইস নির্মাতাদের শুধুমাত্র eSIM ডিভাইস গ্রহণ করতে বাধা দেয়। একটি eSIM-কেবল ডিভাইসে ডুয়াল সিম সমর্থন প্রদানের জন্য, ডিভাইস নির্মাতাদের ডিভাইসে দুটি eSIM উপাদান প্যাক করতে হয়, যা বিল অফ ম্যাটেরিয়াল (BOM) খরচ বৃদ্ধি করে এবং সাবস্ক্রিপশন পরিচালনার জন্য ব্যবহারকারীর অভিজ্ঞতা খারাপ করে। অ্যান্ড্রয়েড ১৩ থেকে AOSP-তে উপলব্ধ MEP বৈশিষ্ট্যটি এই সমস্যার সমাধান করে।

eUICC স্থাপত্য

এই বিভাগটি বিভিন্ন অ্যান্ড্রয়েড সংস্করণের জন্য MEP সহ ডিভাইসগুলির জন্য eSIM চিপ আর্কিটেকচার এবং MEP ছাড়া ডিভাইসগুলির জন্য eSIM চিপ আর্কিটেকচার বর্ণনা করে।

অ্যান্ড্রয়েড ১৪

অ্যান্ড্রয়েড ১৪ বা তার বেশি ভার্সন চালিত ডিভাইসগুলির জন্য, অ্যান্ড্রয়েড ইস্যুকারী সুরক্ষা ডোমেন রুট (ISD-R) নির্বাচন এবং GSMA SGP V22 3.0 এ উল্লেখিত eSIM পোর্ট নির্বাচনের জন্য MEP-A1 এবং MEP-B বিকল্পগুলিকে সমর্থন করে। নিম্নলিখিতটি MEP-A1 এবং MEP-B ISD-R নির্বাচন মডেলগুলি বর্ণনা করে:

  • MEP-A1: ISD-R পোর্ট 0 (কমান্ড পোর্ট 0) এ নির্বাচিত হয় এবং প্রোফাইলগুলি eSIM পোর্ট 1 এবং উচ্চতর পোর্টে নির্বাচিত হয়। ES10 কমান্ডগুলি সর্বদা পোর্ট 0 এ পাঠানো হয় এবং কমান্ড পোর্ট এবং টার্গেট পোর্ট সর্বদা আলাদা থাকে। LPA পোর্টটি নির্বাচন করে।

    MEP-A1 ISD-R নির্বাচন মডেল

    চিত্র ১. MEP-A1 ISD-R নির্বাচন মডেল

  • MEP-B: যেকোনো পোর্টে ISD-R নির্বাচন করা হয় এবং যেকোনো পোর্টকে একটি প্রোফাইল বরাদ্দ করা যেতে পারে। enable এবং disable কমান্ডগুলি সেই পোর্টে পাঠানো হয় যেখানে প্রোফাইলটি সক্রিয় বা নিষ্ক্রিয় করার প্রয়োজন হয় (যেখানে একটি রিফ্রেশ মুলতুবি থাকে)। কমান্ড পোর্ট এবং টার্গেট পোর্ট সর্বদা একই থাকে।

    MEP-B ISD-R নির্বাচন মডেল

    চিত্র ২। MEP-B ISD-R নির্বাচন মডেল

অ্যান্ড্রয়েড ১৩

অ্যান্ড্রয়েড ১৩ বা তার পরবর্তী সংস্করণে, MEP সমর্থনকারী ডিভাইসগুলিতে, eSIM স্লটে একাধিক eUICC পোর্ট থাকে যেখানে প্রতিটি পোর্টের একটি সক্রিয় প্রোফাইল থাকতে পারে। চিত্র ৩-এ দেখানো হয়েছে, এই আর্কিটেকচারের সাহায্যে, একটি একক eUICC (একক শারীরিক স্লট) প্রতিটি eUICC পোর্টকে একটি মডেম বেসব্যান্ডের সাথে সংযুক্ত করে ডুয়াল সিম ডুয়াল স্ট্যান্ডবাই (DSDS) সমর্থন করে। অ্যান্ড্রয়েড ১৩ HAL এবং API গুলি MEP ভেরিয়েন্ট থেকে স্বাধীন।

MEP সাপোর্ট সহ eSIM চিপ আর্কিটেকচার

চিত্র ৩. MEP সাপোর্ট সহ eSIM চিপ আর্কিটেকচার (Android 13 বা উচ্চতর)

অ্যান্ড্রয়েড ১২ এবং তার আগের ভার্সন

চিত্র ৪-এ দেখানো হয়েছে যে, MEP ছাড়া Android 12 বা তার নিচের ভার্সন চালানো ডিভাইসগুলির জন্য, eSIM স্লট একবারে শুধুমাত্র একটি সক্রিয় প্রোফাইল সমর্থন করে। এর অর্থ হল ডিভাইসটি DSDS সমর্থন করতে পারে না।

MEP সাপোর্ট ছাড়াই eSIM চিপ আর্কিটেকচার

চিত্র ৪. MEP সাপোর্ট ছাড়াই eSIM চিপ আর্কিটেকচার (Android 12 বা তার কম)

একাধিক সক্ষম প্রোফাইলের জন্য API তথ্য প্রবাহ

চিত্র ৫ অ্যান্ড্রয়েড ১৩-তে eUICC-এর জন্য MEP-এর তথ্য প্রবাহ বর্ণনা করে। টেলিফোনি ফ্রেমওয়ার্কে UiccPort ক্লাস অন্তর্ভুক্ত রয়েছে, যা eUICC-এর ভৌত কাঠামো উপস্থাপন করে। UiccPort ক্লাসটি সকল ধরণের সিম কার্ডের জন্য ব্যবহৃত হয়: ভৌত SIM (pSIM), ইন্টিগ্রেটেড SIM (iSIM), এবং এমবেডেড SIM (eSIM)। একাধিক পোর্ট সহ একটি eUICC-এর জন্য, একটি একক UiccSlot অবজেক্ট এবং UiccCard অবজেক্ট ম্যাপ একাধিক UiccPort ইনস্ট্যান্সে। প্রতিটি UiccPort ইনস্ট্যান্স সর্বাধিক একটি UiccProfile ইনস্ট্যান্সের সাথে লিঙ্ক করতে পারে। এই প্রবাহ UiccPort একটি লজিক্যাল স্লটে ম্যাপ করতে এবং UiccSlot (ভৌত স্লট) কে একাধিক লজিক্যাল স্লটে ম্যাপ করতে দেয়।

MEP তথ্য প্রবাহ

চিত্র ৫। MEP সহায়তা সহ eUICC-এর জন্য তথ্য প্রবাহ

বাস্তবায়ন

এই বিভাগে MEP বৈশিষ্ট্যটি কীভাবে বাস্তবায়ন করতে হয় তা বর্ণনা করা হয়েছে, যার মধ্যে HAL প্রয়োজনীয়তা, API এবং ব্যবহারকারী ইন্টারফেস সম্পর্কে বিশদ অন্তর্ভুক্ত রয়েছে। MEP সমর্থন করার জন্য ডিভাইস নির্মাতাদের SoC বিক্রেতা এবং eSIM চিপসেট বিক্রেতাদের সাথে কাজ করা উচিত।

HAL প্রয়োজনীয়তা

eUICC-এর জন্য MEP সমর্থন করার জন্য, /platform/hardware/interfaces/radio/aidl/aidl_api তে অবস্থিত নিম্নলিখিত IRadio AIDL HAL API গুলি বাস্তবায়ন করুন।

অ্যান্ড্রয়েড ১৪ বা তার উচ্চতর ভার্সন চালিত ডিভাইসগুলিকে অবশ্যই HAL ইন্টারফেসের IRadio 2.1 সংস্করণ ব্যবহার করতে হবে, যা MultipleEnabledProfileMode (মডেম বা eUICC দ্বারা সমর্থিত ISD-R নির্বাচন মডেল) ব্যবহার করে এবং ICC লজিক্যাল চ্যানেল অপারেশনের সময় ES10 APDU কমান্ড তথ্য পাস করে।

কার্ডস্ট্যাটাস

getIccCardStatusResponse পদ্ধতির প্রতিক্রিয়া হিসেবে মডেমটিকে অবশ্যই CardStatus API সমর্থন করতে হবে। প্রতিক্রিয়াতে SimPortSlotMapping দ্বারা নির্দিষ্ট পোর্ট সূচক এবং শারীরিক স্লট সূচক অন্তর্ভুক্ত থাকতে হবে।

অ্যান্ড্রয়েড ১৪ বা তার উচ্চতর ভার্সন চালিত ডিভাইসের জন্য, মডেমকে সমস্ত কার্ডস্ট্যাটাস ইভেন্টের সাথে সমর্থিত MEP মোড পাস করতে হবে।

সিমস্লটস্ট্যাটাস

getSimSlotsStatus পদ্ধতির প্রতিক্রিয়া হিসেবে মডেমটিকে SimSlotStatus API সমর্থন করতে হবে। সিম স্লট স্ট্যাটাসে SimPortInfo ইন্টারফেসের একটি অ্যারে অন্তর্ভুক্ত থাকে, যার মধ্যে পোর্ট সূচক, সক্রিয় প্রোফাইলের জন্য ICCID এবং পোর্ট স্টেট অন্তর্ভুক্ত থাকে। মডেমটিকে কমপক্ষে দুটি SimPortInfo অবজেক্ট ফেরত দিতে হবে।

অ্যান্ড্রয়েড ১৪ বা তার উচ্চতর ভার্সন চালিত ডিভাইসের জন্য, মডেমকে সমস্ত কার্ডস্ট্যাটাস ইভেন্টের সাথে সমর্থিত MEP মোড পাস করতে হবে।

সেটসিমস্লটম্যাপিং

setSimSlotMapping পদ্ধতিতে SimPortSlotMapping এর একটি অ্যারে পাস করতে হবে। অ্যারের সূচক হল লজিক্যাল স্লট এবং SimPortSlotMapping সংশ্লিষ্ট ম্যাপ করা পোর্ট এবং ফিজিক্যাল স্লট সূচক নির্দিষ্ট করে। setSimSlotMapping পদ্ধতি পোর্ট থেকে লজিক্যাল স্লটে ম্যাপিং সেট করে। LPA অ্যাপটি সক্রিয় পোর্ট নির্বাচন করতে এই পদ্ধতি ব্যবহার করে।

eUICC-এর জন্য MEP সমর্থনকারী API গুলি

AOSP টেলিফোনি স্ট্যাকের অংশ হিসেবে একাধিক সক্রিয় প্রোফাইল সমর্থন করে এমন অ্যান্ড্রয়েড ডিভাইসগুলিতে নিম্নলিখিত API গুলি সমর্থন করা প্রয়োজন।

UiccCardInfo সম্পর্কে

  • (Android 13 এবং উচ্চতর) isMultipleEnabledProfilesSupported : এই UICC MEP সমর্থন করে কিনা তা ফেরত দেয়।
  • (Android 13 এবং উচ্চতর) getPorts : একটি নির্দিষ্ট UICC-এর জন্য সম্ভাব্য সকল পোর্টের তালিকা প্রদান করে। যদি UICC একটি pSIM বা eSIM হয় যা MEP সমর্থন করে না, তাহলে একটি উপাদানের তালিকা প্রদান করে।
  • (অপ্রচলিত) getIccId : একটি ICCID প্রদান করে। যেহেতু MEP সহ ডিভাইসের জন্য একটি UICC-তে একাধিক ICCID থাকতে পারে, তাই UiccPortInfo.getIccId() ব্যবহার করুন।

(অ্যান্ড্রয়েড ১৩ এবং উচ্চতর) UiccPortInfo

  • getIccId : এই পোর্টে একটি সক্রিয় সাবস্ক্রিপশন থাকলে ICCID ফেরত দেয়।
  • getPortIndex : পোর্ট সূচক ফেরত পাঠায়।
  • getLogicalSlotIndex : সক্রিয় লজিক্যাল মডেম স্ট্যাক সূচক প্রদান করে।

সাবস্ক্রিপশন তথ্য

  • (অ্যান্ড্রয়েড ১৩ এবং উচ্চতর) getPortIndex : যে পোর্ট ইনডেক্সে সাবস্ক্রিপশন সক্রিয় করা আছে তা ফেরত পাঠায়। যদি সাবস্ক্রিপশন অক্ষম করা থাকে, তাহলে INVALID_PORT_ID -1 ফেরত পাঠায়।

EuiccManager সম্পর্কে

  • switchToSubscription : একটি প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। সক্রিয় সাবস্ক্রিপশনে ক্যারিয়ারের সুবিধা নেই এমন অ্যাপগুলি ব্যবহার করে। কল করা হলে, প্ল্যাটফর্মটি অভ্যন্তরীণভাবে তিনটি-পছন্দের নির্বাচন ডায়ালগের মাধ্যমে পোর্ট সূচক সমাধান করে যদি কোনও উপলব্ধ পোর্ট না থাকে তবে নির্বাচিত সক্রিয় সাবস্ক্রিপশনটি অক্ষম করে। Android 13 এবং উচ্চতর সংস্করণগুলিকে লক্ষ্য করে এমন অ্যাপগুলিকে একটি অবৈধ সাবস্ক্রিপশন আইডি পাস করে সাবস্ক্রিপশন অক্ষম করতে এই API ব্যবহার করা উচিত নয়; পরিবর্তে তাদের অবশ্যই নির্দিষ্ট পোর্ট সূচক সহ switchToSubscription পদ্ধতি (Android 13 এ যোগ করা হয়েছে) ব্যবহার করতে হবে।
  • (অ্যান্ড্রয়েড ১৩ এবং উচ্চতর) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) : একটি প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। সক্রিয় সাবস্ক্রিপশনের উপর ক্যারিয়ারের বিশেষাধিকার সহ কলিং অ্যাপগুলি কোন পোর্টে সাবস্ক্রিপশন সক্ষম করতে হবে তা নির্দিষ্ট করতে পারে।
  • (অ্যান্ড্রয়েড ১৩ এবং উচ্চতর) isSimPortAvailable : পাসিং পোর্ট সূচক উপলব্ধ কিনা তা ফেরত দেয়। যদি কোনও সাবস্ক্রিপশন সক্ষম না থাকে বা নির্বাচিত পোর্টে ইনস্টল করা সাবস্ক্রিপশনের উপর কলিং অ্যাপটির ক্যারিয়ারের বিশেষাধিকার থাকে তবে একটি পোর্ট উপলব্ধ।

EuiccService সম্পর্কে

  • (Android 13 এবং উচ্চতর) onSwitchToSubscriptionWithPort : একটি নির্দিষ্ট পোর্টে একটি প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। LPA বাস্তবায়ন অবশ্যই Android 13 এবং উচ্চতর সংস্করণে এটি সমর্থন করবে।

টেলিফোনি ম্যানেজার

  • (অ্যান্ড্রয়েড ১৩ এবং উচ্চতর) getSimApplicationState : কার্ড অ্যাপ্লিকেশনের অবস্থা নির্দেশ করে একটি ধ্রুবক প্রদান করে। এই API একটি ফিজিক্যাল স্লট সূচক এবং একটি পোর্ট সূচক উভয়ই পাস করে। getSimApplicationState(int physicalSlotIndex) পদ্ধতি (অপ্রচলিত) একটি simApplicationState অবজেক্ট পেতে শুধুমাত্র ফিজিক্যাল স্লট সূচক পাস করে।
  • (অ্যান্ড্রয়েড ১৩ এবং উচ্চতর) setSimSlotMapping(Collection<UiccSlotMapping> slots) : লজিক্যাল স্লটগুলিকে ফিজিক্যাল স্লট এবং পোর্টে ম্যাপ করে।
  • (অ্যান্ড্রয়েড ১৩ এবং উচ্চতর) Collection<UiccSlotMapping> getSimSlotMapping : লজিক্যাল স্লট থেকে ফিজিক্যাল সিম স্লট এবং পোর্ট ইনডেক্স পর্যন্ত ম্যাপিং পায়।

ব্যবহারকারী ইন্টারফেস

eSIM পোর্ট নির্বাচনের অস্পষ্টতা দূর করার জন্য, MEP সমর্থনকারী ডিভাইসগুলিতে, ব্যবহারকারীদের একটি সক্রিয় সাবস্ক্রিপশন অক্ষম করতে হবে যাতে একটি নতুন সাবস্ক্রিপশন সক্ষম করা যায়। Android 13-তে, AOSP-তে একটি ব্যবহারকারী প্রবাহ অন্তর্ভুক্ত রয়েছে যার মধ্যে একটি তিন-পছন্দের ডায়ালগ রয়েছে যা সেটিংস অ্যাপ থেকে ব্যবহারকারী প্রবাহ সক্ষম করে সাবস্ক্রিপশনে প্রয়োগ করা যেতে পারে। চিত্র 6 এই UX প্রবাহের একটি উদাহরণ দেখায়।

MEP সিম সাবস্ক্রিপশনের জন্য ব্যবহারকারীর প্রবাহ

চিত্র ৬। সিম সাবস্ক্রিপশন সক্ষম করার জন্য ব্যবহারকারীর প্রবাহ

বৈশিষ্ট্য পতাকা

MEP সমর্থন করার জন্য, ডিভাইসগুলিকে নিম্নলিখিত বৈশিষ্ট্য ফ্ল্যাগগুলি ঘোষণা করতে হবে:

LPA বাস্তবায়ন

MEP সমর্থন করার জন্য, নিশ্চিত করুন যে আপনার LPA বাস্তবায়ন নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:

  • একাধিক পোর্ট সমর্থন করার জন্য EuiccService থেকে API গুলি প্রয়োগ করে।
  • পোর্ট নির্বাচন এবং প্রোফাইল সক্ষম করার জন্য API ব্যবহার করে।
  • নির্বাচিত পোর্টগুলিতে ক্যারিয়ার অ্যাপগুলিকে প্রোফাইল সক্ষম করার অনুমতি দেয় এমন UX প্রদান করে।

বৈধতা

MEP বৈশিষ্ট্যটির বাস্তবায়ন পরীক্ষা করার জন্য, নিশ্চিত করুন যে বিল্ডগুলি নিম্নলিখিত CTS পরীক্ষার ক্ষেত্রে (পাবলিক API-এর জন্য) উত্তীর্ণ হয়েছে: /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts

ডিভাইস নির্মাতাদের তাদের মডেম, eUICC চিপ এবং eSIM OS বিক্রেতাদের সাথেও কাজ করা উচিত যাতে নিশ্চিত করা যায় যে ডিভাইসটি নিম্নলিখিত কাজগুলি করতে পারে:

  • দুটি eSIM প্রোফাইল সক্রিয় করা যাবে এবং দুটি ভিন্ন নেটওয়ার্কের সাথে সংযুক্ত করা যাবে।
  • যেকোনো eSIM পোর্টে eSIM প্রোফাইল সক্রিয় এবং নিষ্ক্রিয় করা যেতে পারে।
  • ক্যারিয়ার অ্যাপের মাধ্যমে একটি UX প্রবাহ শুরু হয় যা ব্যবহারকারীদের প্রোফাইল পরিবর্তন করতে দেয়।

বাহকদের জন্য সুপারিশ

এক পোর্ট থেকে অন্য পোর্টে eSIM প্রোফাইল সরানোর সময় ব্যবহারকারীরা যাতে পরিষেবা হারাতে না পারেন তা নিশ্চিত করার জন্য, আমরা ক্যারিয়ারগুলিকে নিম্নলিখিতগুলির জন্য সহায়তা প্রদানের পরামর্শ দিচ্ছি:

  • IMEI এবং সিমের ফ্লুইড ম্যাপিং
  • প্রতিটি eUICC শনাক্তকারীর (EID) জন্য একাধিক ICCID বা সিম