وفّر نظام التشغيل Android 5.1 آلية لمنح امتيازات خاصة لواجهات برمجة التطبيقات المرتبطة بأصحاب تطبيقات بطاقات الدوائر المتكاملة العالمية (UICC). يُحمِّل نظام Android الأساسي الشهادات المخزَّنة على واجهة UICC ويمنح الإذن للتطبيقات الموقَّعة من خلال هذه الشهادات لإجراء اتصالات بمجموعة من واجهات برمجة التطبيقات الخاصة.
وفّر نظام التشغيل Android 7.0 هذه الميزة لاستخدام مصادر تخزين أخرى لقواعد امتيازات مشغّلي شبكة الجوَّال في شريحة 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 الأساسي أولاً اختيار معرّف AIDA00000015141434C00
لتطبيق قاعدة الوصول (ARA). إذا لم يعثر على
معرّف AID في شريحة UICC، سيعود إلى ARF عن طريق اختيار معرّف AID بتنسيق 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 (USIM):
- الرقم التسلسلي لشريحة SIM:
getSimSerialNumber
- معلومات البطاقة:
getUiccCardsInfo
- GID1 (معرّف المجموعة من المستوى 1):
getGroupIdLevel1
- سلسلة رقم الهاتف للسطر 1:
getLine1Number
- شبكة الجوّال الأرضية العامة المحظورة (PLMN):
getForbiddenPlmns
- شبكة الجوَّال المحلية المماثلة:
getEquivalentHomePlmns
- الرقم التسلسلي لشريحة SIM:
- طرق الحصول على رقم البريد الصوتي أو ضبطه:
- طريقة إرسال رمز برنامج اتصال خاص:
sendDialerSpecialCode
- طريقة إعادة ضبط مودم الراديو:
rebootModem
- طرق الحصول على أو ضبط أوضاع اختيار الشبكة:
- طريقة طلب فحص الشبكة:
requestNetworkScan
- طرق الحصول على أنواع الشبكات المسموح بها أو المفضّلة أو ضبطها:
- طرق التحقّق من تفعيل بيانات الجوّال أو التجوال حسب إعدادات المستخدم:
- طرق التحقّق من اتصال البيانات أو ضبطه مع السبب:
- طريقة الحصول على قائمة أرقام الطوارئ:
getEmergencyNumberList
- طرق التحكّم في الشبكات المتغيّرة:
- طرق ضبط طلب تعديل قوة إشارة شبكة الجوّال أو محوه:
معاودة الاتصال الهاتفي
TelephonyCallback
يحتوي على واجهات تتضمّن طريقة للردّ بهدف إعلام التطبيق المتصل عند تغيير الحالات المسجّلة:
- تغيَّر مؤشر انتظار الرسائل:
onMessageWaitingIndicatorChanged
- تغيّر مؤشر إعادة توجيه المكالمات:
onCallForwardingIndicatorChanged
- تم تغيير سبب قطع اتصال مكالمة نظام IP للوسائط المتعددة (IMS):
onImsCallDisconnectCauseChanged
- تغيّرت حالة اتصال البيانات الدقيق:
onPreciseDataConnectionStateChanged
- تم تغيير قائمة أرقام الطوارئ الحالية:
onEmergencyNumberListChanged
- تم تغيير معرّف اشتراك البيانات النشطة:
onActiveDataSubscriptionIdChanged
- طرأ تغيير على شبكة مشغّل شبكة الجوّال:
onCarrierNetworkChange
- تعذّر تسجيل الشبكة أو تعديل منطقة الموقع الجغرافي/المسار/التتبّع:
onRegistrationFailed
- تغيير معلومات الحظر:
onBarringInfoChanged
- تم تغيير إعدادات القناة الأساسية الحالية:
onPhysicalChannelConfigChanged
SubscriptionManager
- طُرق الحصول على معلومات مختلفة عن الاشتراكات:
- طريقة الحصول على عدد الاشتراكات النشطة:
getActiveSubscriptionInfoCount
- طرق إدارة مجموعات الاشتراكات:
- طرق الحصول على وصف خطة العلاقة في الفوترة بين مشغّل شبكة الجوّال ومشترك محدّد:
- طريقة لإلغاء خطة علاقة الفوترة بين
مشغّل شبكة الجوّال ومشترك معيّن بشكل مؤقت ليتم اعتبارها بدون تكلفة:
setSubscriptionOverrideUnmetered
- طريقة إلغاء خطة العلاقة في الفوترة مؤقتًا بين
شركة نقل ومستخدِم محدد ليُعتبَر مثبّتًا على شبكة مزدحمة:
setSubscriptionOverrideCongested
- طريقة التحقّق ممّا إذا كان التطبيق الذي يتضمَّن السياق المحدَّد
مصرَّحًا له بإدارة الاشتراك المحدَّد وفقًا لبياناته الوصفية:
canManageSubscription
SmsManager
- طريقة السماح للمتصل بإنشاء رسائل قصيرة واردة جديدة:
injectSmsPdu
. - طريقة إرسال رسالة SMS تستند إلى النص بدون كتابتها إلى مقدِّم خدمة الرسائل القصيرة:
sendTextMessageWithoutPersisting
CarrierConfigManager
- طريقة إرسال إشعارات بشأن تغيير الإعدادات:
notifyConfigChangedForSubId
. - طريقة الحصول على إعدادات مشغّل شبكة الجوّال للاشتراك التلقائي:
getConfig
- طريقة الحصول على إعدادات مشغّل شبكة الجوّال للاشتراك المحدّد:
getConfigForSubId
للحصول على التعليمات، يُرجى الاطّلاع على مقالة ضبط إعدادات مشغّل شبكة الجوَّال.
إدارة تقرير الأخطاء
طريقة بدء تقرير خطأ الاتصال، وهو إصدار متخصص من تقرير الأخطاء لا يتضمن سوى معلومات لتصحيح المشاكل المتعلقة بالاتصال:
startConnectivityBugreport
مدير NetworkStats
- طريقة طلب ملخّص استخدام الشبكة:
querySummary
- طريقة طلب البحث عن سجلّ استخدام الشبكة:
queryDetails
- طُرق تسجيل أو إلغاء تسجيل طلب معاودة الاتصال بشأن استخدام الشبكة:
ImsMmTelManager
- طُرق تسجيل أو إلغاء تسجيل طلب إعادة الاتصال لتسجيل IMS MmTel:
ImsRcsManager
- طُرق تسجيل أو إلغاء تسجيل طلب إعادة الاتصال لتسجيل IMS RCS:
- طرق الحصول على حالة تسجيل IMS أو نوع النقل:
إدارة توفير المتطلبات اللازمة
- طرق تسجيل وإزالة تسجيل تعديلات توفير ميزات IMS callback:
- الإجراءات المتعلقة بحالة توفير المتطلبات اللازمة لأجهزة IMS MmTel أو RCS:
EuiccManager
طريقة التبديل إلى الاشتراك المحدّد (تفعيله):
switchToSubscription
CarrierMessagingService
الخدمة التي تتلقّى مكالمات من النظام عند إرسال رسائل SMS ورسائل وسائط متعددة جديدة أو
تلقّيها. لتوسيع نطاق هذه الفئة، يجب إدراج الخدمة في ملف البيان باستخدام الإذن
android.Manifest.permission#BIND_CARRIER_MESSAGING_SERVICE
وتضمين فلتر أهداف يتضمّن الإجراء#SERVICE_INTERFACE
. وتشمل الطُرق ما يلي:
- طريقة فلترة الرسائل القصيرة الواردة:
onFilterSms
- طريقة اعتراض الرسائل القصيرة SMS المُرسَلة من الجهاز:
onSendTextSms
- طريقة اعتراض الرسائل القصيرة الثنائية المُرسَلة من الجهاز:
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
، استخدِم ال methods التالية لضبط معرّف اشتراك أو مجموعة اشتراكات:
- طريقة ضبط معرّف الاشتراك:
setSubscriptionId
- كيفية ضبط مجموعة اشتراكات:
setSubscriptionGroup
نظام Android الأساسي
في بطاقة UICC التي يتم رصدها، تُنشئ المنصة عناصر UICC داخلية تشمل قواعد امتيازات مشغّل شبكة الجوّال كجزء من بطاقة UICC.
UiccCarrierPrivilegeRules.java
يحمِّل هذا الإجراء القواعد ويحلّلها من بطاقة UICC ويخزّنها مؤقتًا في الذاكرة. وعند الحاجة إلى التحقّق من الامتياز، يقارن UiccCarrierPrivilegeRules
شهادة المتصل بقواعدها الخاصة واحدة تلو الأخرى. في حال إزالة بطاقة UICC، يتم إتلاف
القواعد مع عنصر UICC.
التحقُّق
للتحقّق من التنفيذ من خلال
مجموعة أدوات اختبار التوافق (CTS) باستخدام CtsCarrierApiTestCases.apk
،
يجب أن يكون لديك شريحة UICC للمطوّر تتضمّن قواعد UICC الصحيحة أو تتيح استخدام ARF.
اطلب من موفِّر شريحة SIM الذي تختاره إعداد شريحة UICC للمطوّرين تتضمّن ملف ARF المناسب كما هو موضّح في هذا القسم، واستخدِم شريحة UICC هذه لإجراء الاختبارات. لا يتطلّب ملف تعريف العميل المتكامل (USIM) خدمة شبكة جوّال نشطة لاجتياز اختبارات 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 مع امتيازات مشغّل شبكة الجوّال CTS تستوفي المتطلبات المحدّدة في أحدث إصدار من مواصفات ملف تعريف اختبار GSMA TS.48 التابع لجهة خارجية.
يمكن أيضًا استخدام شريحة SIM نفسها مع الإصدارات الأقدم من Android 12.
تعديل ملف تعريف شريحة SIM الخاص بمجموعة أدوات اختبار التوافق (CTS)
- الإضافة: امتيازات مشغّل شبكة الجوّال لاختبار CTS في
ملف 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
- التجزئة2(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 الأساسية (EFs) غير المتوفّرة في
TS.48 والمطلوبة لإجراء اختبار التوافق (CTS):
- EF_MBDN (6FC7)، حجم السجلّ: 28، رقم السجلّ: 4
- المحتوى
- التسجيل 1: 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 أو إجراء أي تعديلات أخرى مُدرَجة أعلاه في هذه الملفات الشخصية.
إجراء الاختبارات
لتسهيل الأمر، يتيح CTS استخدام رمز مميّز للجهاز يفرض عدم تنفيذ الاختبار إلا على الأجهزة التي تم ضبطها باستخدام الرمز المميّز نفسه. تتوافق اختبارات التحقّق من الامتثال (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 معرّف AID نفسه المُستخدَم في شريحة UICC. بالتالي، تكون القواعد مترابطة وتتم فلترتها إما باستخدام SeeK أو UiccCarrierPrivileges
.
ما هو الوقت المناسب للتحقّق من امتيازات مشغّل شبكة الجوّال؟
أ: بعد بث حالة شريحة SIM.
هل يمكن لمصنّعي الأجهزة الأصليين إيقاف جزء من واجهات برمجة تطبيقات مشغّلي شبكات الجوّال؟
الجواب: لا، نحن نعتقد أنّ واجهات برمجة التطبيقات الحالية هي الحدّ الأدنى من المتطلبات، ونخطط لاستخدام قناع البت للتحكّم في الدقة بشكل أدق في المستقبل.
هل تلغي setOperatorBrandOverride
جميع أشكال سلاسل أسماء
عوامل التشغيل
الأخرى؟ على سبيل المثال، SE13 أو SPN في شريحة UICC أو 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.