פרופילים מרובים שהופעלו

במכשירים עם Android מגרסה 13 ואילך, Android יש תמיכה בכמה פרופילים מופעלים (MEP) ל-eUICC. התכונה הזו מאפשרת למכשירים תמיכה בשני כרטיסי SIM באמצעות שבב eSIM יחיד, שיכול לכלול כמה כרטיסי SIM יכולים להתחבר לשני ספקים שונים בו-זמנית. Device (מכשיר) היצרנים צריכים לעבוד עם ספקי SoC וערכות שבבים של eSIM ספקים כדי לשלב את התכונה הזו במכשירים שלהם.

רקע

במכשירים עם Android מגרסה 12 ומטה, AOSP תמיכה מוגבלת בתמיכה של eSIM יחיד בכמה פרופילים באותו זמן. למרות החיסכון המשמעותי במקום ובעלויות ש-eSIM מציע, היעדר תמיכה בשני כרטיסי SIM מונע מיצרני מכשירים להשתמש ב-eSIM בלבד מכשירים. כדי לספק תמיכה בשני כרטיסי SIM במכשיר עם eSIM בלבד, במכשיר שהיצרנים צריכים לארוז שני רכיבי eSIM למכשיר, וכך עלויות חומרים (BOM) שמובילות לחוויית משתמש גרועה עבור מינויים ניהול. תכונת ה-MEP שזמינה ב-AOSP מערכת Android 13 מטפלת בבעיה הזו.

ארכיטקטורת eUICC

בקטע הזה מתוארת ארכיטקטורת השבב eSIM במכשירים עם MEP עבור גרסאות Android שונות וארכיטקטורת השבב eSIM במכשירים שלא MEP.

Android 14

במכשירים עם Android מגרסה 14 ואילך, Android תומך ב-MEP-A1 וב-MEP-B אפשרויות לבחירת הרמה הבסיסית (root) של דומיין האבטחה של המנפיק (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 בוחר את היציאה.

    מודל בחירת ISD-R MEP-A1 ISD-R

    איור 1. מודל בחירת ISD-R MEP-A1 ISD-R

  • MEP-B:ISD-R נבחר בכל יציאה ואפשר להקצות כל יציאה פרופיל. פקודות ההפעלה וההשבתה נשלחות ליציאה שבה הפרופיל צריך להיות מופעל או מושבת (כשיש רענון בהמתנה). יציאת הפקודה ויציאת היעד תמיד זהות.

    מודל בחירת ISD-R MEP-B

    איור 2. מודל בחירת ISD-R MEP-B

Android 13

ב-Android מגרסה 13 ואילך, במכשירים שתומכים ב-MEP, חריץ ה-eSIM מכיל כמה יציאות eUICC שבהן אפשר להפעיל יציאה פרופיל. כפי שמוצג באיור 3, בארכיטקטורה הזו, נוצר ממשק eUICC אחד ( חריץ פיזי) תומך במצב המתנה בשני כרטיסי SIM (DSDS) באמצעות כל יציאת eUICC קישור לפס בסיס של מודם. HAL ב-Android 13 וממשקי API וריאנט MEP בלתי תלוי.

ארכיטקטורת שבבים eSIM עם תמיכה ב-MEP

איור 3. ארכיטקטורת שבבים eSIM עם תמיכה ב-MEP (Android 13 ואילך)

Android מגרסה 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 (פיזית משבצת לוגית) כדי למפות למספר משבצות לוגיות.

זרימת מידע של MEP

איור 5. תהליך מידע עבור eUICC עם תמיכה ב-MEP

הטמעה

בקטע הזה נסביר איך להטמיע את תכונת MEP, כולל פרטים על דרישות בנוגע ל-HAL, ממשקי API וממשק משתמש. יצרני מכשירים צריכים הם פועלים עם ספקי SoC וספקי ערכות שבבים של eSIM כדי לתמוך ב-MEP.

דרישות בנוגע ל-HAL

כדי לתמוך ב-MEP ל-eUICC, צריך להטמיע את ממשקי ה-API הבאים של IRadio AIDL HAL, באזור /platform/hardware/interfaces/radio/aidl/aidl_api

מכשירים עם Android מגרסה 14 ומעלה חייבים להשתמש בגרסת IRadio 2.1 של HAL ממשקים, שמשתמשים MultipleEnabledProfileMode (מודל בחירת ISD-R שנתמך על ידי המודם או ה-eUICC) ועובר את ES10 APDU במהלך פעולות בערוץ הלוגי של ICC.

סטטוס הכרטיס

המודם חייב לתמוך CardStatus ב-API בתגובה getIccCardStatusResponse . התגובה חייבת לכלול את אינדקס היציאה ואת אינדקס החריץ הפיזי צוין על ידי SimPortSlotMapping

במכשירים עם Android מגרסה 14 ואילך, המודם חייבים לעבור את בדיקות האימות מצב MEP כולל כל אירועי CardStatus.

סטטוס SIMSlot

המודם חייב לתמוך SimSlotStatus ב-API בתגובה getSimSlotsStatus . הסטטוס של חריץ ה-SIM כולל מערך SimPortInfo שכולל את אינדקס היציאה, את ה-ICCID של הפרופיל המופעל, את מצב השקע. המודם חייב להחזיר לפחות שני אובייקטים מסוג SimPortInfo.

במכשירים עם Android מגרסה 14 ואילך, המודם חייבים לעבור את בדיקות האימות מצב MEP כולל כל אירועי CardStatus.

setSimSlotMapping

setSimSlotMapping חייבת להעביר מערך של SimPortSlotMapping האינדקס של המערך הוא החריץ הלוגי SimPortSlotMapping מציין את היציאה הממופה והחריץ הפיזי המתאים להוסיף לאינדקס. השיטה setSimSlotMapping מגדירה את המיפוי מיציאות ללוגיות משבצות זמן. האפליקציה LPA משתמשת השיטה הזו כדי לבחור את היציאה הפעילה.

ממשקי API שתומכים ב-MEP ל-eUICC

מכשירי Android שתומכים בכמה פרופילים מופעלים כחלק מ-AOSP מחסנית הטלפוניה נדרשת כדי לתמוך בממשקי ה-API הבאים.

מידע בכרטיס UiccCard

  • (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 ואילך ה-API הזה כדי להשבית מינוי על ידי העברת מזהה מינוי לא חוקי; במקום זאת, הם צריכים להשתמש switchToSubscription method (נוספה ב-Android 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) method (הוצאה משימוש) מעבירה רק את אינדקס המיקום הפיזי כדי לקבל אובייקט simApplicationState.
  • (Android מגרסה 13 ואילך) setSimSlotMapping(Collection<UiccSlotMapping> slots): חיפוש של משבצות לוגיות לחריץ פיזי וליציאות.
  • (Android מגרסה 13 ואילך) Collection<UiccSlotMapping> getSimSlotMapping: הפונקציה מקבלת את המיפוי מחריצים לוגיים (Slot) לחריץ SIM פיזי ומאינדקסי יציאות.

ממשק משתמש

כדי לפתור את הבעיה של בחירת יציאת ה-eSIM, במכשירים שתומכים ב-MEP, כדי שמשתמשים יוכלו להשבית את אחד מהמינויים הפעילים, במינוי. ב-Android 13, AOSP כולל תהליך של משתמש עם שלוש שאלות תיבת דו-שיח שיכול לחול על מינויים שמאפשרים למשתמשים לבצע תהליכים מאפליקציית ההגדרות. באיור 6 מוצגת דוגמה לתהליך זה של חוויית המשתמש.

תהליך עבודה של משתמש למינוי SIM ב-MEP

איור 6. תהליך עבודה של משתמש להפעלת מינוי SIM

סימוני תכונות

כדי לתמוך ב-MEP, המכשירים צריכים להצהיר על דגלי התכונות הבאים:

הטמעת מודעות דינמיות לרשת החיפוש (LPA)

כדי לתמוך ב-MEP, צריך לוודא LPA שעומד בדרישות הבאות:

  • הטמעת ממשקי ה-API מ-EuiccService כדי לתמוך במספר יציאות.
  • שימוש בממשקי ה-API לבחירת יציאות ולהפעלת פרופיל.
  • ההגדרה הזו מספקת חוויית משתמש שמאפשרת לספקים לאפליקציות להפעיל פרופילים ביציאות נבחרות.

אימות

כדי לבדוק את ההטמעה של תכונת ה-MEP, צריך לוודא שגרסאות ה-build עוברות מקרי הבדיקה הבאים של CTS (לממשקי API ציבוריים): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts

יצרני המכשירים צריכים גם לעבוד עם המודם, שבב eUICC ו-eSIM OS שלהם כדי לוודא שהמכשיר יכול לבצע את הפעולות הבאות:

  • אפשר להפעיל שני פרופילי eSIM ולצרף אותם לשתי רשתות שונות.
  • אפשר להפעיל ולהשבית פרופילי eSIM בכל יציאת eSIM.
  • אפליקציית הספק מפעילה תהליך חוויית משתמש שמאפשר למשתמשים לעבור פרופילים.

המלצה לחברות תובלה

כדי שהמשתמשים לא יאבדו את השירות כשהם מעבירים פרופילי eSIM מקוד אחד לכל יציאה אחרת, אנחנו ממליצים לספקים לספק תמיכה במקרים הבאים:

  • מיפוי גמיש של IMEI ו-SIM
  • כמה מזהי ICCID או כרטיסי SIM לכל מזהה eUICC (EID)