تصف هذه الصفحة تنسيق الدليل للأجهزة التي تعمل بنظام التشغيل 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