الدلائل والقواعد وسياسة sepolicy

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

تنسيق الدليل

يتألف تنسيق الدليل الذي تم إيقافه مما يلي: الدلائل:

  • يحتوي /system/lib[64] على جميع المكتبات المشتركة لإطار العمل، بما في ذلك LL-NDK وVNDK ومكتبات أُطر العمل فقط (بما في ذلك LL-NDK-خاص وبعض المكتبات التي تحمل نفس أسماء تلك التي في 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 من المورد الأقسام (يتم فرض قيود عليها بدءًا من الإصدار 8.1 من Android).
  • يجب ألا تقوم عمليات الموردين بتحميل ملفات غير LL-NDK، وغير VNDK-SP، مكتبات غير 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 المؤهلة ونسخة من إطار العمل غير المؤهل التي تمت مشاركتها المكتبات.

سياسة sepolicy

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

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

الفئة قسم يمكن الوصول إليه من
coredomain
يمكن الوصول إليه من
النطاق غير الأساسي
LL-NDK النظام Y Y
LL-NDK-خاص النظام Y Y
VNDK-SP/VNDK-SP-خاصة النظام Y Y
VNDK-SP-Ext المورّد Y Y
الدونغ الفيتنامي (VNDK) النظام Y Y
VNDK-Ext المورّد N Y
إعادة تحميل المحتوى فقط النظام Y N
عرض FWK فقط - RS النظام Y N
واجهة SP-HAL المورّد Y Y
SP-HAL-Dep المورّد Y Y
دونغ فيتنامي فقط المورّد N Y

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

تصنيف نفس_process_hal_file

تتوفّر المكتبات التالية في قسم المورِّد. قم بإتاحة الوصول إلى هذه المكتبات من coredomain وغير تابعة لـ coredomain.

  • VNDK-SP-Ext في /vendor/lib[64]/vndk-sp
  • SP-HAL في /vendor/lib[64] أو /vendor/lib[64]/hw
  • SP-HAL-Dep في /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