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

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

পটভূমি

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

eUICC আর্কিটেকচার

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

অ্যান্ড্রয়েড 14

Android 14 বা তার উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, Android ইস্যুকারী নিরাপত্তা ডোমেন রুট (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 নির্বাচন মডেল

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

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

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

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

অ্যান্ড্রয়েড 13

Android 13 বা উচ্চতর সংস্করণে, MEP সমর্থন করে এমন ডিভাইসগুলিতে, eSIM স্লটে একাধিক eUICC পোর্ট থাকে যেখানে পোর্টে একটি সক্ষম প্রোফাইল থাকতে পারে। চিত্র 3 তে দেখানো হয়েছে, এই আর্কিটেকচারের সাথে, একটি একক eUICC (একটি একক ফিজিক্যাল স্লট) একটি মডেম বেসব্যান্ডের সাথে প্রতিটি eUICC পোর্ট লিঙ্ক থাকার মাধ্যমে ডুয়াল সিম ডুয়াল স্ট্যান্ডবাই (DSDS) সমর্থন করে। Android 13 HAL এবং APIগুলি MEP ভেরিয়েন্ট স্বাধীন।

MEP সমর্থন সহ eSIM চিপ আর্কিটেকচার

চিত্র 3. এমইপি সমর্থন সহ eSIM চিপ আর্কিটেকচার (Android 13 বা উচ্চতর)

অ্যান্ড্রয়েড 12 এবং তার নিচের

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

MEP সমর্থন ছাড়া eSIM চিপ আর্কিটেকচার

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

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

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

MEP তথ্য প্রবাহ

চিত্র 5. MEP সমর্থন সহ eUICC-এর জন্য তথ্য প্রবাহ

বাস্তবায়ন

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

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

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

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

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

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

Android 14 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, মডেমকে অবশ্যই সমস্ত কার্ড স্ট্যাটাস ইভেন্ট সহ সমর্থিত MEP মোড পাস করতে হবে।

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

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

Android 14 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, মডেমকে অবশ্যই সমস্ত কার্ড স্ট্যাটাস ইভেন্ট সহ সমর্থিত MEP মোড পাস করতে হবে।

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

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

EUICC-এর জন্য MEP সমর্থনকারী API

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

UiccCardInfo

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

(Android 13 এবং উচ্চতর) UiccPortInfo

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

সদস্যতা তথ্য

  • (Android 13 এবং উচ্চতর) getPortIndex : সাবস্ক্রিপশন সক্রিয় করা আছে এমন পোর্ট সূচী প্রদান করে। সদস্যতা অক্ষম করা হলে, INVALID_PORT_ID -1 প্রদান করে।

EuiccManager

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

EuiccService

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

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

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

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

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

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

চিত্র 6. সিম সাবস্ক্রিপশন সক্রিয় করার জন্য ব্যবহারকারীর প্রবাহ

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

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

এলপিএ বাস্তবায়ন

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

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

বৈধতা

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

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

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

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

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

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