ב-Android 5.1 הוצג מנגנון למתן הרשאות מיוחדות לממשקי API שרלוונטיים לבעלים של אפליקציות בכרטיס מעגל משולב אוניברסלי (UICC). פלטפורמת Android טוענת אישורים שמאוחסנים ב-UICC ומעניקה הרשאה לאפליקציות שנחתמו על ידי האישורים האלה לבצע קריאות למספר קטן של ממשקי API מיוחדים.
ב-Android 7.0, התכונה הזו הורחבה כדי לתמוך במקורות אחסון אחרים לכללי הרשאות של ספקי UICC, וכך גדל באופן משמעותי מספר הספקים שיכולים להשתמש בממשקי ה-API. הפניית API, במאמר CarrierConfigManager. הוראות, במאמר Carrier Configuration.
לספקי הסלולר יש שליטה מלאה ב-UICC, ולכן המנגנון הזה מספק דרך בטוחה וגמישה לניהול אפליקציות ממפעיל הרשת הסלולרית (MNO) שמתארחות בערוצים כלליים להפצת אפליקציות (כמו Google Play), תוך שמירה על הרשאות מיוחדות במכשירים וללא צורך בחתימה על אפליקציות באמצעות אישור הפלטפורמה לכל מכשיר או התקנה מראש כאפליקציית מערכת.
כללים ב-UICC
האחסון ב-UICC תואם ל
מפרט בקרת הגישה לרכיב המאובטח של GlobalPlatform. מזהה האפליקציה (AID) בכרטיס הוא A00000015141434C00, והפקודה הרגילה GET DATA משמשת לאחזור כללים שמאוחסנים בכרטיס. אפשר לעדכן את הכללים האלה באמצעות עדכונים של כרטיסים דרך האוויר (OTA).
היררכיית נתונים
בכללי UICC נעשה שימוש בהיררכיית הנתונים הבאה (האות בת שני התווים והשילוב המספרי בסוגריים הם תג האובייקט). כל כלל הוא REF-AR-DO (E2) ומורכב משרשור של REF-DO ושל AR-DO:
-
REF-DO(E1) מכיל את הערךDeviceAppID-REF-DOאו שרשור שלDeviceAppID-REF-DOו-PKG-REF-DO.-
DeviceAppID-REF-DO(C1) מאחסן את החתימה של האישור מסוג SHA-1 (20 בתים) או SHA-256 (32 בתים). -
PKG-REF-DO(CA) הוא שם החבילה המלא מוגדר במניפסט, בקידוד ASCII, אורך מקסימלי של 127 בייט.
-
-
AR-DO(E3) מורחב וכולל אתPERM-AR-DO(DB), שהיא מסכת ביטים של 8 בייטים שמייצגת 64 הרשאות נפרדות.
אם PKG-REF-DO לא מופיע, כל אפליקציה שנחתמה על ידי האישור מקבלת גישה. אחרת, האישור ושם החבילה צריכים להיות זהים.
דוגמה לכלל
שם האפליקציה הוא com.google.android.apps.myapp ואישור ה-SHA-1 במחרוזת הקסדצימלית הוא:
AB:CD:92:CB:B1:56:B2:80:FA:4E:14:29:A6:EC:EE:B6:E5:C1:BF:E4
הכלל לגבי UICC במחרוזת הקסדצימלית הוא:
E243 <= 43 is value length in hex
E135
C114 ABCD92CBB156B280FA4E1429A6ECEEB6E5C1BFE4
CA1D 636F6D2E676F6F676C652E616E64726F69642E617070732E6D79617070
E30A
DB08 0000000000000001
תמיכה בקבצים של כללי גישה
ב-Android 7.0 נוספה תמיכה בקריאת כללי הרשאות של ספקי סלולר מקובץ כללי הגישה (ARF).
פלטפורמת Android מנסה קודם לבחור את מזהה היישום (AID) של כלל הגישה ליישום (ARA) A00000015141434C00. אם המערכת לא מוצאת את מזהה האפליקציה ב-UICC, היא חוזרת ל-ARF על ידי בחירת מזהה האפליקציה PKCS15 A000000063504B43532D3135. מערכת Android קוראת את קובץ כללי בקרת הגישה (ACRF) בנתיב 0x4300 ומחפשת רשומות עם AID FFFFFFFFFFFF. המערכת מתעלמת מנתונים עם מזהי AID שונים, כך שכללים לתרחישי שימוש אחרים יכולים להתקיים במקביל.
דוגמה לתוכן ACRF במחרוזת הקסדצימלית:
30 10 A0 08 04 06 FF FF FF FF FF FF 30 04 04 02 43 10
תוכן לדוגמה של קובץ תנאים לבקרת גישה (ACCF):
30 16 04 14 61 ED 37 7E 85 D3 86 A8 DF EE 6B 86 4B D8 5B 0B FA A5 AF 81
בדוגמה שלמעלה, 0x4310 היא הכתובת של ACCF, שמכילה את הגיבוב של האישור 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81. לאפליקציות
שנחתמו על ידי האישור הזה מוענקות הרשאות של ספק סלולר.
ממשקי API שהופעלו
Android תומך בממשקי ה-API הבאים.
TelephonyManager
- שיטה שמאפשרת לאפליקציית הספק לבקש מ-UICC אתגר/תגובה:
getIccAuthentication. - שיטה לבדיקה אם לאפליקציה שמבצעת את הקריאה הוענקו הרשאות של ספק:
hasCarrierPrivileges. - שיטות לביטול ברירת המחדל של המותג והמספר:
- שיטות לתקשורת ישירה עם כרטיס UICC:
- השיטה להגדרת מצב המכשיר לגלובלי:
setPreferredNetworkTypeToGlobal. - שיטות לקבלת זהויות המכשיר או הרשת:
- מזהה חומרה - International Mobile Equipment Identity (IMEI):
getImei - מזהה ציוד נייד (MEID):
getMeid - מזהה גישה לרשת (NAI):
getNai - המספר הסידורי של כרטיס ה-SIM:
getSimSerialNumber - מזהה המינוי:
getSubscriptionId - מזהה המנוי (IMSI):
getSubscriberId
- מזהה חומרה - International Mobile Equipment Identity (IMEI):
- השיטה לקבלת ההגדרות של הספק:
getCarrierConfig - השיטה לקבלת סוג הרשת להעברת נתונים:
getDataNetworkType - השיטה לקבלת סוג הרשת לשירות קולי:
getVoiceNetworkType - השיטה לקבלת סטטוס השירות:
getServiceState - השיטה לקבלת מצב השיחה של המינוי:
getCallStateForSubscription - שיטות לקבלת מידע על אפליקציית UICC SIM (USIM):
- המספר הסידורי של כרטיס ה-SIM:
getSimSerialNumber - פרטי הכרטיס:
getUiccCardsInfo - GID1 (מזהה קבוצה ברמה 1):
getGroupIdLevel1 - מחרוזת מספר הטלפון לשורה 1:
getLine1Number - רשת סלולרית ציבורית (PLMN) אסורה:
getForbiddenPlmns - PLMN לבית כשווה-ערך ל-SP:
getEquivalentHomePlmns
- המספר הסידורי של כרטיס ה-SIM:
- שיטות לקבלת מספר התא הקולי או להגדרתו:
- השיטה לשליחת קוד מיוחד לחייגן:
sendDialerSpecialCode - שיטה לאיפוס מודם הרדיו:
rebootModem - שיטה לבדיקה אם המודם מופעל עבור משבצת:
isModemEnabledForSlot - שיטה לבדיקה אם יש תמיכה בכרטיסי SIM מרובים:
isMultiSimSupported - שיטה לבדיקה אם מעבר בין הגדרות של כרטיסי SIM מפעיל הפעלה מחדש:
doesSwitchMultiSimConfigTriggerReboot - שיטות לקבלת או להגדרת מצבי בחירת רשת:
- השיטה לבקשת סריקת רשת:
requestNetworkScan - השיטה לקבלת הגדרת החלוקה לפרוסות ברשת:
getNetworkSlicingConfiguration - שיטות לקבלת סוגי הרשתות המותרים או המועדפים או להגדרתם:
- שיטות לבדיקה אם חבילת הגלישה או הנדידה מופעלות בהגדרות של כל משתמש:
- שיטות לבדיקה או להגדרה של חיבור נתונים עם סיבה:
- השיטה לקבלת רשימת מספרי החירום:
getEmergencyNumberList - שיטות לשליטה ברשתות אד-הוק:
- שיטות להגדרה או לביטול של בקשת עדכון של עוצמת האות הסלולרי:
TelephonyCallback
ל-TelephonyCallback יש ממשקי API עם שיטת קריאה חוזרת כדי להודיע לאפליקציה ששולחת את הקריאה כשמצבי הרישום משתנים:
- השתנה הסימון להודעה בהמתנה:
onMessageWaitingIndicatorChanged - האינדיקטור של העברת השיחות השתנה:
onCallForwardingIndicatorChanged - מצב השיחה השתנה:
onCallStateChanged - הסיבה לניתוק השיחה במערכת מולטימדיה מבוססת-IP (IMS) השתנתה:
onImsCallDisconnectCauseChanged - השתנה המידע שמוצג בטלפון:
onDisplayInfoChanged - השתנה המצב המדויק של חיבור הנתונים:
onPreciseDataConnectionStateChanged - רשימת מספרי החירום הנוכחית השתנתה:
onEmergencyNumberListChanged - מזהה המינוי הפעיל לנתונים השתנה:
onActiveDataSubscriptionIdChanged - רשת הספק השתנתה:
onCarrierNetworkChange - הרישום ברשת או עדכון של מיקום, ניתוב או אזור מעקב
נכשלו:
onRegistrationFailed - שינוי פרטי החסימה:
onBarringInfoChanged - הפרטים של התא השתנו:
onCellInfoChanged - ההגדרה הנוכחית של הערוץ הפיזי השתנתה:
onPhysicalChannelConfigChanged
SubscriptionManager
- שיטות לקבלת מידע שונה על המינוי:
- השיטה לקבלת מספר המינויים הפעילים:
getActiveSubscriptionInfoCount - שיטות לניהול קבוצות מינויים:
- שיטות לקבלת או להגדרת תיאור של תוכנית הקשר לחיוב בין ספק לבין מנוי ספציפי:
- שיטה לביטול זמני של תוכנית הקשר לחיוב בין חברת תובלה לבין מנוי ספציפי, כדי שהשימוש ייחשב כלא מוגבל:
setSubscriptionOverrideUnmetered - שיטה לעקוף באופן זמני את תוכנית הקשר לחיוב בין חברת תובלה לבין מנוי ספציפי, כדי שהמנוי ייחשב כעמוס:
setSubscriptionOverrideCongested - Method לבדיקה אם לאפליקציה עם ההקשר הנתון יש הרשאה לנהל את המינוי הנתון בהתאם למטא-נתונים שלה:
canManageSubscription
SmsManager
- שיטה שמאפשרת למתקשר ליצור הודעות SMS חדשות:
injectSmsPdu. - שיטה לשליחת הודעת SMS מבוססת-טקסט בלי לכתוב לספק ה-SMS:
sendTextMessageWithoutPersisting
CarrierConfigManager
- השיטה להודעה על שינוי בהגדרות:
notifyConfigChangedForSubId. - השיטה לקבלת הגדרות הספק למינוי ברירת המחדל:
getConfig - השיטה לקבלת הגדרות הספק עבור המינוי שצוין:
getConfigForSubId
הוראות מפורטות מופיעות במאמר הגדרת ספק.
פיתוח פתרונות
שיטה לקבלת המספר הסידורי של החומרה, אם הוא זמין:
getSerial
BugreportManager
שיטה להתחלת דוח על באג בקישוריות, שהוא גרסה מיוחדת של הדוח על באג שכוללת רק מידע לניפוי שגיאות שקשורות לבעיות בקישוריות:
startConnectivityBugreport
NetworkStatsManager
- שיטה לשאילתת סיכום השימוש ברשת:
querySummary - שיטה לשאילתת היסטוריית השימוש ברשת:
queryDetails - שיטות לרישום או לביטול הרישום של קריאה חוזרת לתיעוד השימוש ברשת:
ImsMmTelManager
- שיטות לשליחת שאילתות להגדרות IMS:
- שיטות לרישום או לביטול רישום של קריאה חוזרת לרישום IMS MmTel:
ImsRcsManager
- שיטות לרישום או לביטול הרישום של קריאה חוזרת לרישום IMS RCS:
- שיטות לקבלת סטטוס הרשמה ל-IMS או סוג העברה:
ProvisioningManager
- שיטות לרישום ולביטול רישום של עדכונים להקצאת תכונות IMS callback:
- שיטות שקשורות לסטטוס ההקצאה של יכולות IMS MmTel או RCS:
EuiccManager
השיטה להחלפה למינוי שצוין (הפעלה שלו):
switchToSubscription
CarrierMessagingService
שירות שמקבל שיחות מהמערכת כששולחים או מקבלים הודעות SMS ו-MMS חדשות. כדי להרחיב את המחלקה הזו, צריך להצהיר על השירות בקובץ המניפסט עם ההרשאה android.Manifest.permission#BIND_CARRIER_MESSAGING_SERVICE ולכלול מסנן Intent עם הפעולה #SERVICE_INTERFACE. דרכים אפשריות:
- שיטה לסינון הודעות SMS נכנסות:
onFilterSms - שיטה ליירוט הודעות SMS שנשלחות מהמכשיר:
onSendTextSms - שיטה ליירוט הודעות SMS בינאריות שנשלחות מהמכשיר:
onSendDataSms - שיטה ליירוט הודעות SMS ארוכות שנשלחות מהמכשיר:
onSendMultipartTextSms - שיטה ליירוט הודעות MMS שנשלחות מהמכשיר:
onSendMms - שיטה להורדת הודעות MMS שהתקבלו:
onDownloadMms
CarrierService
שירות שחושף פונקציות ספציפיות לספק למערכת. כדי להרחיב את המחלקה הזו, צריך להצהיר על השירות בקובץ המניפסט של האפליקציה עם ההרשאה android.Manifest.permission#BIND_CARRIER_SERVICES ולכלול מסנן Intent עם הפעולה CARRIER_SERVICE_INTERFACE.
אם לשירות יש קשר ארוך טווח, צריך להגדיר את android.service.carrier.LONG_LIVED_BINDING לערך true במטא-נתונים של השירות.
הפלטפורמה קושרת את CarrierService עם דגלים מיוחדים כדי לאפשר לשירות של הספק לפעול ב
דלי מיוחד של אפליקציות במצב המתנה. הפעולה הזו פוטרת את אפליקציית שירות הספק מ
הגבלת מצב המתנה של האפליקציה, ומגדילה את הסיכוי שהאפליקציה תמשיך לפעול כשזיכרון המכשיר נמוך. עם זאת, אם אפליקציית שירות הספק קורסת מסיבה כלשהי, היא מאבדת את כל ההרשאות שצוינו למעלה עד שהאפליקציה מופעלת מחדש והקישור נוצר מחדש. לכן חשוב מאוד לשמור על יציבות של אפליקציית שירותי הספק.
השיטות ב-CarrierService כוללות:
- כדי לשנות את ההגדרות שנקבעו מראש לספק מסוים:
onLoadConfig - כדי לעדכן את המערכת לגבי שינוי מכוון ברשת הספק שצפוי להתבצע על ידי
אפליקציית הספק:
notifyCarrierNetworkChange
ספק טלפוניה
ממשקי API של ספקי תוכן שמאפשרים לבצע שינויים (הוספה, מחיקה, עדכון, שאילתה) במסד הנתונים של הטלפוניה. שדות הערכים מוגדרים בכתובת
Telephony.Carriers. פרטים נוספים זמינים ב
הפניה למחלקה Telephony.
WifiNetworkSuggestion
כשיוצרים אובייקט WifiNetworkSuggestion, משתמשים בשיטות הבאות כדי להגדיר מזהה מינוי או קבוצת מינויים:
- שיטה להגדרת מזהה מינוי:
setSubscriptionId - שיטה להגדרת קבוצת מינויים:
setSubscriptionGroup
פלטפורמת Android
ב-UICC שזוהה, הפלטפורמה יוצרת אובייקטים פנימיים של UICC שכוללים כללים של הרשאות ספק כחלק מה-UICC.
UiccCarrierPrivilegeRules.java
טוען כללים, מנתח אותם מכרטיס ה-UICC ומאחסן אותם במטמון בזיכרון. כשנדרשת בדיקת הרשאות, UiccCarrierPrivilegeRules משווה את האישור של המתקשר לכללים שלו בזה אחר זה. אם כרטיס ה-UICC מוסר, הכללים נהרסים יחד עם אובייקט ה-UICC.
אימות
כדי לאמת את ההטמעה באמצעות
Compatibility Test Suite (CTS) באמצעות CtsCarrierApiTestCases.apk, צריך כרטיס UICC למפתחים עם כללי ה-UICC הנכונים או תמיכה ב-ARF.
מבקשים מספק כרטיסי ה-SIM שבחרתם להכין כרטיס UICC למפתחים עם ה-ARF הנכון, כפי שמתואר בקטע הזה, ומשתמשים בכרטיס ה-UICC הזה כדי להריץ את הבדיקות. UICC לא דורש שירות סלולרי פעיל כדי לעבור בדיקות CTS.
הכנת כרטיס ה-UICC
ב-Android מגרסה 11 ומטה, CtsCarrierApiTestCases.apk חתום על ידי aosp-testkey, עם ערך הגיבוב 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81.
החל מ-Android 12, הקובץ CtsCarrierApiTestCases.apk חתום על ידי cts-uicc-2021-testkey, ערך הגיבוב CE:7B:2B:47:AE:2B:75:52:C8:F9:2C:C2:91:24:27:98:83:04:1F:B6:23:A5:F1:94:A8:2C:9B:F1:5D:49:2A:A0.
כדי להריץ בדיקות CTS carrier API ב-Android 12, המכשיר צריך להשתמש בכרטיס SIM עם הרשאות CTS carrier שעומדות בדרישות שצוינו בגרסה האחרונה של מפרט
GSMA TS.48 Test Profile של צד שלישי עם ADM1 קבוע, מפתח = 55555555 / 0x3535353535353535.
אפשר להשתמש באותו כרטיס SIM גם בגרסאות קודמות ל-Android 12.
שינוי פרופיל ה-SIM של CTS
- הוספה: הרשאות של ספק CTS ב-access rule app master (ARA-M) או ב-ARF. שני החתימות צריכות להיות מקודדות בכללי ההרשאות של הספק:
- Hash1(SHA1):
61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81 - Hash2(SHA256):
CE:7B:2B:47:AE:2B:75:52:C8:F9:2C:C2:91:24:27:98:83:04:1F:B6:23:A5:F1:94:A8:2C:9B:F1:5D:49:2A:A0
- Hash1(SHA1):
- יצירה: קבצים בסיסיים (EF) של ADF USIM שלא קיימים ב-TS.48 ונדרשים ל-CTS:
- EF_MBDN (6FC7), גודל הרשומה: 28, מספר הרשומה: 4
- Content
- Rec1: 566F696365204D61696CFFFFFFFF06915155555555FF…FF
- Rec2-n: FF…FF
- Content
- EF_EXT6 (6FC8), גודל הרשומה:13, מספר הרשומה: 1
- תוכן: 00FF…FF
- EF_MBI (6FC9), גודל הרשומה: 4, מספר הרשומה: 1
- תוכן: Rec1: 01010101
- EF_MWIS (6FCA), גודל הרשומה: 5, מספר הרשומה: 1
- תוכן: 0000000000
- תוכן: 00FF…FF
- EF_MBDN (6FC7), גודל הרשומה: 28, מספר הרשומה: 4
- שינוי: טבלת שירות USIM: הפעלת שירותים מס' 47, מס' 48
- EF_UST (6F38)
- תוכן:
9EFFBF1DFFFE0083410310010400406E01
- תוכן:
- EF_UST (6F38)
- שינוי: קובצי DF-5GS ו-DF-SAIP
- DF-5GS - EF_5GS3GPPLOCI (USIM/5FC0/4F01)
- תוכן:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- תוכן:
- DF-5GS - EF_5GSN3GPPLOCI (USIM/5FC0/4F02)
- תוכן:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- תוכן:
- DF-5GS - EF SUCI_Calc_Info (USIM/5FC0/4F07)
- תוכן:
A0020000FF…FF
- תוכן:
- DF-SAIP - EF SUCI_Calc_Info_USIM (USIM/5FD0/4F01)
- תוכן:
A0020000FF…FF
- תוכן:
- DF-5GS - EF_5GS3GPPLOCI (USIM/5FC0/4F01)
- שינוי: צריך להשתמש במחרוזת של שם חברת התובלה Android CTS
ב-EF המתאימים שמכילים את הסימון הזה:
- EF_SPN (USIM/6F46)
- תוכן:
01416E64726F696420435453FF..FF
- תוכן:
- EF_PNN (USIM/6FC5)
- תוכן:
Rec1 430B83413759FE4E934143EA14FF..FF
- תוכן:
- EF_SPN (USIM/6F46)
התאמה למבנה של פרופיל הבדיקה
מורידים את הגרסה האחרונה של המבנים הבאים של פרופילי בדיקה כלליים ומתאימים אותם. בפרופילים האלה לא תהיה התאמה אישית של כלל ההרשאות של CTS Carrier Privilege או שינויים אחרים שצוינו למעלה.
הרצת בדיקות
לנוחותכם, CTS תומך בטוקן מכשיר שמגביל את ההרצה של הבדיקות רק במכשירים שהוגדרו עם אותו טוקן. בדיקות CTS של Carrier API תומכות באסימון המכשיר sim-card-with-certs. לדוגמה, טוקן המכשיר הבא מגביל את ההרצה של בדיקות ה-API של הספק למכשיר abcd1234 בלבד:
cts-tradefed run cts --device-token abcd1234:sim-card-with-certs
כשמריצים בדיקה בלי להשתמש בטוקן של מכשיר, הבדיקה מופעלת בכל המכשירים.
שאלות נפוצות
איך אפשר לעדכן את האישורים ב-UICC?
תשובה: משתמשים במנגנון הקיים לעדכון כרטיס OTA.
האם כללי UICC יכולים להתקיים לצד כללים אחרים?
תשובה: אין בעיה להגדיר כללי אבטחה אחרים ב-UICC עם אותו AID. הפלטפורמה מסננת אותם באופן אוטומטי.
מה קורה כשכרטיס ה-UICC מוסר מאפליקציה שמסתמכת על האישורים שבו?
תשובה: האפליקציה מאבדת את ההרשאות שלה כי הכללים שמשויכים ל-UICC נהרסים כשמוציאים את ה-UICC.
האם יש הגבלה על מספר האישורים ב-UICC?
ת: הפלטפורמה לא מגבילה את מספר האישורים, אבל בגלל שהבדיקה היא ליניארית, יותר מדי כללים עלולים לגרום להשהיה בבדיקה.
האם יש מגבלה על מספר ממשקי ה-API שאנחנו יכולים לתמוך בהם באמצעות השיטה הזו?
תשובה: לא, אבל אנחנו מגבילים את ההיקף לממשקי API שקשורים לספקי סלולר.
האם יש ממשקי API שאסור להשתמש בהם בשיטה הזו? אם כן, איך אתם אוכפים אותם? (כלומר, האם יש לך בדיקות לאימות ממשקי ה-API שנתמכים בשיטה הזו?)
תשובה: אפשר לעיין בקטע תאימות התנהגותית של API במסמך ההגדרה של תאימות (CDD) של Android. יש לנו כמה בדיקות CTS כדי לוודא שמודל ההרשאות של ממשקי ה-API לא השתנה.
איך זה עובד עם תכונת ה-Multi-SIM?
תשובה: נעשה שימוש בכרטיס ה-SIM שמוגדר כברירת מחדל על ידי המשתמש.
האם יש אינטראקציה או חפיפה כלשהי בין הטכנולוגיה הזו לבין טכנולוגיות אחרות של גישה ל-SE, למשל SEEK?
תשובה: לדוגמה, SEEK משתמש באותו מזהה אפליקציה כמו ב-UICC. הכללים מתקיימים במקביל ומסוננים לפי SEEK או UiccCarrierPrivileges.
מתי כדאי לבדוק את ההרשאות של הספק?
תשובה: אחרי שהשידור של מצב כרטיס ה-SIM נטען.
האם יצרני ציוד מקורי יכולים להשבית חלק מממשקי ה-API של הספקים?
תשובה: לא. אנחנו מאמינים שממשקי ה-API הנוכחיים הם קבוצת המינימום, ואנחנו מתכננים להשתמש במסכת ביטים כדי לשלוט ברמת פירוט גבוהה יותר בעתיד.
האם setOperatorBrandOverride מבטל את כל שאר הצורות של מחרוזות שמות של אופרטורים? לדוגמה, SE13, UICC SPN או NITZ מבוסס-רשת?
כן, לשינוי המותג של הספק יש את העדיפות הכי גבוהה. כשהוא מוגדר, הוא מבטל את כל המחרוזות האחרות של שמות המפעילים.
מה עושה הפעלת ה-method injectSmsPdu?
תשובה: השיטה הזו מאפשרת גיבוי ושחזור של הודעות SMS בענן. הקריאה
injectSmsPdu מאפשרת את פונקציית השחזור.
לגבי סינון SMS, האם הקריאה onFilterSms מבוססת על סינון יציאות של UDH ב-SMS? או שאפליקציות של ספקים מקבלות גישה לכל הודעות ה-SMS הנכנסות?
ת: לספקים יש גישה לכל נתוני ה-SMS.
נראה שההרחבה של DeviceAppID-REF-DO לתמיכה ב-32 בייט לא תואמת למפרט הנוכחי של GP (שמאפשר רק 0 או 20 בייט), אז למה אתם מבצעים את השינוי הזה? האם SHA-1 לא מספיק כדי למנוע התנגשויות? האם כבר הצעת את השינוי הזה ל-GP, כי יכול להיות שהוא לא תואם לגרסאות קודמות של ARA-M/ARF?
תשובה: כדי לספק אבטחה עמידה לעתיד, התוסף הזה מציג SHA-256
ל-DeviceAppID-REF-DO בנוסף ל-SHA-1, שהוא כרגע האפשרות היחידה בתקן GP SEAC. מומלץ מאוד להשתמש ב-SHA-256.
אם DeviceAppID הוא 0 (ריק), האם הכלל חל על כל האפליקציות במכשיר שלא מכוסות על ידי כלל ספציפי?
תשובה: ממשקי API של ספקי תקשורת דורשים מילוי של DeviceAppID-REF-DO.
השדה הזה יכול להיות ריק למטרות בדיקה, אבל לא מומלץ להשאיר אותו ריק בפריסות תפעוליות.
לפי המפרט שלך, השימוש ב-PKG-REF-DO לבד, בלי DeviceAppID-REF-DO, לא אמור להתקבל. אבל
הוא עדיין מתואר בטבלה 6-4 במפרט כהרחבה של
ההגדרה של REF-DO. האם זה קורה בכוונה? איך הקוד מתנהג כשמשתמשים רק ב-PKG-REF-DO ב-REF-DO?
תשובה: האפשרות להציג את PKG-REF-DO כפריט עם ערך יחיד ב-REF-DO הוסרה בגרסה האחרונה.
PKG-REF-DO צריך להופיע רק בשילוב עם DeviceAppID-REF-DO.
אנחנו מניחים שאנחנו יכולים להעניק גישה לכל ההרשאות שמבוססות על ספק הסלולר או שיש לנו שליטה מדויקת יותר. אם כן, מה מגדיר את המיפוי בין מסכת הביטים לבין ההרשאות בפועל? הרשאה אחת לכל כיתה? הרשאה אחת לכל שיטה? האם 64 הרשאות נפרדות יספיקו בטווח הארוך?
ת: האפשרות הזו שמורה לעתיד, ונשמח לקבל הצעות.
תוכל להגדיר עוד את DeviceAppID לאנדרואיד באופן ספציפי? זהו ערך הגיבוב (hash) של אישור בעל האפליקציה (20 בייט) בפורמט SHA-1 שמשמש לחתימה על האפליקציה הנתונה, אז לא צריך להיות שיקוף של המטרה הזו בשם? (השם עלול לבלבל הרבה קוראים כי הכלל חל על כל האפליקציות שנחתמו באותו אישור של מפרסם).
תשובה: DeviceAppID אחסון האישורים נתמך על ידי המפרט הקיים. ניסינו לצמצם את השינויים במפרט כדי להקל על האימוץ. פרטים נוספים מופיעים במאמר כללים ב-UICC.