نظرة عامة على طبقة تجريد الأجهزة

في Android 8.0 والإصدارات الأحدث، تتم إعادة كتابة طبقات المستوى الأدنى لتبني بنية جديدة أكثر معيارية. يجب أن تدعم الأجهزة التي تعمل بنظام التشغيل Android 8.0 والإصدارات الأحدث خطوط HAL المكتوبة بلغة HIDL، مع بعض الاستثناءات المذكورة أدناه. يمكن ربط هذه HALs أو عبورها. في Android 11، يتم أيضًا دعم شرائح HALs المكتوبة بلغة AIDL. يتم ربط جميع AIDL HALs.

  • HALs ملزمة . يتم التعبير عن HALs بلغة تعريف واجهة HAL (HIDL) أو لغة تعريف واجهة Android (AIDL). تحل شرائح HAL هذه محل كل من HALs التقليدية والقديمة المستخدمة في الإصدارات السابقة من Android. في Binderized HAL، يتواصل إطار عمل Android وHALs مع بعضهما البعض باستخدام مكالمات الاتصال بين العمليات (IPC). يجب على جميع الأجهزة التي تعمل بنظام التشغيل Android 8.0 أو الإصدارات الأحدث أن تدعم طبقات HAL المربوطة فقط.

  • العبور HALs . HALs التقليدية أو القديمة المغلفة بـ HIDL تقوم هذه HALs بتغليف HALs الموجودة ويمكن أن تخدم HAL في أوضاع الربط ونفس العملية (العبور). يمكن للأجهزة التي تقوم بالترقية إلى Android 8.0 استخدام طبقات HAL للعبور.

متطلبات وضع HAL

جهاز يمر من خلال موثق
إطلاق مع أندرويد 8.0 يجب أن تكون طبقات HAL المدرجة في طبقات HAL للعبور عبارة عن عبور. يتم ربط كافة تراخيص HALs الأخرى (بما في ذلك تراخيص HALs التي تعد امتدادات للموردين).
الترقية إلى أندرويد 8.0 يجب أن تكون طبقات HAL المدرجة في طبقات HAL للعبور عبارة عن عبور. يجب ربط طبقات HALs المدرجة في HALs Binderized .
يمكن أن تكون جميع شرائح HAL الأخرى التي توفرها صورة البائع في وضع المرور أو الوضع الموثق. في الأجهزة المتوافقة تمامًا مع تقنية Treble، يجب ربط كل هذه العناصر.

HALs ملزمة

يتطلب Android ربط طبقات HAL التالية على جميع أجهزة Android بغض النظر عما إذا كانت أجهزة تشغيل أو أجهزة ترقية:

  • android.hardware.biometrics.fingerprint@2.1 . يستبدل fingerprintd التي لم تعد موجودة في Android 8.0.
  • android.hardware.configstore@1.0 . الجديد في أندرويد 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 . الجديد في أندرويد 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 أن تكون طبقات HAL التالية في وضع العبور على جميع أجهزة Android بغض النظر عما إذا كانت أجهزة تشغيل أو أجهزة ترقية:

  • android.hardware.graphics.mapper@1.0 . يرسم الذاكرة في العملية التي تعيش فيها.
  • android.hardware.renderscript@1.0 . يمرر العناصر في نفس العملية (أي ما يعادل openGL ).

يجب ربط كافة تراخيص HAL غير المذكورة أعلاه لأجهزة التشغيل.

نفس العملية HALs

يتم دائمًا فتح HALs ذات العملية نفسها (SP-HALs) في نفس العملية التي يتم استخدامها فيها. وهي تتضمن جميع شرائح HAL التي لم يتم التعبير عنها في HIDL بالإضافة إلى بعضها التي لم يتم ربطها. يتم التحكم في العضوية في مجموعة SP-HAL بواسطة Google فقط، دون أي استثناءات.

تتضمن SP-HALs ما يلي:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (مقدم من نظام Android، عبور دائمًا)
  • android.hardware.graphics.mapper@1.0
  • android.hardware.renderscript@1.0