ملفات تعريف متعددة ممكّنة

بالنسبة للأجهزة التي تعمل بنظام التشغيل Android 13 أو الإصدارات الأحدث، يدعم Android ملفات تعريف متعددة ممكّنة (MEPs) لـ eUICC. تتيح هذه الميزة للأجهزة دعم بطاقة SIM المزدوجة باستخدام شريحة eSIM واحدة، والتي يمكن أن تحتوي على ملفات تعريف متعددة لبطاقة SIM ويمكنها الاتصال بشركتي اتصالات مختلفتين في نفس الوقت. يجب أن تعمل الشركات المصنعة للأجهزة مع موردي SoC وموردي شرائح eSIM لدمج هذه الميزة على أجهزتهم.

خلفية

على الأجهزة التي تعمل بنظام التشغيل Android 12 والإصدارات الأقدم، يوفر AOSP دعمًا محدودًا في السماح لبطاقة eSIM واحدة بدعم ملفات تعريف متعددة في نفس الوقت. على الرغم من التوفير الكبير في المساحة والتكلفة الذي توفره شريحة eSIM، فإن هذا النقص في دعم بطاقة SIM المزدوجة يمنع الشركات المصنعة للأجهزة من اعتماد أجهزة تدعم شريحة eSIM فقط. لتوفير دعم بطاقة SIM المزدوجة على جهاز يستخدم eSIM فقط، يتعين على الشركات المصنعة للأجهزة تجميع عنصري eSIM في الجهاز، مما يزيد من تكاليف فاتورة المواد (BOM) ويؤدي إلى تجارب مستخدم سيئة لإدارة الاشتراك. تعمل ميزة MEP المتوفرة في AOSP من Android 13 على معالجة هذه المشكلة.

بنية eUICC

يصف هذا القسم بنية شريحة eSIM للأجهزة التي تحتوي على MEP لإصدارات Android المختلفة وبنية شريحة eSIM للأجهزة التي لا تحتوي على MEP.

أندرويد 14

بالنسبة للأجهزة التي تعمل بنظام Android 14 أو أعلى، يدعم Android خيارات MEP-A1 وMEP-B لاختيار جذر مجال أمان جهة الإصدار (ISD-R) واختيار منافذ eSIM كما هو محدد في GSMA SGP V22 3.0 . فيما يلي وصف لنماذج اختيار 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 واحدة (فتحة مادية واحدة) وضع الاستعداد المزدوج لبطاقة SIM المزدوجة (DSDS) من خلال ربط كل منفذ eUICC بالنطاق الأساسي للمودم. Android 13 HAL وAPIs هما متغير MEP مستقل.

بنية شريحة eSIM مع دعم MEP

الشكل 3. بنية شريحة eSIM مع دعم MEP (Android 13 أو أعلى)

أندرويد 12 والإصدارات الأقدم

بالنسبة للأجهزة التي تعمل بنظام التشغيل Android 12 أو أقل بدون MEP كما هو موضح في الشكل 4، تدعم فتحة eSIM فقط ملف تعريف واحد ممكّن في وقت واحد ولا يمكن للجهاز دعم DSDS.

بنية شريحة eSIM دون دعم MEP

الشكل 4. بنية شريحة eSIM دون دعم MEP (Android 12 أو أقل)

تدفق معلومات واجهة برمجة التطبيقات (API) لملفات تعريف متعددة ممكّنة

يصف الشكل 5 تدفق المعلومات لـ MEP لـ eUICC في Android 13. يتضمن إطار عمل الهاتف فئة UiccPort ، التي تمثل البنية المادية لـ eUICC. يتم استخدام فئة UiccPort لجميع أنواع بطاقات SIM: بطاقة SIM الفعلية (pSIM)، وبطاقة SIM المدمجة (iSIM)، وبطاقة SIM المدمجة (eSIM). بالنسبة لـ eUICC مع منافذ متعددة، يتم تعيين كائن UiccSlot واحد وكائن UiccCard إلى مثيلات UiccPort متعددة. يمكن لكل مثيل UiccPort الارتباط بمثيل UiccProfile واحد على الأكثر. يسمح هذا التدفق لـ UiccPort بالتعيين إلى فتحة منطقية و UiccSlot (الفتحة المادية) بالتعيين إلى فتحات منطقية متعددة.

تدفق المعلومات الكهربائية والميكانيكية

الشكل 5. تدفق المعلومات لeUICC مع دعم الهندسة الكهربائية والميكانيكية

تطبيق

يصف هذا القسم كيفية تنفيذ ميزة MEP بما في ذلك تفاصيل حول متطلبات HAL وواجهات برمجة التطبيقات وواجهة المستخدم. يجب أن تعمل الشركات المصنعة للأجهزة مع موردي SoC وموردي شرائح eSIM لدعم MEP.

متطلبات هال

لدعم MEP لـ eUICC، قم بتنفيذ واجهات برمجة تطبيقات IRadio AIDL HAL التالية، الموجودة في /platform/hardware/interfaces/radio/aidl/aidl_api .

يجب على الأجهزة التي تعمل بنظام Android 14 أو أعلى استخدام إصدار IRadio 2.1 من واجهات HAL، التي تستخدم MultipleEnabledProfileMode (نموذج تحديد ISD-R المدعوم بالمودم أو eUICC) وتمرير معلومات أمر ES10 APDU أثناء عمليات القناة المنطقية لـ ICC.

حالة البطاقة

يجب أن يدعم المودم واجهة برمجة تطبيقات CardStatus كاستجابة لأسلوب getIccCardStatusResponse . يجب أن تتضمن الاستجابة فهرس المنفذ وفهرس الفتحة الفعلية المحدد بواسطة SimPortSlotMapping .

بالنسبة للأجهزة التي تعمل بنظام Android 14 أو أعلى، يجب أن يجتاز المودم وضع MEP المدعوم مع جميع أحداث CardStatus.

SimSlotStatus

يجب أن يدعم المودم واجهة برمجة تطبيقات SimSlotStatus كاستجابة لأسلوب getSimSlotsStatus . تتضمن حالة فتحة SIM مصفوفة من واجهة SimPortInfo ، والتي تتضمن فهرس المنفذ وICCID لملف التعريف الممكّن وحالة المنفذ. يجب أن يقوم المودم بإرجاع كائنين SimPortInfo على الأقل.

بالنسبة للأجهزة التي تعمل بنظام Android 14 أو أعلى، يجب أن يجتاز المودم وضع MEP المدعوم مع جميع أحداث CardStatus.

setSimSlotMapping

يجب أن يمرر أسلوب setSimSlotMapping مصفوفة من SimPortSlotMapping . فهرس المصفوفة هو الفتحة المنطقية ويحدد SimPortSlotMapping المنفذ المعين المقابل وفهرس الفتحة الفعلية. تقوم طريقة setSimSlotMapping بتعيين التعيين من المنافذ إلى الفتحات المنطقية. يستخدم تطبيق LPA هذه الطريقة لتحديد المنفذ النشط.

واجهات برمجة التطبيقات التي تدعم MEP لـ eUICC

أجهزة Android التي تدعم ملفات التعريف الممكّنة المتعددة كجزء من مكدس الاتصالات الهاتفية AOSP مطلوبة لدعم واجهات برمجة التطبيقات التالية.

UiccCardInfo

  • (Android 13 والإصدارات الأحدث) isMultipleEnabledProfilesSupported : إرجاع ما إذا كان UICC هذا يدعم MEP.
  • (Android 13 والإصدارات الأحدث) getPorts : يعرض قائمة بجميع المنافذ الممكنة لـ UICC معين. إذا كانت UICC عبارة عن pSIM أو eSIM لا تدعم MEP، فسيتم إرجاع قائمة بعنصر واحد.
  • (مهمل) getIccId : يقوم بإرجاع ICCID. نظرًا لأنه يمكن أن يحتوي UICC على أكثر من ICCID واحد للأجهزة المزودة بـ MEP، استخدم UiccPortInfo.getIccId() بدلاً من ذلك.

(Android 13 والإصدارات الأحدث) UiccPortInfo

  • getIccId : يقوم بإرجاع ICCID إذا كان هناك اشتراك ممكّن على هذا المنفذ.
  • 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 : للتبديل إلى اشتراك معين على منفذ محدد. يجب أن يدعم تطبيق LPA هذا على نظام التشغيل Android 13 والإصدارات الأحدث.

مدير الهاتف

  • (Android 13 والإصدارات الأحدث) getSimApplicationState : يُرجع ثابتًا يشير إلى حالة تطبيق البطاقة. تقوم واجهة برمجة التطبيقات هذه بتمرير كل من فهرس الفتحة الفعلية وفهرس المنفذ. تقوم طريقة getSimApplicationState(int physicalSlotIndex) (المهملة) بتمرير فهرس الفتحة الفعلية فقط للحصول على كائن simApplicationState .
  • (Android 13 والإصدارات الأحدث) setSimSlotMapping(Collection<UiccSlotMapping> slots) : يقوم بتعيين الفتحات المنطقية للفتحات والمنافذ المادية.
  • (Android 13 والإصدارات الأحدث) Collection<UiccSlotMapping> getSimSlotMapping : للحصول على التعيين من الفتحات المنطقية إلى فتحات sim الفعلية وفهارس المنافذ.

واجهة المستخدم

لحل الغموض الذي يكتنف اختيار منفذ eSIM، على الأجهزة التي تدعم MEP، يجب أن يكون المستخدمون قادرين على تعطيل أحد الاشتراكات النشطة لتمكين اشتراك جديد. في Android 13، يتضمن AOSP تدفق المستخدم مع مربع حوار من ثلاثة اختيارات يمكن تطبيقه على الاشتراك لتمكين تدفقات المستخدم من تطبيق الإعدادات. يوضح الشكل 6 مثالاً على تدفق تجربة المستخدم هذا.

تدفق المستخدم للاشتراك MEP SIM

الشكل 6. تدفق المستخدم لتمكين الاشتراك في بطاقة SIM

أعلام مميزة

لدعم MEP، يجب أن تعلن الأجهزة عن علامات الميزات التالية:

تنفيذ اتفاق السلام الليبي

لدعم MEP، تأكد من أن تنفيذ LPA الخاص بك يلبي المتطلبات التالية:

  • ينفذ واجهات برمجة التطبيقات من EuiccService لدعم منافذ متعددة.
  • يستخدم واجهات برمجة التطبيقات لاختيار المنفذ وتمكين الملف الشخصي.
  • يوفر تجربة مستخدم تسمح لتطبيقات شركات الاتصالات بتمكين الملفات الشخصية على المنافذ المحددة.

تصديق

لاختبار تنفيذ ميزة MEP، تأكد من اجتياز الإصدارات لحالات اختبار CTS التالية (لواجهات برمجة التطبيقات العامة): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts .

يجب أن تعمل الشركات المصنعة للأجهزة أيضًا مع المودم وشريحة eUICC وموردي نظام التشغيل eSIM للتأكد من أن الجهاز يمكنه القيام بما يلي:

  • يمكن تمكين ملفي تعريف eSIM وربطهما بشبكتين مختلفتين.
  • يمكن تنشيط ملفات تعريف eSIM وإلغاء تنشيطها على أي منفذ eSIM.
  • هناك تدفق UX يتم تشغيله بواسطة تطبيق الناقل مما يسمح للمستخدمين بتبديل الملفات الشخصية.

توصية لشركات النقل

لضمان عدم فقدان المستخدمين للخدمة عند نقل ملفات تعريف eSIM من منفذ إلى آخر، نوصي بأن تقدم شركات الاتصالات الدعم لما يلي:

  • رسم خرائط السوائل لـ IMEI وSIM
  • أرقام ICCID أو شرائح SIM متعددة لكل معرف eUICC (EID)