تصف هذه الصفحة تخطيط الدليل للأجهزة التي تعمل بنظام التشغيل 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، و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
.
سياسات مماثلة تقيد الوصول إلى المكتبات المشتركة على أقسام النظام والبائعين. يوضح الجدول التالي حقوق الوصول إلى المكتبات المشتركة ذات الفئات المختلفة:
فئة | تقسيم | يمكن الوصول إليها من com.coredomain | يمكن الوصول إليها من غير المجال الأساسي |
---|---|---|---|
إل إل إن دي كيه | نظام | ي | ي |
LL-NDK-خاص | نظام | ي | ي |
VNDK-SP/VNDK-SP-خاص | نظام | ي | ي |
VNDK-SP-تحويلة | بائع | ي | ي |
فندك | نظام | ي | ي |
VNDK- تحويلة | بائع | ن | ي |
FWK فقط | نظام | ي | ن |
FWK-فقط-RS | نظام | ي | ن |
SP-هال | بائع | ي | ي |
SP-HAL-ديب | بائع | ي | ي |
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 في
/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,
تصف هذه الصفحة تخطيط الدليل للأجهزة التي تعمل بنظام التشغيل 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، و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
.
سياسات مماثلة تقيد الوصول إلى المكتبات المشتركة على أقسام النظام والبائعين. يوضح الجدول التالي حقوق الوصول إلى المكتبات المشتركة ذات الفئات المختلفة:
فئة | تقسيم | يمكن الوصول إليها من com.coredomain | يمكن الوصول إليها من غير المجال الأساسي |
---|---|---|---|
إل إل إن دي كيه | نظام | ي | ي |
LL-NDK-خاص | نظام | ي | ي |
VNDK-SP/VNDK-SP-خاص | نظام | ي | ي |
VNDK-SP-تحويلة | بائع | ي | ي |
فندك | نظام | ي | ي |
VNDK- تحويلة | بائع | ن | ي |
FWK فقط | نظام | ي | ن |
FWK-فقط-RS | نظام | ي | ن |
SP-هال | بائع | ي | ي |
SP-HAL-ديب | بائع | ي | ي |
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 في
/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