الدلائل والقواعد والنهج

تصف هذه الصفحة تخطيط الدليل للأجهزة التي تعمل بنظام التشغيل Android 8.0 والإصدارات الأحدث ، وقواعد VNDK ، والنهج المتعلق به.

تخطيط الدليل

يتكون تخطيط الدليل المنحط من الأدلة التالية:

  • /system/lib[64] يحتوي على جميع مكتبات إطار العمل المشتركة ، بما في ذلك LL-NDK و VNDK ومكتبات إطار العمل فقط (بما في ذلك LL-NDK-Private وبعض المكتبات التي تحمل نفس الأسماء الموجودة في VNDK-SP).
  • /system/lib[64]/vndk-sp يحتوي على مكتبات VNDK-SP لنفس العملية HALs.
  • يحتوي /vendor/lib[64] على مكتبات VNDK التي قام البائع بتوسيعها (إما مكتبات DXUA أو DXUX VNDK) وتطبيقات HAL ذات العملية نفسها ومكتبات البائعين المشتركة الأخرى.
  • /vendor/lib[64]/vndk-sp قد يحتوي على مكتبات VNDK-SP الموسعة من قبل البائع.

تقوم وحدات البائع بتحميل مكتبات VNDK من /system/lib[64] .

قواعد VNDK

يوفر هذا القسم قائمة شاملة بقواعد VNDK:

  • يجب ألا تقوم عمليات إطار العمل بتحميل مكتبات مشتركة بخلاف SP-HAL من أقسام البائعين (يتم فرضها بشكل صارم بدءًا من Android 8.1).
  • يجب ألا تقوم عمليات البائع بتحميل مكتبات غير LL-NDK و non-VNDK-SP و non-VNDK من قسم النظام. (لم يتم تطبيقه بشكل صارم في Android O ولكن سيكون في إصدار مستقبلي).
  • يجب أن تكون مكتبات VNDK المثبتة مجموعة فرعية من مكتبات VNDK المؤهلة التي تحددها Google.
  • يجب أن تقتصر التبعيات الخارجية لـ SP-HAL و SP-HAL-Dep على LL-NDK أو مكتبات VNDK-SP المعرفة من Google.
    • يجب أن تقتصر تبعيات مكتبة SP-HAL المشتركة على مكتبات LL-NDK ، ومكتبات VNDK-SP المعرفة من Google ، ومكتبات SP-HAL الأخرى ، و / أو مكتبات البائعين المشتركة الأخرى التي يمكن تصنيفها على أنها مكتبات SP-HAL-Dep .
    • يمكن تسمية مكتبة البائع المشتركة كمكتبة SP-HAL-Dep فقط إذا لم تكن مكتبة AOSP وكانت تبعياتها مقتصرة على مكتبات LL-NDK ، ومكتبات VNDK-SP المعرفة من Google ، ومكتبات SP-HAL ، و / أو مكتبات SP-HAL-Dep أخرى.
  • يجب أن تكون VNDK-SP قائمة بذاتها. libRS_internal.so معاملة خاصة في Android 8.0 ، ولكن ستتم إعادة النظر فيه في إصدار مستقبلي.
  • لا يوجد اتصال بمورد إطار العمل من خلال واجهات غير HIDL ، بما في ذلك (على سبيل المثال لا الحصر) الموثق والمآخذ والذكريات المشتركة والملفات وما إلى ذلك.
  • يجب أن يكون حجم قسم النظام كبيرًا بما يكفي لاحتواء نسختين من جميع مكتبات VNDK المؤهلة ونسخة من مكتبات إطار العمل المشتركة غير المؤهلة.

قبر

تتوافق عمليات الإطار الموضحة في هذا القسم مع coredomain في السياسات المستقلة بينما تتوافق عمليات البائع مع العمليات non-coredomain . على سبيل المثال ، لا يمكن الوصول إلى /dev/binder إلا في النطاق الرئيسي و /dev/vndbinder coredomain يمكن الوصول إليه إلا في حالة غير coredomain .

تقيد السياسات المماثلة الوصول إلى المكتبات المشتركة على أقسام النظام والمورد. يوضح الجدول التالي حقوق الوصول إلى المكتبات المشتركة من فئات مختلفة:

فئة تقسيم يمكن الوصول إليها من
السيطرة
يمكن الوصول إليها من
غير محورية
LL-NDK نظام ص ص
LL-NDK- خاص نظام ص ص
VNDK-SP / VNDK-SP- خاص نظام ص ص
VNDK- SP- تحويلة بائع ص ص
VNDK نظام ص ص
VNDK- تحويلة بائع ن ص
FWK- فقط نظام ص ن
FWK-ONLY-RS نظام ص ن
SP-HAL بائع ص ص
SP-HAL-Dep بائع ص ص
VND- فقط بائع ن ص

يجب أن يكون الوصول إلى LL-NDK-Private و VNDK-SP-Private من كلا المجالين لأن غير coredomain سيصل إليهما بشكل غير مباشر. وبالمثل ، يجب أن يكون SP-HAL-Dep يمكن الوصول إليه من coredomain لأن SP-HAL يعتمد عليه.

تسمية same_process_hal_file

المكتبات التالية موجودة في قسم البائع. اجعل هذه المكتبات قابلة للوصول من كلا coredomain وغير coredomain .

  • VNDK-SP-Ext in /vendor/lib[64]/vndk-sp
  • SP-HAL في /vendor/lib[64] أو /vendor/lib[64]/hw
  • SP-HAL-Dep in /vendor/lib[64] أو /vendor/lib[64]/hw

قم بتسمية هذه الملفات صراحة باسم same_process_hal_file ، لأن أي شيء في قسم vendor لا يمكن الوصول إليه coredomain . أضف سطورًا مشابهة لما يلي إلى ملف file_contexts الخاص بالبائع.

/vendor/lib(64)?/hw/libMySpHal\.so        u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/vndk-sp/libBase\.so      u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libBaseInternal\.so      u:object_r:same_process_hal_file:s0