במכשירים עם 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 בוחר את היציאה.
איור 1. מודל בחירת ISD-R MEP-A1 ISD-R
MEP-B:ISD-R נבחר בכל יציאה ואפשר להקצות כל יציאה פרופיל. פקודות ההפעלה וההשבתה נשלחות ליציאה שבה הפרופיל צריך להיות מופעל או מושבת (כשיש רענון בהמתנה). יציאת הפקודה ויציאת היעד תמיד זהות.
איור 2. מודל בחירת ISD-R MEP-B
Android 13
ב-Android מגרסה 13 ואילך, במכשירים שתומכים ב-MEP, חריץ ה-eSIM מכיל כמה יציאות eUICC שבהן אפשר להפעיל יציאה פרופיל. כפי שמוצג באיור 3, בארכיטקטורה הזו, נוצר ממשק eUICC אחד ( חריץ פיזי) תומך במצב המתנה בשני כרטיסי SIM (DSDS) באמצעות כל יציאת eUICC קישור לפס בסיס של מודם. HAL ב-Android 13 וממשקי API וריאנט MEP בלתי תלוי.
איור 3. ארכיטקטורת שבבים eSIM עם תמיכה ב-MEP (Android 13 ואילך)
Android מגרסה 12 ומטה
במכשירים עם Android מגרסה 12 ומטה בלי MEP כפי שמוצג באיור 4, חריץ ה-eSIM תומך רק בפרופיל מופעל אחד בכל פעם, ובמכשיר לא יכול לתמוך ב-DSDS.
איור 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
הטמעה
בקטע הזה נסביר איך להטמיע את תכונת 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 מוצגת דוגמה לתהליך זה של חוויית המשתמש.
איור 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)