قدّمت الإصدار 5.1 من نظام التشغيل Android آلية لمنح امتيازات خاصة لواجهات برمجة التطبيقات ذات الصلة بمالكي تطبيقات بطاقات الدوائر المتكاملة العامة (UICC). يحمّل نظام Android الأساسي الشهادات المخزّنة على بطاقة UICC ويمنح الإذن للتطبيقات الموقّعة بهذه الشهادات بإجراء طلبات إلى عدد قليل من واجهات برمجة التطبيقات الخاصة.
وقد وسّع الإصدار 7.0 من نظام التشغيل Android نطاق هذه الميزة لتشمل مصادر تخزين أخرى لقواعد امتيازات مشغّل شبكة الجوّال في بطاقة UICC، ما أدّى إلى زيادة كبيرة في عدد مشغّلي شبكات الجوّال الذين يمكنهم استخدام واجهات برمجة التطبيقات. للحصول على مرجع لواجهة برمجة التطبيقات، راجِع CarrierConfigManager، وللحصول على التعليمات، راجِع إعدادات مشغّل شبكة الجوّال.
تتحكّم شركات مشغّلي شبكات الجوّال بشكل كامل في بطاقة 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 أولاً اختيار معرّف تطبيق قاعدة الوصول (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
. يتم منح التطبيقات
الموقّعة بهذه الشهادة امتيازات مشغّل شبكة الجوّال.
واجهات برمجة التطبيقات المفعَّلة
يتوافق نظام التشغيل Android مع واجهات برمجة التطبيقات التالية.
TelephonyManager
- طريقة السماح لتطبيق مشغّل شبكة الجوّال بطلب تحدّي/ردّ من شريحة UICC:
getIccAuthentication
. - طريقة التحقّق مما إذا تم منح تطبيق الاتصال امتيازات مشغّل شبكة الجوّال:
hasCarrierPrivileges
. - طُرق لتجاوز العلامة التجارية والرقم:
- طُرق التواصل المباشر مع UICC:
- طريقة ضبط وضع الجهاز على "عام":
setPreferredNetworkTypeToGlobal
. - طُرق الحصول على هويات الجهاز أو الشبكة:
- معرّف الهوية الدولية للأجهزة الجوّالة (IMEI):
getImei
- معرّف الأجهزة الجوّالة (MEID):
getMeid
- معرّف الوصول إلى الشبكة (NAI):
getNai
- الرقم التسلسلي لشريحة SIM:
getSimSerialNumber
- معرّف الهوية الدولية للأجهزة الجوّالة (IMEI):
- طريقة الحصول على إعدادات مشغّل شبكة الجوّال:
getCarrierConfig
- طريقة الحصول على نوع الشبكة لنقل البيانات:
getDataNetworkType
- طريقة الحصول على نوع الشبكة لخدمة الصوت:
getVoiceNetworkType
- طُرق الحصول على معلومات حول تطبيق UICC SIM (USIM):
- الرقم التسلسلي لشريحة SIM:
getSimSerialNumber
- معلومات البطاقة:
getUiccCardsInfo
- المعرّف GID1 (معرّف المجموعة المستوى 1):
getGroupIdLevel1
- سلسلة رقم الهاتف للسطر 1:
getLine1Number
- شبكة أرضية عامة محظورة للأجهزة الجوّالة (PLMN):
getForbiddenPlmns
- شبكة PLMN المكافئة للشبكة المحلية:
getEquivalentHomePlmns
- الرقم التسلسلي لشريحة SIM:
- طُرق الحصول على رقم البريد الصوتي أو ضبطه:
- طريقة إرسال رمز الاتصال الخاص:
sendDialerSpecialCode
- طريقة إعادة ضبط المودم اللاسلكي:
rebootModem
- طُرق الحصول على أو ضبط أوضاع اختيار الشبكة:
- طريقة طلب إجراء فحص للشبكة:
requestNetworkScan
- طُرق الحصول على أنواع الشبكات المسموح بها أو المفضّلة أو ضبطها:
- طُرق التحقّق مما إذا كانت بيانات الجوّال أو التجوال مفعّلين حسب إعدادات المستخدم:
- طُرق التحقّق من اتصال البيانات أو ضبطه مع ذكر السبب:
- طريقة الحصول على قائمة أرقام الطوارئ:
getEmergencyNumberList
- طُرق التحكّم في الشبكات الاستغلالية:
- طُرق ضبط طلب تعديل قوة إشارة شبكة الجوّال أو محوه:
TelephonyCallback
يحتوي TelephonyCallback
على واجهات تتضمّن طريقة ردّ الاتصال لإعلام التطبيق الذي يطلب إجراءً عند تغيير الحالات المسجّلة:
- تغيّر مؤشر انتظار الرسائل:
onMessageWaitingIndicatorChanged
- تم تغيير مؤشر تحويل المكالمات:
onCallForwardingIndicatorChanged
- تم تغيير سبب انقطاع المكالمة عبر نظام الوسائط المتعددة المستند إلى بروتوكول الإنترنت (IMS):
onImsCallDisconnectCauseChanged
- تغيّرت حالة اتصال البيانات الدقيق:
onPreciseDataConnectionStateChanged
- تم تغيير قائمة أرقام الطوارئ الحالية:
onEmergencyNumberListChanged
- تغيّر معرّف اشتراك البيانات النشط:
onActiveDataSubscriptionIdChanged
- تم تغيير شبكة مشغّل شبكة الجوّال:
onCarrierNetworkChange
- تعذّر تسجيل الشبكة أو تعديل معلومات الموقع الجغرافي أو التوجيه أو منطقة التتبُّع:
onRegistrationFailed
- تغيير معلومات الحظر:
onBarringInfoChanged
- تم تغيير إعدادات القناة الحالية:
onPhysicalChannelConfigChanged
SubscriptionManager
- طُرق الحصول على معلومات مختلفة عن الاشتراك:
- طريقة الحصول على عدد الاشتراكات النشطة:
getActiveSubscriptionInfoCount
- طُرق إدارة مجموعات الاشتراكات:
- طُرق للحصول على وصف لخطة علاقة الفوترة أو ضبطه بين مشغّل شبكة الجوّال ومشترك محدّد:
- طريقة لتجاوز خطة علاقة الفوترة مؤقتًا بين شركة اتصالات ومشترك معيّن ليتم اعتباره غير خاضع للاستخدام المحدود:
setSubscriptionOverrideUnmetered
- طريقة لتجاوز خطة علاقة الفوترة مؤقتًا بين شركة نقل ومشترك محدّد ليتم اعتباره مستهلكًا كبيرًا للبيانات:
setSubscriptionOverrideCongested
- طريقة للتحقّق مما إذا كان التطبيق الذي يتضمّن السياق المحدّد مسموحًا له بإدارة الاشتراك المحدّد وفقًا لبياناته الوصفية:
canManageSubscription
SmsManager
- طريقة تتيح للمتصل إنشاء رسائل SMS واردة جديدة:
injectSmsPdu
. - طريقة لإرسال رسالة SMS نصية بدون الكتابة في موفّر خدمة الرسائل القصيرة:
sendTextMessageWithoutPersisting
CarrierConfigManager
- طريقة إرسال إشعار عند تغيير الإعدادات:
notifyConfigChangedForSubId
. - طريقة الحصول على إعدادات مشغّل شبكة الجوّال للاشتراك التلقائي:
getConfig
- طريقة الحصول على إعدادات مشغّل شبكة الجوّال للاشتراك المحدّد:
getConfigForSubId
للحصول على التعليمات، يُرجى الاطّلاع على مقالة إعدادات مشغّل شبكة الجوّال.
BugreportManager
طريقة لبدء تقرير أخطاء الاتصال، وهو إصدار متخصص من تقرير الأخطاء يتضمّن معلومات لتصحيح الأخطاء المتعلقة بمشاكل الاتصال فقط:
startConnectivityBugreport
NetworkStatsManager
- طريقة طلب ملخّص استخدام الشبكة:
querySummary
- طريقة طلب سجلّ استخدام الشبكة:
queryDetails
- طُرق تسجيل أو إلغاء تسجيل معاودة الاتصال بشأن استخدام الشبكة:
ImsMmTelManager
- طُرق تسجيل أو إلغاء تسجيل معاودة الاتصال الخاصة بتسجيل IMS MmTel:
ImsRcsManager
- طُرق تسجيل أو إلغاء تسجيل معاودة الاتصال الخاصة بتسجيل خدمات الاتصالات التفاعلية (RCS) في IMS:
- طُرق الحصول على حالة تسجيل IMS أو نوع النقل:
ProvisioningManager
- طُرق تسجيل وإلغاء تسجيل عمليات تعديل توفير ميزات IMS callback:
- الطُرق ذات الصلة بحالة توفير إمكانية IMS MmTel أو RCS:
EuiccManager
طريقة التبديل إلى الاشتراك المحدّد (تفعيله):
switchToSubscription
CarrierMessagingService
خدمة تتلقّى مكالمات من النظام عند إرسال رسائل SMS وMMS جديدة أو تلقّيها. لتوسيع نطاق هذه الفئة، عليك تعريف الخدمة في ملف البيان باستخدام الإذن android.Manifest.permission#BIND_CARRIER_MESSAGING_SERVICE
وتضمين فلتر أهداف يتضمّن الإجراء #SERVICE_INTERFACE
. تشمل الطرق ما يلي:
- طريقة فلترة الرسائل القصيرة الواردة:
onFilterSms
- طريقة اعتراض الرسائل النصية القصيرة SMS المُرسَلة من الجهاز:
onSendTextSms
- طريقة اعتراض رسائل SMS الثنائية المرسَلة من الجهاز:
onSendDataSms
- طريقة اعتراض الرسائل القصيرة الطويلة المُرسَلة من الجهاز:
onSendMultipartTextSms
- طريقة اعتراض رسائل الوسائط المتعددة المرسَلة من الجهاز:
onSendMms
- طريقة تنزيل رسائل الوسائط المتعددة المستلَمة:
onDownloadMms
CarrierService
هي خدمة تعرض وظائف خاصة بمشغّل شبكة الجوّال للنظام. لتوسيع نطاق هذه الفئة، يجب تعريف الخدمة في ملف بيان التطبيق باستخدام الإذن android.Manifest.permission#BIND_CARRIER_SERVICES
وتضمين فلتر أهداف يتضمّن الإجراء CARRIER_SERVICE_INTERFACE
.
إذا كانت الخدمة تتضمّن ربطًا طويل الأمد، اضبط
android.service.carrier.LONG_LIVED_BINDING
على
true
في البيانات الوصفية للخدمة.
تربط المنصة CarrierService
بعلامات خاصة للسماح بتشغيل خدمة مشغّل شبكة الجوّال في
حزمة وضع الاستعداد الخاصة بالتطبيقات. يؤدي ذلك إلى استثناء تطبيق خدمة مشغّل شبكة الجوّال من
قيود وضع التطبيق في وضع الخمول، ما يزيد من احتمالية بقائه نشطًا عندما تكون ذاكرة الجهاز منخفضة. ومع ذلك، إذا تعطّل تطبيق خدمة مشغّل شبكة الجوّال لأي سبب، سيفقد جميع الامتيازات المذكورة أعلاه إلى أن تتم إعادة تشغيل التطبيق وإعادة إنشاء الربط. لذلك، من الضروري الحفاظ على استقرار تطبيق "خدمات مشغّل شبكة الجوّال".
تشمل طرق الدفع في CarrierService
ما يلي:
- لإلغاء الإعدادات وضبط الإعدادات الخاصة بمشغّل شبكة الجوّال، اتّبِع الخطوات التالية:
onLoadConfig
- لإبلاغ النظام بتغيير قادم ومقصود في شبكة مشغّل شبكة الجوّال من خلال تطبيق مشغّل شبكة الجوّال، اتّبِع الخطوات التالية:
notifyCarrierNetworkChange
مقدّم خدمة الاتصال الهاتفي
واجهات برمجة تطبيقات موفّر المحتوى للسماح بإجراء تعديلات (إدراج وحذف وتعديل واستعلام) على قاعدة بيانات الاتصالات الهاتفية يتم تحديد حقول القيم في
Telephony.Carriers
، ولمزيد من التفاصيل، راجِع
مرجع الفئة Telephony
.
WifiNetworkSuggestion
عند إنشاء عنصر WifiNetworkSuggestion
، استخدِم الطريقتَين التاليتَين لضبط معرّف اشتراك أو مجموعة اشتراكات:
- طريقة ضبط رقم تعريف الاشتراك:
setSubscriptionId
- طريقة ضبط مجموعة اشتراكات:
setSubscriptionGroup
نظام Android الأساسي
عند رصد بطاقة UICC، تنشئ المنصة عناصر UICC داخلية تتضمّن قواعد امتيازات مشغّل شبكة الجوّال كجزء من بطاقة UICC.
UiccCarrierPrivilegeRules.java
يحمّل القواعد ويحلّلها من بطاقة UICC ويخزّنها مؤقتًا في الذاكرة. عند الحاجة إلى التحقّق من امتياز، تقارن UiccCarrierPrivilegeRules
شهادة المتصل بقواعدها واحدة تلو الأخرى. في حال إزالة بطاقة UICC، سيتم إتلاف القواعد مع عنصر UICC.
التحقُّق
لإثبات صحة عملية التنفيذ من خلال
مجموعة أدوات اختبار التوافق (CTS) باستخدام CtsCarrierApiTestCases.apk
،
يجب أن يكون لديك بطاقة UICC خاصة بالمطوّر تتضمّن قواعد UICC الصحيحة أو إمكانية استخدام ARF.
اطلب من مورّد شريحة SIM الذي تختاره إعداد شريحة UICC خاصة بالمطوّرين تتضمّن ملف ARF الصحيح كما هو موضّح في هذا القسم، واستخدِم شريحة UICC هذه لتنفيذ الاختبارات. لا تتطلّب بطاقة UICC توفّر خدمة شبكة جوّال نشطة لاجتياز اختبارات CTS.
إعداد بطاقة UICC
في الإصدار 11 من نظام التشغيل Android والإصدارات الأقدم، يتم توقيع 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) على نظام التشغيل Android 12، يجب أن يستخدم الجهاز شريحة SIM تتضمّن امتيازات مشغّلي شبكات الجوّال في "مجموعة أدوات اختبار التوافق" تستوفي المتطلبات المحدّدة في أحدث إصدار من مواصفات GSMA TS.48 Test Profile التابعة لجهات خارجية.
يمكن أيضًا استخدام شريحة SIM نفسها للإصدارات الأقدم من Android 12.
تعديل ملف تعريف شريحة SIM في مجموعة أدوات اختبار التوافق (CTS)
- إضافة: امتيازات مشغّل CTS في
تطبيق قاعدة الوصول الرئيسية (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):
- إنشاء: ملفات ADF USIM الأساسية (EF) غير المتوفّرة في
TS.48 واللازمة لاجتياز مجموعة أدوات اختبار التوافق (CTS):
- EF_MBDN (6FC7)، حجم السجلّ: 28، رقم السجلّ: 4
- المحتوى
- Rec1: 566F696365204D61696CFFFFFFFF06915155555555FF…FF
- Rec2-n: FF…FF
- المحتوى
- 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 أو التعديلات الأخرى المذكورة أعلاه.
إجراء الاختبارات
لتوفير الراحة، يتيح اختبار التوافق مع نظام التشغيل Android استخدام رمز مميّز للجهاز يقتصر على تشغيل الاختبارات على الأجهزة التي تم ضبطها باستخدام الرمز المميز نفسه. تتيح اختبارات CTS لواجهة Carrier API استخدام الرمز المميز للجهاز sim-card-with-certs
. على سبيل المثال، يقتصر رمز الجهاز التالي على إجراء اختبارات واجهة برمجة التطبيقات الخاصة بمشغّل شبكة الجوّال على الجهاز abcd1234
فقط:
cts-tradefed run cts --device-token abcd1234:sim-card-with-certs
عند إجراء اختبار بدون استخدام رمز مميّز للجهاز، يتم إجراء الاختبار على جميع الأجهزة.
الأسئلة الشائعة
كيف يمكن تعديل الشهادات على بطاقة UICC؟
ج: استخدِم آلية تحديث البطاقة الحالية عبر اتصال لاسلكي.
هل يمكن أن تتعايش UICC مع قواعد أخرى؟
ج: لا بأس في توفّر قواعد أمان أخرى على بطاقة UICC ضمن معرّف التطبيق نفسه، إذ تعمل المنصة على فلترتها تلقائيًا.
ماذا يحدث عند إزالة بطاقة UICC لتطبيق يعتمد على الشهادات المخزّنة عليها؟
ج: يفقد التطبيق امتيازاته لأنّه يتم إتلاف القواعد المرتبطة بشريحة UICC عند إزالتها.
هل هناك حدّ أقصى لعدد الشهادات على بطاقة UICC؟
ج: لا تفرض المنصة حدًا أقصى لعدد الشهادات، ولكن بما أنّ عملية التحقّق تتم بشكل تسلسلي، قد يؤدي العدد الكبير جدًا من القواعد إلى حدوث تأخير في عملية التحقّق.
هل هناك حدّ لعدد واجهات برمجة التطبيقات التي يمكننا توفيرها باستخدام هذه الطريقة؟
ج: لا، ولكننا نحصر النطاق على واجهات برمجة التطبيقات ذات الصلة بمشغّلي شبكات الجوّال.
هل هناك بعض واجهات برمجة التطبيقات المحظور عليها استخدام هذه الطريقة؟ إذا كان الأمر كذلك، كيف تفرضها؟ (أي هل لديك اختبارات للتحقّق من صحة واجهات برمجة التطبيقات المتوافقة مع هذه الطريقة؟)
ج: يُرجى الاطّلاع على قسم توافق سلوك واجهة برمجة التطبيقات في مستند تعريف التوافق مع Android (CDD). لدينا بعض اختبارات CTS للتأكّد من عدم تغيير نموذج الأذونات لواجهات برمجة التطبيقات.
كيف تعمل هذه الميزة مع ميزة "شرائح SIM المتعددة"؟
ج: يتم استخدام شريحة SIM التلقائية التي يحدّدها المستخدم.
هل تتفاعل هذه التقنية أو تتداخل بأي شكل مع تقنيات الوصول إلى العناصر الآمنة الأخرى، مثل SEEK؟
ج: على سبيل المثال، تستخدم SEEK معرّف التطبيق نفسه المستخدَم على بطاقة UICC. وبالتالي، تتواجد القواعد معًا ويتم فلترتها باستخدام SEEK أو UiccCarrierPrivileges
.
متى يكون الوقت مناسبًا للتحقّق من امتيازات مشغّل شبكة الجوّال؟
ج: بعد بث حالة شريحة SIM التي تم تحميلها.
هل يمكن للمصنّعين الأصليين للأجهزة إيقاف جزء من واجهات برمجة التطبيقات الخاصة بمشغّلي شبكات الجوّال؟
ج: لا، نعتقد أنّ واجهات برمجة التطبيقات الحالية هي الحد الأدنى من المجموعة، ونخطّط لاستخدام قناع البت للتحكّم بدقة أكبر في المستقبل.
هل تلغي setOperatorBrandOverride
جميع أشكال سلاسل أسماء المشغّلين الأخرى؟ على سبيل المثال، SE13 أو UICC SPN أو NITZ المستندة إلى الشبكة؟
نعم، لها الأولوية القصوى. وعند ضبطه، يتم إلغاء جميع أشكال سلاسل أسماء مشغّلي شبكات الجوّال الأخرى.
ما هي وظيفة طلب الطريقة injectSmsPdu
؟
ج: تسهّل هذه الطريقة الاحتفاظ بنسخة احتياطية من الرسائل القصيرة واستعادتها في السحابة الإلكترونية. يتيح طلب
injectSmsPdu
وظيفة الاستعادة.
بالنسبة إلى فلترة الرسائل القصيرة، هل تستند مكالمة onFilterSms
إلى فلترة منافذ UDH الخاصة بالرسائل القصيرة؟ أو هل يمكن لتطبيقات مشغّلي شبكة الجوّال الوصول إلى جميع الرسائل النصية القصيرة الواردة؟
ج: يمكن لمشغّلي شبكات الجوّال الوصول إلى جميع بيانات الرسائل القصيرة.
يبدو أنّ توسيع نطاق 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 (فارغة)، هل تطبّق القاعدة على
جميع تطبيقات الجهاز التي لا تغطيها قاعدة معيّنة؟
ج: تتطلّب واجهات برمجة التطبيقات الخاصة بشركات الاتصالات ملء الحقل 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
لنظام Android على وجه التحديد؟ هذه هي قيمة تجزئة SHA-1 (20 بايت) لشهادة الناشر المستخدَمة لتوقيع التطبيق المحدّد، ألا يجب أن يعكس الاسم هذا الغرض؟ (قد يكون الاسم مربكًا للعديد من القرّاء لأنّ القاعدة ستنطبق بعد ذلك على جميع التطبيقات الموقّعة بشهادة الناشر نفسها).
ج: إنّ DeviceAppID
التي تخزّن الشهادات متوافقة مع المواصفات الحالية. وقد حاولنا الحدّ من التغييرات في المواصفات لتسهيل اعتمادها. لمزيد من التفاصيل، يُرجى الاطّلاع على قواعد بطاقة UICC.