في Android 8.0 والإصدارات الأحدث ، تتم إعادة كتابة الطبقات ذات المستوى الأدنى لتبني بنية جديدة أكثر نمطية. يجب أن تدعم الأجهزة التي تعمل بنظام التشغيل Android 8.0 والإصدارات الأحدث HALs المكتوبة بلغة HIDL ، مع بعض الاستثناءات المدرجة أدناه. يمكن ربط HALs أو العبور. في Android 11 ، يتم أيضًا دعم HALs المكتوبة في AIDL. يتم ربط جميع AIDL HALs.
HALs ملزم . يتم التعبير عن HALs بلغة تعريف واجهة HAL (HIDL) أو لغة تعريف واجهة Android (AIDL). تحل HALs هذه محل كلاً من HALs التقليدية والقديمة المستخدمة في الإصدارات السابقة من Android. في Binderized HAL ، يتواصل إطار عمل Android و HALs مع بعضهما البعض باستخدام مكالمات اتصال بين العمليات (IPC). يجب أن تدعم جميع الأجهزة التي يتم تشغيلها بنظام Android 8.0 أو إصدار أحدث HALs المرتبطة فقط.
عبور HALs . طبقة HALs تقليدية أو قديمة مغلفة بـ HIDL تقوم هذه HALs بتغليف HALs الموجودة ويمكن أن تخدم HAL في الوضعين المرتبطين ونفس العملية (العبور). يمكن للأجهزة التي تقوم بالترقية إلى Android 8.0 استخدام HALs العبور.
متطلبات وضع HAL
جهاز | يمر من خلال | موثق |
---|---|---|
ابدأ باستخدام Android 8.0 | يجب أن تكون HALs المُدرجة في HALs العبور . | يتم ربط كافة HALs الأخرى (بما في ذلك HALs التي تعد امتدادات البائعين). |
قم بالترقية إلى Android 8.0 | يجب أن تكون HALs المُدرجة في HALs العبور . | يجب ربط HALs المدرجة في HALs Binderized . |
يمكن أن تكون جميع HALs الأخرى التي توفرها صورة البائع في وضع العبور أو وضع الربط. في جهاز متوافق تمامًا مع Treble ، يجب ربط كل هذه الأشياء. |
HALs ملزم
يتطلب Android أن يتم ربط HALS التالية على جميع أجهزة Android بغض النظر عما إذا كانت أجهزة إطلاق أو أجهزة ترقية:
-
android.hardware.biometrics.fingerprint@2.1
تحديث يستبدلfingerprintd
التي لم تعد في Android 8.0. -
android.hardware.configstore@1.0
. الجديد في Android 8.0. -
android.hardware.dumpstate@1.0
. لا يمكن تلألؤ الواجهة الأصلية التي يوفرها HAL وتم تغييرها. لهذا السبب ، يجب إعادة تطبيقdumpstate_board
على جهاز معين (هذا HAL اختياري). -
android.hardware.graphics.allocator@2.0
. مطلوب أن يتم ربطه في Android 8.0 بحيث لا يلزم مشاركة واصفات الملفات بين العمليات الموثوقة وغير الموثوق بها. -
android.hardware.radio@1.0
. يستبدل الواجهة التي يوفرهاrild
التي تعيش في العملية الخاصة بها. -
android.hardware.usb@1.0
الجديد في Android 8.0. -
android.hardware.wifi@1.0
. الجديد في Android 8.0 ، يحل محل مكتبة Wi-Fi HAL القديمة التي تم تحميلها فيsystem_server
-
android.hardware.wifi.supplicant@1.0
. واجهة تعامل HIDL عبر عمليةwpa_supplicant
الحالية.
عبور HALs
يتطلب Android أن تكون HALs التالية في وضع العبور على جميع أجهزة Android بغض النظر عما إذا كانت أجهزة تشغيل أو أجهزة ترقية:
-
android.hardware.graphics.mapper@1.0
. ذاكرة الخرائط في العملية التي تعيش فيها. -
android.hardware.renderscript@1.0
. يمر العناصر في نفس العملية (ما يعادلopenGL
).
يجب ربط جميع HALs غير المدرجة أعلاه لأجهزة التشغيل.
HALs بنفس العملية
يتم فتح HALs للعملية نفسها (SP-HALs) دائمًا في نفس العملية التي يتم استخدامها فيها. وهي تشمل جميع HALs التي لم يتم التعبير عنها في HIDL بالإضافة إلى بعضها غير المرتبط. تتحكم Google فقط في العضوية في مجموعة SP-HAL ، بدون استثناءات.
تتضمن SP-HALs ما يلي:
-
openGL
-
Vulkan
-
android.hidl.memory@1.0
(يتم توفيره من خلال نظام Android ، يمر دائمًا) -
android.hardware.graphics.mapper@1.0
android.hardware.renderscript@1.0