ภาพรวมเลเยอร์นามธรรมของฮาร์ดแวร์

ใน Android 8.0 และสูงกว่า เลเยอร์ระดับล่างจะถูกเขียนใหม่เพื่อใช้สถาปัตยกรรมใหม่ที่เป็นแบบโมดูลาร์มากขึ้น อุปกรณ์ที่ใช้ Android 8.0 ขึ้นไปจะต้องรองรับ HAL ที่เขียนด้วย HIDL โดยมีข้อยกเว้นบางประการตามรายการด้านล่าง HAL เหล่านี้สามารถถูกผูกมัดหรือส่งผ่านได้ ใน Android 11 ยังรองรับ HAL ที่เขียนด้วย AIDL อีกด้วย AIDL HAL ทั้งหมดถูกผูกมัด

  • HAL ที่ถูกยึดประสาน HAL ที่แสดงเป็นภาษาคำจำกัดความอินเทอร์เฟซ HAL (HIDL) หรือภาษาคำจำกัดความอินเทอร์เฟซ Android (AIDL) HAL เหล่านี้จะมาแทนที่ HAL ทั้งแบบธรรมดาและแบบเดิมที่ใช้ใน Android เวอร์ชันก่อนหน้า ใน Binderized HAL เฟรมเวิร์ก Android และ HAL จะสื่อสารกันโดยใช้การเรียก Binder Inter-Process Communication (IPC) อุปกรณ์ทั้งหมดที่เปิดตัวด้วย Android 8.0 หรือใหม่กว่าจะต้องรองรับ HAL ที่ถูกผูกไว้เท่านั้น

  • HAL ทะลุผ่าน HAL แบบธรรมดาหรือแบบเดิม ที่ห่อด้วย HIDL HAL เหล่านี้จะห่อ HAL ที่มีอยู่และสามารถให้บริการ HAL ในโหมดการยึดประสานและกระบวนการเดียวกัน (ส่งผ่าน) อุปกรณ์ที่อัปเกรดเป็น Android 8.0 สามารถใช้ Passthrough HAL ได้

ข้อกำหนดโหมด HAL

อุปกรณ์ ทะลุผ่าน ผูกมัด
เปิดตัวด้วยระบบปฏิบัติการ Android 8.0 HAL ที่อยู่ในรายการ Passthrough HAL จะต้องเป็น passthrough HAL อื่นๆ ทั้งหมดถูกผูกไว้ (รวมถึง HAL ที่เป็นส่วนขยายของผู้ขาย)
อัปเกรดเป็น Android 8.0 HAL ที่อยู่ในรายการ Passthrough HAL จะต้องเป็น passthrough HAL ที่อยู่ใน Binderized HAL จะต้องถูกผูกมัด
HAL อื่นๆ ทั้งหมดที่ได้รับจากอิมเมจของผู้ขายสามารถอยู่ในโหมดส่งผ่านหรือโหมดผูกมัดได้ ในอุปกรณ์ที่รองรับ Treble อย่างสมบูรณ์ ทั้งหมดนี้จะต้องถูกผูกไว้

HAL ที่ถูกผูกมัด

Android กำหนดให้ HAL ต่อไปนี้ถูกผูกไว้บนอุปกรณ์ 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 ที่มีอยู่

HAL ทะลุผ่าน

Android กำหนดให้ HAL ต่อไปนี้อยู่ในโหมดส่งผ่านบนอุปกรณ์ Android ทั้งหมด ไม่ว่าจะเป็นอุปกรณ์เปิดหรืออัปเกรดอุปกรณ์:

  • android.hardware.graphics.mapper@1.0 จับคู่หน่วยความจำเข้ากับกระบวนการที่มีอยู่
  • android.hardware.renderscript@1.0 ส่งผ่านรายการในกระบวนการเดียวกัน (เทียบเท่ากับ openGL )

HAL ทั้งหมดที่ไม่อยู่ในรายการข้างต้นจะต้องถูกผูกไว้สำหรับอุปกรณ์เรียกใช้งาน

HAL กระบวนการเดียวกัน

Same-Process HAL (SP-HAL) จะเปิดในกระบวนการเดียวกับที่ใช้เสมอ รวมถึง HAL ทั้งหมดที่ไม่ได้แสดงใน HIDL รวมถึงบางส่วนที่ไม่ถูกผูกมัด การเป็นสมาชิกในชุด SP-HAL จะถูกควบคุมโดย Google เท่านั้น โดยไม่มีข้อยกเว้น

SP-HAL มีดังต่อไปนี้:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (จัดทำโดยระบบ Android ส่งผ่านตลอด)
  • android.hardware.graphics.mapper@1.0
  • android.hardware.renderscript@1.0