סקירת שכבת הפשטת החומרה

באנדרואיד 8.0 ומעלה, השכבות ברמה נמוכה יותר נכתבות מחדש כדי לאמץ ארכיטקטורה חדשה ומודולרית יותר. מכשירים המריצים אנדרואיד 8.0 ומעלה חייבים לתמוך ב-HALs שנכתבו ב-HIDL, עם כמה חריגים המפורטים להלן. HALs אלה יכולים להיות כרוכים או לעבור. באנדרואיד 11, HALs שנכתבו ב-AIDL נתמכים גם הם. כל AIDL HALs משולבים.

  • HALs מכורכים . HALs המתבטאים בשפת הגדרת ממשק HAL (HIDL) או שפת הגדרת ממשק אנדרואיד (AIDL). HALs אלה מחליפים גם HALs קונבנציונליים וגם מדור קודם בשימוש בגרסאות קודמות של אנדרואיד. ב-Binderized HAL, מסגרת האנדרואיד ו-HALs מתקשרים זה עם זה באמצעות קריאות תקשורת בין תהליכים של קשרים (IPC). כל המכשירים המופעלים עם אנדרואיד 8.0 ואילך חייבים לתמוך ב-HALs משולבים בלבד.

  • HALs מעבר . HALs קונבנציונלי עטוף ב-HIDL או Legacy HALs אלה עוטפים HALs קיימים ויכולים לשרת את ה-HAL במצבים מקושרים ואוהבים בתהליך (מעבר). מכשירים שמשדרגים לאנדרואיד 8.0 יכולים להשתמש ב-HAL מעבר.

דרישות מצב HAL

התקן עובר דרך מקושר
הפעלה עם אנדרואיד 8.0 HALs המפורטים ב- Passthrough HALs חייבים להיות מעבר. כל שאר ה-HALs משולבים (כולל HALs שהם הרחבות של ספקים).
שדרג לאנדרואיד 8.0 HALs המפורטים ב- Passthrough HALs חייבים להיות מעבר. HALs הרשומים ב- HALs משולבים חייבים להיות מכורכים.
כל שאר ה-HALs שסופקו על ידי תמונת הספק יכולים להיות במצב מעבר או ב-binderized. במכשיר תואם טרבל לחלוטין, כל אלה חייבים להיות כרוכים.

HALs קשורים

אנדרואיד מחייב את ה-HAL הבאים להיות משולבים בכל מכשירי האנדרואיד, ללא קשר אם הם מכשירי השקה או מכשירי שדרוג:

  • android.hardware.biometrics.fingerprint@2.1 . מחליף fingerprintd שכבר לא נמצאת באנדרואיד 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 . חדש באנדרואיד 8.0, מחליף את ספריית ה-Wi-Fi HAL הוותיקה שנטענה ל- system_server
  • android.hardware.wifi.supplicant@1.0 . ממשק HIDL מעל תהליך wpa_supplicant הקיים.

HALs מעבר

אנדרואיד דורשת שמכשירי ה-HAL הבאים יהיו במצב מעבר בכל מכשירי האנדרואיד, ללא קשר אם הם מכשירי השקה או מכשירי שדרוג:

  • android.hardware.graphics.mapper@1.0 . ממפה את הזיכרון לתהליך שבו הוא חי.
  • android.hardware.renderscript@1.0 . מעביר פריטים באותו תהליך (שווה ערך ל- openGL ).

כל ה-HALs שאינם רשומים למעלה חייבים להיות משולבים עבור התקני השקה.

HALs באותו תהליך

HALs עם אותו תהליך (SP-HAL) נפתחים תמיד באותו תהליך שבו הם משמשים. הם כוללים את כל ה-HALs שלא באים לידי ביטוי ב-HIDL, כמו גם את כל ה-HALs שאינם משולבים. החברות בסט SP-HAL נשלטת רק על ידי Google, ללא חריגים.

SP-HALs כוללים את הדברים הבאים:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (מסופק על ידי מערכת אנדרואיד, תמיד עובר)
  • android.hardware.graphics.mapper@1.0
  • android.hardware.renderscript@1.0