يصف هذا القسم مصفوفات إطار العمل ومصفوفات توافق الأجهزة، مخطط مصفوفة التوافق. بالنسبة قواعد المطابقة، راجع المطابقة القواعد:
مصفوفة توافق إطار العمل (FCM)
تصف مصفوفة توافق إطار العمل (FCM) متطلبات إطار العمل على الجهاز الذي يعمل عليه تتكون مصفوفة توافق إطار العمل من النظام ومصفوفة التوافق ومصفوفة توافق المنتجات ومصفوفة توافق نظام_ext. يجب استيفاء متطلبات خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" من خلال بيان الجهاز (المتطلبات ويتم فرضها في وقت الإصدار ووقت التشغيل وفي VTS).
تعتبر ميزتا "المراسلة عبر السحابة الإلكترونية من Firebase" و"المراسلة عبر السحابة الإلكترونية من Firebase" للمنتج مكمّلين لميزة "المراسلة عبر السحابة الإلكترونية من Firebase" الخاصة بالجهاز (مثبتتَين. في قسم النظام).
- يجب أن تعكس خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" للأجهزة متطلبات الوحدات في قسم النظام.
- ويجب أن تعكس ميزة "المراسلة عبر السحابة الإلكترونية من Firebase" في system_ext المتطلّبات حسب الوحدات في القسم system_ext.
- يجب أن تعكس خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" للمنتج المتطلبات حسب الوحدات product number (قسم المنتج).
يجب أن تتوافق جميع "المراسلة عبر السحابة الإلكترونية من Firebase" مع تعديلات المصنّع الأصلي للجهاز على إطار العمل في النظام والمنتج وأقسام System_ext. على سبيل المثال، إذا كان تطبيق مثبّت في قسم المنتج يستخدم إضافة مورّد لأي واجهة من واجهات HAL، يجب الإعلان عن متطلبات واجهة HAL في عبر خدمة "المراسلة عبر السحابة الإلكترونية من Firebase".
مثال على ملف مصفوفة توافق النظام:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="framework" level="3"> <hal> <name>android.hardware.camera</name> <version>1.0</version> <version>3.1-4</version> <interface> <name>ICameraProvider</name> <instance>default</instance> <regex-instance>[a-z_]+/[0-9]+</regex-instance> </interface> </hal> <hal> <name>android.hardware.nfc</name> <version>1.0</version> <interface> <name>INfc</name> <instance>default</instance> </interface> </hal> <hal optional="true"> <name>android.hardware.graphics.composer</name> <version>2.1</version> <interface> <name>IComposer</name> <instance>default</instance> </interface> </hal> <hal format="aidl" optional="true"> <name>android.hardware.light</name> <version>1-2</version> <interface> <name>ILights</name> <instance>default</instance> </interface> </hal> <hal format="native"> <name>GL</name> <version>1.1</version> <version>3.0</version> </hal> <hal format="native"> <name>EGL</name> <version>1.1</version> </hal> <kernel version="3.18.51"> <!-- common configs --> </kernel> <kernel version="3.18.51"> <!-- arm specific configs --> <condition> <config> <key>CONFIG_ARM</key> <value type="tristate">y</value> </config> <condition> <config> <key>CONFIG_A</key> <value type="string"></value> </config> <config> <key>CONFIG_B</key> <value type="tristate">y</value> </config> </kernel> <kernel version="4.1.22"> <!-- common configs --> <config> <key>CONFIG_A</key> <value type="string">foo</value> </config> <config> <key>CONFIG_B2</key> <value type="int">1024</value> </config> </kernel> <sepolicy> <kernel-sepolicy-version>30</kernel-sepolicy-version> <sepolicy-version>25.0</sepolicy-version> <sepolicy-version>26.0-3</sepolicy-version> </sepolicy> <avb> <vbmeta-version>2.1</vbmeta-version> </avb> <xmlfile format="dtd"> <name>media_profile</name> <version>1.0</version> <path>/system/etc/media_profile_V1_0.dtd</path> </xmlfile> </compatibility-matrix>
لمزيد من التفاصيل، يُرجى الاطّلاع على "المراسلة عبر السحابة الإلكترونية من Firebase" مراحل النشاط:
مصفوفة توافق المنتجات
خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" للمنتج هي عبارة عن ملف مصفوفة توافق ضمن إطار العمل في المنتج قسم القرص. عنصر VINTF ينضم إلى المنتج "المراسلة عبر السحابة الإلكترونية من Firebase" مع ميزة "المراسلة عبر السحابة الإلكترونية من Firebase" في النظام وsystem_ext الأقسام المختلفة في وقت التشغيل.
مثال على ملف "المراسلة عبر السحابة الإلكترونية من Firebase" للمنتجات:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="framework"> <hal> <name>vendor.foo.camera</name> <version>1.0</version> <interface> <name>IBetterCamera</name> <instance>default</instance> </interface> </hal> </compatibility-matrix>
مصفوفة التوافق مع System_ext
system_ext FCM هو ملف مصفوفة توافق ضمن إطار العمل في System_ext قسم القرص. عنصر VINTF ينضم إلى System_ext FCM مع FCM في النظام والمنتج الأقسام المختلفة في وقت التشغيل. الاطّلاع على مصفوفة توافق المنتجات للحصول على مثال لملف System_ext FCM.
مصفوفة توافق الأجهزة (DCM)
تصف مصفوفة توافق الجهاز مجموعة من المتطلبات التي يجب أن يستوفيها الجهاز يمكن توقّعه من إطار العمل (المتطلبات التي يتم فرضها عند الإطلاق ووقت التحديث عبر الهواء).
مثال على ملف DCM:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="device"> <hal> <name>android.hidl.manager</name> <version>1.0</version> <interface> <name>IServiceManager</name> <instance>default</instance> </interface> </hal> <hal> <name>android.hidl.memory</name> <version>1.0</version> <interface> <name>IMemory</name> <instance>ashmem</instance> </interface> </hal> <hal> <name>android.hidl.allocator</name> <version>1.0</version> <interface> <name>IAllocator</name> <instance>ashmem</instance> </interface> </hal> <hal> <name>android.framework.sensor</name> <version>1.0</version> <interface> <name>ISensorManager</name> <instance>default</instance> </interface> </hal> <vendor-ndk> <version>27</version> </vendor-ndk> <system-sdk> <version>27</version> </system-sdk> </compatibility-matrix>
مخطّط مصفوفة التوافق
يصف هذا القسم معنى علامات XML هذه. بعض الأعمدة "مطلوبة" العلامات
قد تكون مفقودة من ملف المصدر في شجرة مصادر Android ومكتوب بواسطة
assemble_vintf
في وقت التصميم. "مطلوب" وجود العلامات في الملفات المقابلة على
الخاص بك.
?xml
- اختياري. ولا يقدّم معلومات إلا إلى محلّل XML.
compatibility-matrix.version
- يجب ملء الحقل. نسخة وصفية من مصفوفة التوافق هذه يصف العناصر المتوقع في مصفوفة التوافق. لا صلة لها بإصدار XML.
compatibility-matrix.type
- يجب ملء الحقل. نوع مصفوفة التوافق هذه:
"device"
: مصفوفة توافق الأجهزة"framework"
: مصفوفة توافق إطار العمل
manifest.level
- مطلوبة لمصفوفة توافق إطار العمل. في نظام التشغيل Android 12 والإصدارات الأحدث،
مسموح به في ملفات مصفوفة التوافق مع إطار العمل في أقسام product وsystem_ext.
تحدِّد هذه السياسة إصدار مصفوفة توافق إطار العمل (إصدار FCM) من هذا الملف. عدم الإفصاح عن ذلك
في مصفوفة توافق إطار العمل الخاص بالجهاز (أي
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE
). compatibility-matrix.hal
- اختياري ويمكن تكراره. يسرد محتوى HAL واحد (HIDL أو مدمج مع المحتوى)
يتطلبه مالك مصفوفة التوافق (إطار العمل أو الجهاز)
حاليًا. يتمّ تمييز إدخالات HAL بالعنصر
<name>
، يمكن أن يكون هناك العديد من إدخالات HAL التي تحمل الاسم نفسه (يعني ذلك "و" الشرط). compatibility-matrix.hal.format
- اختياري. يمكن أن تكون القيمة واحدة مما يلي:
"hidl"
: أنظمة HIDL HALs. هذا هو الخيار التلقائي."aidl"
: HALs للرابطة الدولية للمعايير الدولية (AIDL). صالح فقط على الإصدار الوصفي 2.0 من مصفوفة التوافق."native"
: HALs أصلية
compatibility-matrix.hal.optional
- السمة اختيارية ويتم ضبطها تلقائيًا على "خطأ". يوضح ما إذا كانت HAL هذا
اختيارية لمالك مصفوفة التوافق (إطار العمل أو الجهاز). إذا
تم وضع علامة على الإدخال
<hal>
على أنّه اختياري، ما يعني أنّه يمكن للمالك أن تعمل مع طبقة تجريد الأجهزة (HAL) هذه، إن كانت موجودة، لكنّها لا تتطلّب وجودها. compatibility-matrix.hal.name
- يجب ملء الحقل. الاسم الكامل لحزمة HAL هذا. أمثلة:
android.hardware.camera
(HIDL أو AIDL HAL)GLES
(HAL الأصلي، يتطلب الاسم فقط)
compatibility-matrix.hal.version
-
قائمة بنطاقات الإصدارات (راجع
مطابقات HAL)
التي تحدد إصدارات مالك مصفوفة التوافق (إطار العمل أو
الجهاز).
بالنسبة إلى HIDL وHALs الأصلية، يجب تكرارها بدون تكرار. ويكون التنسيق واحدًا مما يلي:MAJOR.MINOR_MIN-MINOR_MAX
MAJOR.MINOR
(ما يعادلMAJOR.MINOR-MINOR
)
بالنسبة إلى AIDL HALs، يجب ألا تكون متوفّرة على الأجهزة التي تعمل بنظام التشغيل Android 11 وأقل. اختياري على الأجهزة وتشغيل الإصدارات الأحدث. إذا تم تحديد التنسيق، يكون التنسيق واحدًا مما يلي:VERSION_MIN-VERSION_MAX
VERSION
(ما يعادلVERSION-VERSION
)
1
. compatibility-matrix.hal.interface
- يمكن التكرار اختياريًا. قائمة بالواجهات المطلوبة لطبقة HAL هذه.
compatibility-matrix.hal.interface.name
- يجب ملء الحقل. اسم الواجهة.
compatibility-matrix.hal.interface.instance
- يمكن التكرار اختياريًا. قائمة بالمثيلات المطلوبة لهذه الواجهة.
compatibility-matrix.hal.interface.regex-instance
- يمكن التكرار اختياريًا. قائمة بأنماط أسماء المثيلات المطلوبة على هذا من واجهة pyplot. استخدام الموسع تنسيق التعبير العادي
compatibility-matrix.kernel
- يمكن التكرار اختياريًا. تحديد قائمة بتكوينات النواة التي يستخدمها إطار العمل
يتطلبها كل إصدار من إصدارات النواة.
يمكن لـ<kernel>
متعددة التي لها<version>
نفسها موجودة للإشارة إلى "و" العلاقة. كل<kernel>
هو "جزء" من المتطلبات التي يتم تفعيلها فقط عند استخدام<conditions>
compatibility-matrix.kernel.version
- يجب ملء الحقل. إصدار النواة. التنسيق هو
VERSION.MAJOR_REVISION.MINOR_REVISION
يجب أن يتطابق الإصدار والنسخة الرئيسية تمامًا. تحدد المراجعة الثانوية الحد الأدنى من إصدار قناة الدعم الطويل الأمد (LTS) الذي يتوقعه إطار العمل. compatibility-matrix.kernel.condition
- اختياري. يجب ألا توجد في أول
<kernel>
من كل منها . تُحدِّد هذه السياسة قائمة بالشروط. عندما يتم استيفاء الشروط، تم تفعيل المتطلبات المذكورة في جزء<kernel>
هذا. compatibility-matrix.kernel.config
- يمكن التكرار اختياريًا. يسرد
CONFIG
عنصر يجب مطابقة لإصدار النواة هذا. كل عنصرCONFIG
عبارة عن مفتاح/قيمة زوج يتم تمييز عناصر الضبط بالمفتاح. compatibility-matrix.kernel.config.key
- يجب ملء الحقل. الاسم الرئيسي للعنصر
CONFIG
تبدأ بـCONFIG_
compatibility-matrix.kernel.config.value
- يجب ملء الحقل. قيمة العنصر
CONFIG
يعتمد التنسيق على النوع:string
تم حذف علامات الاقتباس.int
النظام العشري والسداسي العشري (يجب أن يبدأ بـ0x
) أو0X)
تم قبول القيم. تفسيره كعدد صحيح 64 بت؛ تؤدي التجاوزات إلى اقتطاع. (يقبل المحلل اللغوي القيم من -264 + 1 إلى 264 - 1، يتم اقتطاع البت 65؛ للحصول على التفاصيل، يُرجى الرجوع إلى سترتول الفيديو).range
التنسيق هو[int]-[int]
، مثال:10-20
يتم قبول القيم السداسية العشرية ويجب أن تبدأ بـ0x
أو0X
يجب أن يكون حدّان 64 بت غير موقَّعة. عدد صحيح.tristate
القيم الصالحة هيy
وm
وn
compatibility-matrix.kernel.config.value.type
- يجب ملء الحقل. نوع قيمة العنصر
CONFIG
، أو أي مما يلي:string
int
range
tristate
compatibility-matrix.sepolicy
- يجب ملء الحقل. يحتوي على جميع الإدخالات المتعلقة بسياسة sepolicy. لا يتم استخدامه إلا من قِبل مصفوفة توافق إطار العمل
compatibility-matrix.sepolicy.sepolicy-version
- مطلوب، يمكن تكراره. يصف متطلبات إصدار sepolicy.
يتوافق مع
manifest.sepolicy.version
. كل مثيل من مجموعة من إصدارات sepolicy. compatibility-matrix.sepolicy.kernel-sepolicy-version
- يجب ملء الحقل. للإعلان عن إصدار
policydb
الذي يعمل به إطار العمل معهم. compatibility-matrix.avb.vbmeta-version
- اختياريّة: وتستخدم فقط من خلال مصفوفة توافق إطار العمل. يعلِن
AVB
المستخدم للتوقيع على
system.img
. متوقّفة نهائيًا في Android 10. compatibility-matrix.vendor-ndk
- اختياريّة: وتستخدم فقط من خلال مصفوفة توافق الجهاز. يعلِن للقطة بائع VNDK. في حال عدم توفّر نوع الملف الشخصي، لن يتم استيفاء متطلبات VNDK على صورة النظام.
compatibility-matrix.vendor-ndk.version
- يجب ملء الحقل. عدد صحيح موجب يعرّف عن إصدار VNDK الذي يتطلبه الحقل صورة البائع
compatibility-matrix.vendor-ndk.library
- يمكن التكرار اختياريًا. لتعريف مجموعة من مكتبات VNDK التي يتطلبها النموذج
صورة البائع. يتطابق مع دلالات
manifest.vendor-ndk.library
. compatibility-matrix.system-sdk.version
- اختياري، يمكن التكرار: وتستخدم فقط من خلال مصفوفة توافق الجهاز. البيانات الذي تفرضه تطبيقات البائع على إصدارات System SDK. في حال عدم توفّر حزمة SDK للنظام على صورة النظام.