हार्डवेयर अमूर्त परत अवलोकन

एंड्रॉइड 8.0 और उच्चतर में, निचले स्तर की परतों को एक नए, अधिक मॉड्यूलर आर्किटेक्चर को अपनाने के लिए फिर से लिखा जाता है। एंड्रॉइड 8.0 और उच्चतर पर चलने वाले उपकरणों को नीचे सूचीबद्ध कुछ अपवादों के साथ, एचआईडीएल में लिखे एचएएल का समर्थन करना चाहिए। इन एचएएल को बाइंडराइज़ किया जा सकता है या पासथ्रू किया जा सकता है। एंड्रॉइड 11 में, एआईडीएल में लिखे गए एचएएल भी समर्थित हैं। सभी एआईडीएल एचएएल बाइंडरीकृत हैं।

  • बाइंडराइज्ड एचएएल । एचएएल को एचएएल इंटरफेस डेफिनिशन लैंग्वेज (एचआईडीएल) या एंड्रॉइड इंटरफेस डेफिनिशन लैंग्वेज (एआईडीएल) में व्यक्त किया जाता है। ये एचएएल एंड्रॉइड के पुराने संस्करणों में इस्तेमाल किए गए पारंपरिक और पुराने दोनों एचएएल की जगह लेते हैं। बाइंडराइज्ड एचएएल में, एंड्रॉइड फ्रेमवर्क और एचएएल बाइंडर इंटर-प्रोसेस कम्युनिकेशन (आईपीसी) कॉल का उपयोग करके एक दूसरे के साथ संचार करते हैं। एंड्रॉइड 8.0 या उसके बाद के संस्करण के साथ लॉन्च होने वाले सभी उपकरणों को केवल बाइंडराइज्ड एचएएल का समर्थन करना चाहिए।

  • पासथ्रू एचएएल । एक एचआईडीएल-लिपटे पारंपरिक या लीगेसी एचएएल ये एचएएल मौजूदा एचएएल को लपेटते हैं और एचएएल को बाइंडराइज्ड और समान-प्रक्रिया (पासथ्रू) मोड में सेवा दे सकते हैं। एंड्रॉइड 8.0 में अपग्रेड करने वाले डिवाइस पासथ्रू एचएएल का उपयोग कर सकते हैं।

एचएएल मोड आवश्यकताएँ

उपकरण निकासी बाँध दिया गया
एंड्रॉइड 8.0 के साथ लॉन्च करें पासथ्रू एचएएल में सूचीबद्ध एचएएल को पासथ्रू होना चाहिए। अन्य सभी एचएएल बाइंडरीकृत हैं (एचएएल सहित जो विक्रेता एक्सटेंशन हैं)।
एंड्रॉइड 8.0 पर अपग्रेड करें पासथ्रू एचएएल में सूचीबद्ध एचएएल को पासथ्रू होना चाहिए। बाइंडरीकृत एचएएल में सूचीबद्ध एचएएल को बाइंडरीकृत किया जाना चाहिए।
विक्रेता छवि द्वारा प्रदान किए गए अन्य सभी एचएएल पासथ्रू या बाइंडराइज्ड मोड में हो सकते हैं। पूरी तरह से ट्रेबल-संगत डिवाइस में, इन सभी को बाइंडराइज़ किया जाना चाहिए।

बाइंडराइज्ड एचएएल

एंड्रॉइड को निम्नलिखित एचएएल को सभी एंड्रॉइड डिवाइसों पर बाइंडराइज़ करने की आवश्यकता है, भले ही वे लॉन्च डिवाइस हों या अपग्रेड डिवाइस हों:

  • android.hardware.biometrics.fingerprint@2.1fingerprintd प्रतिस्थापित करता है जो अब एंड्रॉइड 8.0 में नहीं है।
  • android.hardware.configstore@1.0 । एंड्रॉइड 8.0 में नया।
  • android.hardware.dumpstate@1.0 । इस एचएएल द्वारा प्रदान किया गया मूल इंटरफ़ेस प्रदर्शित नहीं किया जा सका और बदल दिया गया। इस वजह से, किसी दिए गए डिवाइस पर dumpstate_board फिर से लागू किया जाना चाहिए (यह एक वैकल्पिक एचएएल है)।
  • android.hardware.graphics.allocator@2.0 । एंड्रॉइड 8.0 में बाइंडराइज़ करना आवश्यक है ताकि फ़ाइल डिस्क्रिप्टर को विश्वसनीय और अविश्वसनीय प्रक्रियाओं के बीच साझा न करना पड़े।
  • android.hardware.radio@1.0rild द्वारा प्रदान किए गए इंटरफ़ेस को प्रतिस्थापित करता है जो अपनी प्रक्रिया में रहता है।
  • android.hardware.usb@1.0 . एंड्रॉइड 8.0 में नया।
  • android.hardware.wifi@1.0 . Android 8.0 में नया, पुराने वाई-फ़ाई HAL लाइब्रेरी को प्रतिस्थापित करता है जिसे system_server में लोड किया गया था
  • android.hardware.wifi.supplicant@1.0 । मौजूदा wpa_supplicant प्रक्रिया पर एक HIDL इंटरफ़ेस।

पासथ्रू एचएएल

एंड्रॉइड को सभी एंड्रॉइड डिवाइसों पर निम्नलिखित एचएएल को पासथ्रू मोड में रखने की आवश्यकता है, भले ही वे लॉन्च डिवाइस हों या अपग्रेड डिवाइस हों:

  • android.hardware.graphics.mapper@1.0 । मेमोरी को उस प्रक्रिया में मैप करता है जिसमें वह रहती है।
  • android.hardware.renderscript@1.0 . उसी प्रक्रिया में आइटम पास करता है ( openGL के बराबर)।

ऊपर सूचीबद्ध नहीं किए गए सभी एचएएल को लॉन्च उपकरणों के लिए बाइंडराइज़ किया जाना चाहिए।

समान-प्रक्रिया एचएएल

समान-प्रक्रिया एचएएल (एसपी-एचएएल) हमेशा उसी प्रक्रिया में खुलते हैं जिसमें उनका उपयोग किया जाता है। उनमें वे सभी एचएएल शामिल हैं जो एचआईडीएल में व्यक्त नहीं हैं और साथ ही कुछ ऐसे भी हैं जो बाइंडराइज्ड नहीं हैं। एसपी-एचएएल सेट में सदस्यता बिना किसी अपवाद के केवल Google द्वारा नियंत्रित की जाती है।

एसपी-एचएएल में निम्नलिखित शामिल हैं:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (एंड्रॉइड सिस्टम द्वारा प्रदान किया गया, हमेशा पासथ्रू)
  • android.hardware.graphics.mapper@1.0
  • android.hardware.renderscript@1.0