HAL প্রকার

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

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

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

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

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 বর্ণনা করার কোনো অভিন্ন বা প্রমিত উপায় নেই, তবে Android 8.0-এর পূর্ববর্তী যেকোনো কিছু যা প্রচলিত HAL নয় একটি উত্তরাধিকার HAL। কিছু লিগ্যাসি HAL-এর কিছু অংশ libhadware_legacy-তে রয়েছে, অন্য অংশগুলি কোডবেস জুড়ে বিভক্ত।