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

بالنسبة للأجهزة التي تعمل بنظام 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 13 وللأجهزة التي تعمل بدون MEP Android 12 والإصدارات الأقدم. بالنسبة للأجهزة التي تدعم MEP كما هو موضح في الشكل 1 ، تحتوي فتحة eSIM على عدة منافذ eUICC ، حيث يمكن أن يكون لكل منفذ ملف تعريف ممكّن. مع هذه البنية ، تدعم eUICC واحدة (فتحة مادية واحدة) وضع الاستعداد المزدوج لبطاقة SIM المزدوجة (DSDS) من خلال ربط كل منفذ من منافذ eUICC بنطاق أساسي للمودم. يصف الشكل 2 بنية شريحة eSIM للأجهزة التي لا تحتوي على MEP.

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

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

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

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

تدفق معلومات API للعديد من الملفات الشخصية الممكنة

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

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

الشكل 3. تدفق المعلومات ل eUICC بدعم MEP

تطبيق

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

متطلبات HAL

لدعم MEP لـ eUICC ، قم بتنفيذ IRadio 2.0 AIDL HAL APIs التالية.

حالة البطاقة

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

شريحة SimSlotStatus

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

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 والإصدارات الأحدث)

  • 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 على تدفق مستخدم مع مربع حوار ثلاثي الخيارات يمكن تطبيقه على الاشتراك لتمكين تدفقات المستخدم من تطبيق الإعدادات. يوضح الشكل 4 مثالاً لتدفق UX هذا.

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

الشكل 4. تدفق المستخدم لتمكين اشتراك SIM

أعلام الميزة

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

تنفيذ LPA

لدعم الهندسة الكهربائية والميكانيكية ، تأكد من أن تنفيذ LPA الخاص بك يلبي المتطلبات التالية:

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

تصديق

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

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

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

بالنسبة للأجهزة التي تعمل بنظام 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 13 وللأجهزة التي تعمل بدون MEP Android 12 والإصدارات الأقدم. بالنسبة للأجهزة التي تدعم MEP كما هو موضح في الشكل 1 ، تحتوي فتحة eSIM على عدة منافذ eUICC ، حيث يمكن أن يكون لكل منفذ ملف تعريف ممكّن. مع هذه البنية ، تدعم eUICC واحدة (فتحة مادية واحدة) وضع الاستعداد المزدوج لبطاقة SIM المزدوجة (DSDS) من خلال ربط كل منفذ من منافذ eUICC بنطاق أساسي للمودم. يصف الشكل 2 بنية شريحة eSIM للأجهزة التي لا تحتوي على MEP.

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

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

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

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

تدفق معلومات API للعديد من الملفات الشخصية الممكنة

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

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

الشكل 3. تدفق المعلومات ل eUICC بدعم MEP

تطبيق

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

متطلبات HAL

لدعم MEP لـ eUICC ، قم بتنفيذ IRadio 2.0 AIDL HAL APIs التالية.

حالة البطاقة

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

شريحة SimSlotStatus

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

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 والإصدارات الأحدث)

  • 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 على تدفق مستخدم مع مربع حوار ثلاثي الخيارات يمكن تطبيقه على الاشتراك لتمكين تدفقات المستخدم من تطبيق الإعدادات. يوضح الشكل 4 مثالاً لتدفق UX هذا.

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

الشكل 4. تدفق المستخدم لتمكين اشتراك SIM

أعلام الميزة

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

تنفيذ LPA

لدعم الهندسة الكهربائية والميكانيكية ، تأكد من أن تنفيذ LPA الخاص بك يلبي المتطلبات التالية:

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

تصديق

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

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

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