হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) ওভারভিউ

সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।

অ্যান্ড্রয়েড 8.0 এবং উচ্চতর, একটি নতুন, আরও মডুলার আর্কিটেকচার গ্রহণ করার জন্য নিম্ন-স্তরের স্তরগুলি পুনরায় লেখা হয়৷ অ্যান্ড্রয়েড 8.0 এবং উচ্চতর ডিভাইসগুলিকে অবশ্যই HIDL-এ লেখা HAL সমর্থন করতে হবে, নীচে তালিকাভুক্ত কয়েকটি ব্যতিক্রম সহ। এই HALগুলি বাইন্ডারাইজড বা পাসথ্রু হতে পারে। Android 11-এ, AIDL-এ লেখা HALগুলিও সমর্থিত। সমস্ত AIDL HAL বাইন্ডারাইজড।

  • Binderized HALs. HALগুলি HAL ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (HIDL) বা Android ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (AIDL) তে প্রকাশ করা হয়েছে। এই HALগুলি Android-এর পূর্ববর্তী সংস্করণগুলিতে ব্যবহৃত প্রচলিত এবং উত্তরাধিকারী উভয় HALগুলিকে প্রতিস্থাপন করে৷ বাইন্ডারাইজড এইচএএল-এ, অ্যান্ড্রয়েড ফ্রেমওয়ার্ক এবং এইচএএল বাইন্ডার ইন্টার-প্রসেস কমিউনিকেশন (আইপিসি) কল ব্যবহার করে একে অপরের সাথে যোগাযোগ করে। অ্যান্ড্রয়েড 8.0 বা তার পরবর্তী সংস্করণের সাথে লঞ্চ হওয়া সমস্ত ডিভাইসকে শুধুমাত্র বাইন্ডারাইজড HAL সমর্থন করতে হবে।
  • পাসথ্রু HALs। একটি HIDL- মোড়ানো প্রচলিত বা লিগ্যাসি HAL । এই HALগুলি বিদ্যমান HALগুলিকে মোড়ানো এবং বাইন্ডারাইজড এবং একই-প্রক্রিয়া (পাসথ্রু) মোডে HAL-কে পরিবেশন করতে পারে। Android 8.0 তে আপগ্রেড করা ডিভাইসগুলি পাসথ্রু HAL ব্যবহার করতে পারে৷

HAL মোড প্রয়োজনীয়তা

যন্ত্র পাসথ্রু বাইন্ডারাইজড
Android 8.0 এর সাথে লঞ্চ করুন পাসথ্রুতে তালিকাভুক্ত এইচএএলগুলি অবশ্যই পাসথ্রু হতে হবে। অন্যান্য সমস্ত HALগুলি বাইন্ডারাইজড (HAL সহ যেগুলি বিক্রেতা এক্সটেনশন)।
Android 8.0 এ আপগ্রেড করুন পাসথ্রুতে তালিকাভুক্ত এইচএএলগুলি অবশ্যই পাসথ্রু হতে হবে। বাইন্ডারাইজড HAL-এ তালিকাভুক্ত HALগুলি অবশ্যই বাইন্ডারাইজড হতে হবে৷
বিক্রেতা ইমেজ দ্বারা প্রদত্ত অন্যান্য সমস্ত HALs পাসথ্রু বা বাইন্ডারাইজড মোডে হতে পারে। একটি সম্পূর্ণরূপে Treble-সঙ্গতিপূর্ণ ডিভাইসে, এই সব অবশ্যই binderized করা আবশ্যক.

Binderized HALs

অ্যান্ড্রয়েড লঞ্চ ডিভাইস বা আপগ্রেড ডিভাইস নির্বিশেষে সমস্ত অ্যান্ড্রয়েড ডিভাইসে বাইন্ডারাইজ করার জন্য নিম্নলিখিত HALS-এর প্রয়োজন:

  • android.hardware.biometrics.fingerprint@2.1fingerprintd প্রতিস্থাপন করে যা 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 । অ্যান্ড্রয়েড 8.0 এ বাইন্ডারাইজ করা প্রয়োজন তাই ফাইল বর্ণনাকারীকে বিশ্বস্ত এবং অবিশ্বস্ত প্রক্রিয়াগুলির মধ্যে ভাগ করতে হবে না৷
  • android.hardware.radio@1.0rild দ্বারা প্রদত্ত ইন্টারফেস প্রতিস্থাপন করে যা তার নিজস্ব প্রক্রিয়ায় থাকে।
  • 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 বিদ্যমান wpa_supplicant প্রক্রিয়ার উপর একটি HIDL ইন্টারফেস।

দ্রষ্টব্য : Android নিম্নলিখিত HIDL ইন্টারফেসগুলি সরবরাহ করে যা সর্বদা বাইন্ডারাইজড মোডে থাকবে: android.frameworks.* , android.system.* , এবং android.hidl.* (নিচে বর্ণিত android.hidl.memory@1.0 ব্যতীত)।

পাসথ্রু HALs

অ্যান্ড্রয়েডের জন্য সমস্ত অ্যান্ড্রয়েড ডিভাইসে পাসথ্রু মোডে থাকা নিম্নলিখিত HALগুলি প্রয়োজন, সেগুলি লঞ্চ ডিভাইস বা আপগ্রেড ডিভাইস যাই হোক না কেন:

  • android.hardware.graphics.mapper@1.0 । এটি যে প্রক্রিয়ায় থাকে তার মেমরি ম্যাপ করে।
  • android.hardware.renderscript@1.0 । একই প্রক্রিয়ায় আইটেম পাস করে ( openGL এর সমতুল্য)।

উপরে তালিকাভুক্ত নয় এমন সমস্ত HALগুলিকে লঞ্চ ডিভাইসের জন্য বাইন্ডারাইজ করা আবশ্যক৷

একই-প্রক্রিয়া HALs

সেম-প্রসেস HALs (SP-HALs) সবসময় একই প্রক্রিয়ায় খোলা থাকে যেখানে তারা ব্যবহার করা হয়। এর মধ্যে HIDL-এ প্রকাশ করা হয়নি এমন সমস্ত HAL এবং সেইসাথে কিছু যেগুলি বাইন্ডারাইজড নয় । SP-HAL সেটের সদস্যতা শুধুমাত্র Google দ্বারা নিয়ন্ত্রিত হয়, কোন ব্যতিক্রম ছাড়াই।

এসপি-এইচএএল-এর মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (অ্যান্ড্রয়েড সিস্টেম দ্বারা সরবরাহ করা, সর্বদা পাসথ্রু)
  • android.hardware.graphics.mapper@1.0
  • android.hardware.renderscript@1.0

প্রচলিত এবং উত্তরাধিকার HALs

প্রচলিত HALs (Android 8.0-এ অবনমিত) এমন ইন্টারফেস যা একটি নির্দিষ্ট নামযুক্ত এবং সংস্করণযুক্ত অ্যাপ্লিকেশন বাইনারি ইন্টারফেসের (ABI) সাথে সামঞ্জস্যপূর্ণ। বেশিরভাগ অ্যান্ড্রয়েড সিস্টেম ইন্টারফেস ( ক্যামেরা , অডিও , সেন্সর , ইত্যাদি) প্রচলিত HAL-এর আকারে, যা হার্ডওয়্যার/লিবার্ডওয়্যার/ইনক্লুড/হার্ডওয়্যারের অধীনে সংজ্ঞায়িত করা হয়েছে।

লিগ্যাসি এইচএএল (এছাড়াও অ্যান্ড্রয়েড 8.0-এ অবচয়) হল এমন ইন্টারফেস যা প্রচলিত HAL-এর পূর্ববর্তী। কয়েকটি গুরুত্বপূর্ণ সাবসিস্টেম (ওয়াই-ফাই, রেডিও ইন্টারফেস লেয়ার, এবং ব্লুটুথ) হল লিগ্যাসি এইচএএল। যদিও একটি লিগ্যাসি HAL বর্ণনা করার জন্য কোনো অভিন্ন বা প্রমিত উপায় নেই, তবে Android 8.0-এর পূর্ববর্তী যেকোনো কিছু যা প্রচলিত HAL নয় একটি উত্তরাধিকার HAL। কিছু লিগ্যাসি HAL-এর কিছু অংশ libhadware_legacy-তে রয়েছে, অন্য অংশগুলি কোডবেস জুড়ে বিভক্ত।