एंड्रॉइड 8.0 और उच्चतर में, नए, अधिक मॉड्यूलर आर्किटेक्चर को अपनाने के लिए निचले स्तर की परतों को फिर से लिखा गया है। नीचे सूचीबद्ध कुछ अपवादों के साथ, Android 8.0 और उच्चतर चल रहे उपकरणों को HIDL में लिखे गए HALs का समर्थन करना चाहिए। इन एचएएल को बाइंडराइज़ किया जा सकता है या पासथ्रू किया जा सकता है। Android 11 में AIDL में लिखे HALs का भी सपोर्ट मिलता है। सभी एआईडीएल एचएएल बाइंडरीकृत हैं।
बाइंडराइज़्ड एचएएल . एचएएल को एचएएल इंटरफेस डेफिनिशन लैंग्वेज (एचआईडीएल) या एंड्रॉइड इंटरफेस डेफिनिशन लैंग्वेज (एआईडीएल) में व्यक्त किया गया है। ये एचएएल एंड्रॉइड के पुराने संस्करणों में उपयोग किए जाने वाले पारंपरिक और विरासत एचएएल दोनों को प्रतिस्थापित करते हैं। बाइंडराइज्ड एचएएल में, एंड्रॉइड फ्रेमवर्क और एचएएल बाइंडर इंटर-प्रोसेस कम्युनिकेशन (आईपीसी) कॉल का उपयोग करके एक दूसरे के साथ संवाद करते हैं। Android 8.0 या इसके बाद के संस्करण के साथ लॉन्च होने वाले सभी उपकरणों को केवल Binderized HALs का समर्थन करना चाहिए।
पासथ्रू एचएएल । एक एचआईडीएल-लिपटे पारंपरिक या लीगेसी एचएएल ये एचएएल मौजूदा एचएएल को लपेटते हैं और बाइंडरीकृत और समान-प्रक्रिया (पासथ्रू) मोड में एचएएल की सेवा कर सकते हैं। Android 8.0 में अपग्रेड करने वाले उपकरण पासथ्रू HALs का उपयोग कर सकते हैं।
एचएएल मोड आवश्यकताएँ
उपकरण | निकासी | जिल्दसाज़ |
---|---|---|
Android 8.0 के साथ लॉन्च करें | पासथ्रू एचएएल में सूचीबद्ध एचएएल को पासथ्रू होना चाहिए। | अन्य सभी एचएएल बाइंडरीकृत हैं (एचएएल सहित जो वेंडर एक्सटेंशन हैं)। |
Android 8.0 में अपग्रेड करें | पासथ्रू एचएएल में सूचीबद्ध एचएएल को पासथ्रू होना चाहिए। | बाइंडराइज़्ड एचएएल में सूचीबद्ध एचएएल को बाइंडराइज़ किया जाना चाहिए। |
वेंडर इमेज द्वारा प्रदान किए गए अन्य सभी एचएएल पासथ्रू या बाइंडराइज़्ड मोड में हो सकते हैं। पूरी तरह से ट्रेबल-संगत डिवाइस में, इन सभी को बाइंडराइज़ किया जाना चाहिए। |
बाइंडराइज्ड एचएएल
एंड्रॉइड को निम्नलिखित HALS को सभी एंड्रॉइड डिवाइसों पर बांधने की आवश्यकता है, भले ही वे लॉन्च डिवाइस हों या अपग्रेड डिवाइस हों:
-
android.hardware.biometrics.fingerprint@2.1
।fingerprintd
प्रतिस्थापित करता है जो अब Android 8.0 में नहीं है। -
android.hardware.configstore@1.0
। Android 8.0 में नया। -
android.hardware.dumpstate@1.0
। इस एचएएल द्वारा प्रदान किए गए मूल इंटरफ़ेस को शिम नहीं किया जा सका और इसे बदल दिया गया। इस वजह से, किसी दिए गए डिवाइस परdumpstate_board
फिर से लागू किया जाना चाहिए (यह एक वैकल्पिक एचएएल है)। -
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 में नया, पुरानी वाई-फाई HAL लाइब्रेरी को प्रतिस्थापित करता है जिसेsystem_server
में लोड किया गया था -
android.hardware.wifi.supplicant@1.0
। मौजूदाwpa_supplicant
प्रक्रिया पर एक HIDL इंटरफ़ेस।
पासथ्रू एचएएल
एंड्रॉइड को निम्नलिखित एचएएल को सभी एंड्रॉइड डिवाइसों पर पासथ्रू मोड में होना चाहिए, भले ही वे लॉन्च डिवाइस हों या अपग्रेड डिवाइस हों:
-
android.hardware.graphics.mapper@1.0
। मेमोरी को उस प्रक्रिया में मैप करता है जिसमें वह रहता है। -
android.hardware.renderscript@1.0
। एक ही प्रक्रिया में आइटम पास करता है (openGL
के बराबर)।
ऊपर सूचीबद्ध नहीं किए गए सभी एचएएल को लॉन्च उपकरणों के लिए बाइंडराइज़ किया जाना चाहिए।
समान-प्रक्रिया एचएएल
समान-प्रक्रिया HALs (SP-HALs) हमेशा उसी प्रक्रिया में खुलते हैं जिसमें उनका उपयोग किया जाता है। इनमें वे सभी एचएएल शामिल हैं जिन्हें एचआईडीएल में व्यक्त नहीं किया गया है और कुछ ऐसे भी हैं जो बाइंडराइज़्ड नहीं हैं। SP-HAL सेट में सदस्यता बिना किसी अपवाद के केवल Google द्वारा नियंत्रित की जाती है।
एसपी-एचएएल में निम्नलिखित शामिल हैं:
-
openGL
-
Vulkan
-
android.hidl.memory@1.0
(एंड्रॉइड सिस्टम द्वारा प्रदान किया गया, हमेशा पासथ्रू) -
android.hardware.graphics.mapper@1.0
android.hardware.renderscript@1.0