HAL পরীক্ষাযোগ্যতা পরীক্ষা

Android 9 ভেন্ডর টেস্ট স্যুট (VTS) ডিভাইসের লক্ষ্যমাত্রার জন্য কোন VTS পরীক্ষাগুলি বাদ দেওয়া উচিত তা সনাক্ত করতে ডিভাইস কনফিগারেশন ব্যবহার করার জন্য একটি রানটাইম পদ্ধতি সমর্থন করে।

VTS পরীক্ষা নমনীয়তা

Android 8.0 অনুযায়ী, Android 8.0 এবং উচ্চতর সংস্করণের সাথে লঞ্চ করা সমস্ত ডিভাইসের জন্য VTS পরীক্ষা প্রয়োজন। যাইহোক, সমস্ত VTS পরীক্ষা সমস্ত ডিভাইস লক্ষ্যে প্রযোজ্য নয়। যেমন:

  • যদি একটি নির্দিষ্ট ডিভাইস একটি টেস্টিং HAL (যেমন IR) সমর্থন না করে, VTS-কে সেই ডিভাইস লক্ষ্যের বিরুদ্ধে HAL পরীক্ষার জন্য পরীক্ষা চালানোর প্রয়োজন নেই।
  • যদি বেশ কয়েকটি ডিভাইস একই SoC এবং বিক্রেতার চিত্র ভাগ করে তবে আলাদা হার্ডওয়্যার কার্যকারিতা থাকে, VTS অবশ্যই নির্ধারণ করবে যে একটি নির্দিষ্ট ডিভাইস লক্ষ্যের জন্য একটি পরীক্ষা চালানো উচিত বা এড়িয়ে যাওয়া উচিত।

ভিটিএস পরীক্ষার ধরন

VTS নিম্নলিখিত পরীক্ষার প্রকারগুলি অন্তর্ভুক্ত করে:

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

একটি পরীক্ষা একটি সম্মতি পরীক্ষা কিনা তা নির্ভর করে এটি কোন পরিকল্পনার সাথে সম্পর্কিত। VTS প্ল্যানের সাথে চলা পরীক্ষাগুলিকে কমপ্লায়েন্স টেস্ট হিসাবে বিবেচনা করা হয়।

সমর্থিত HAL নির্ধারণ করুন

ডিভাইস লক্ষ্য একটি নির্দিষ্ট HAL সমর্থন করে কিনা তা নির্ধারণ করতে VTS নিম্নলিখিত ফাইলগুলি ব্যবহার করতে পারে:

  • /system/compatibility_matrix.xml ফ্রেমওয়ার্কের জন্য প্রয়োজনীয় HAL দৃষ্টান্ত দাবি করে। উদাহরণ:
    <hal format="hidl" optional="true">
        <name>android.hardware.vibrator</name>
        <version>1.0-1</version>
        <interface>
           <name>IVibrator</name>
           <instance>default</instance>
        </interface>
    </hal>
    • optional বৈশিষ্ট্য নির্দেশ করে যদি HAL কঠোরভাবে কাঠামোর দ্বারা প্রয়োজন হয়।
    • ফাইলটিতে একই HAL (একই নামের) জন্য একাধিক এন্ট্রি থাকতে পারে কিন্তু ভিন্ন সংস্করণ এবং ইন্টারফেস সহ।
    • ফাইলটিতে একই এন্ট্রির জন্য একাধিক version কনফিগারেশন থাকতে পারে, যা নির্দেশ করে যে ফ্রেমওয়ার্ক বিভিন্ন সংস্করণের সাথে কাজ করতে পারে।
    • version1.0-1 অর্থ হল ফ্রেমওয়ার্ক সর্বনিম্ন সংস্করণ 1.0 এর সাথে কাজ করতে পারে এবং 1.1 এর চেয়ে বেশি সংস্করণের প্রয়োজন হয় না।
  • ডিভাইস manifest.xml । বিক্রেতা দ্বারা প্রদত্ত HAL দৃষ্টান্তগুলি দাবি করে৷ উদাহরণ:
    <hal format="hidl">
        <name>android.hardware.vibrator</name>
        <transport>hwbinder</transport>
        <version>1.2</version>
        <interface>
            <name>IVibrator</name>
           <instance>default</instance>
        </interface>
    </hal>
    • ফাইলটিতে একই HAL (একই নামের) জন্য একাধিক এন্ট্রি থাকতে পারে কিন্তু ভিন্ন সংস্করণ এবং ইন্টারফেস সহ।
    • যদি ফাইলটিতে একটি এন্ট্রির জন্য শুধুমাত্র একটি একক version কনফিগারেশন থাকে, version1.2 অর্থ হল বিক্রেতা 1.0 ~ 1.2 থেকে সমস্ত সংস্করণ সমর্থন করে৷
  • lshal ডিভাইসে একটি টুল যা hwservicemanager এর সাথে নিবন্ধিত HAL পরিষেবা সম্পর্কে রানটাইম তথ্য দেখায়। উদাহরণ:
    android.hardware.vibrator@1.0::IVibrator/default

    lshal সমস্ত HAL গুলিও দেখায় যা পাসথ্রু বাস্তবায়নের সাথে (যেমন ডিভাইসে সংশ্লিষ্ট -impl.so ফাইল থাকা)। উদাহরণ:
    android.hardware.nfc@1.0::I*/* (/vendor/lib/hw/)
    android.hardware.nfc@1.0::I*/* (/vendor/lib64/hw/)

সম্মতি পরীক্ষা

সম্মতি পরীক্ষার জন্য, VTS ডিভাইস দ্বারা প্রদত্ত সমস্ত HAL দৃষ্টান্ত নির্ধারণ (এবং পরীক্ষা) করতে ভেন্ডর ম্যানিফেস্টের উপর নির্ভর করে। সিদ্ধান্ত প্রবাহ:

Testability check for compliance

চিত্র 1. ভিটিএস সম্মতি পরীক্ষার জন্য পরীক্ষাযোগ্যতা পরীক্ষা

অসম্মতি পরীক্ষা

নন-কমপ্লায়েন্স পরীক্ষার জন্য, VTS ভেন্ডর ম্যানিফেস্ট এবং lshal আউটপুটগুলির উপর নির্ভর করে পরীক্ষামূলক HALগুলি নির্ধারণ করতে (এবং পরীক্ষা করে) যা manifest.xml ফাইলে দাবি করা হয়নি। সিদ্ধান্ত প্রবাহ:

Testability check for noncompliance

চিত্র 2. ভিটিএস অ-সম্মতি পরীক্ষার জন্য পরীক্ষাযোগ্যতা পরীক্ষা

বিক্রেতা ম্যানিফেস্ট সনাক্ত করুন

VTS নিম্নলিখিত ক্রমে নিম্নলিখিত স্থানে ভেন্ডর manifest.xml ফাইলের জন্য পরীক্ষা করে:

  1. /vendor/etc/vintf/manifest.xml + ODM ম্যানিফেস্ট (যদি একই HAL উভয় জায়গায় সংজ্ঞায়িত করা হয়, ODM ম্যানিফেস্ট /vendor/etc/vintf/manifest.xml এ একটিকে ওভাররাইড করে)
  2. /vendor/etc/vintf/manifest.xml
  3. ODM manifest.xml ফাইল, নিম্নলিখিত ফাইলগুলি থেকে নিম্নলিখিত ক্রমে লোড করা হয়েছে:
    1. /odm/etc/vintf/manifest_$(ro.boot.product.hardware.sku).xml
    2. /odm/etc/vintf/manifest.xml
    3. /odm/etc/manifest_$(ro.boot.product.hardware.sku).xml
    4. /odm/etc/manifest.xml
    5. /vendor/manifest.xml

ভিটিএস পরীক্ষাযোগ্যতা পরীক্ষক

vts_testibility_checker হল VTS-এর সাথে প্যাকেজ করা একটি বাইনারি এবং রানটাইমে VTS টেস্ট ফ্রেমওয়ার্ক দ্বারা ব্যবহৃত HAL পরীক্ষা পরীক্ষাযোগ্য কিনা তা নির্ধারণ করতে। এটি বিক্রেতা ম্যানিফেস্ট ফাইল লোড এবং পার্স করার জন্য libvintf উপর ভিত্তি করে এবং পূর্ববর্তী বিভাগে বর্ণিত সিদ্ধান্ত প্রবাহ বাস্তবায়ন করে।

vts_testability_check ব্যবহার করতে:

  • একটি সম্মতি পরীক্ষার জন্য:
    vts_testability_check -c -b <bitness>  <hal@version>
  • একটি অসম্মতি পরীক্ষার জন্য:
    vts_testability_check -b <bitness>  <hal@version>

vts_testability_check এর আউটপুট নিম্নলিখিত json বিন্যাস ব্যবহার করে:

{testable: <True/False> Instances: <list of instance names of HAL service>}

অ্যাক্সেস করা HAL নির্ধারণ করুন

VTS পরীক্ষার মাধ্যমে কোন HALগুলি অ্যাক্সেস করা হয়েছে তা নির্ধারণ করতে, নিশ্চিত করুন যে প্রতিটি HAL পরীক্ষা VtsHalHidlTargetTestEnvBase টেমপ্লেট ব্যবহার করে পরীক্ষায় অ্যাক্সেস করা HAL(গুলি) নিবন্ধন করতে পারে৷ VTS টেস্টিং ফ্রেমওয়ার্ক তখন রেজিস্টার্ড এইচএএল বের করতে পারে যখন পরীক্ষাটি প্রাক-প্রক্রিয়া করার সময়।

সম্মতি পরীক্ষার জন্য, আপনি /system/etc/vintf/manifest.xml চেক করতে পারেন। যদি একটি HAL এখানে সংজ্ঞায়িত করা হয়, VTS এটি পরীক্ষা করা উচিত। (সিস্টেম দ্বারা প্রদত্ত HAL পরিষেবাগুলির জন্য (যেমন graphics.composer/vr ), HALগুলিকে /system/manifest.xml এ ঘোষণা করা হয়।)

,

Android 9 ভেন্ডর টেস্ট স্যুট (VTS) ডিভাইসের লক্ষ্যমাত্রার জন্য কোন VTS পরীক্ষাগুলি বাদ দেওয়া উচিত তা সনাক্ত করতে ডিভাইস কনফিগারেশন ব্যবহার করার জন্য একটি রানটাইম পদ্ধতি সমর্থন করে।

VTS পরীক্ষা নমনীয়তা

Android 8.0 অনুযায়ী, Android 8.0 এবং উচ্চতর সংস্করণের সাথে লঞ্চ করা সমস্ত ডিভাইসের জন্য VTS পরীক্ষা প্রয়োজন। যাইহোক, সমস্ত VTS পরীক্ষা সমস্ত ডিভাইস লক্ষ্যে প্রযোজ্য নয়। যেমন:

  • যদি একটি নির্দিষ্ট ডিভাইস একটি টেস্টিং HAL (যেমন IR) সমর্থন না করে, VTS-কে সেই ডিভাইস লক্ষ্যের বিরুদ্ধে HAL পরীক্ষার জন্য পরীক্ষা চালানোর প্রয়োজন নেই।
  • যদি বেশ কয়েকটি ডিভাইস একই SoC এবং বিক্রেতার চিত্র ভাগ করে তবে আলাদা হার্ডওয়্যার কার্যকারিতা থাকে, VTS অবশ্যই নির্ধারণ করবে যে একটি নির্দিষ্ট ডিভাইস লক্ষ্যের জন্য একটি পরীক্ষা চালানো উচিত বা এড়িয়ে যাওয়া উচিত।

ভিটিএস পরীক্ষার ধরন

VTS নিম্নলিখিত পরীক্ষার প্রকারগুলি অন্তর্ভুক্ত করে:

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

একটি পরীক্ষা একটি সম্মতি পরীক্ষা কিনা তা নির্ভর করে এটি কোন পরিকল্পনার সাথে সম্পর্কিত। VTS প্ল্যানের সাথে চলা পরীক্ষাগুলিকে কমপ্লায়েন্স টেস্ট হিসাবে বিবেচনা করা হয়।

সমর্থিত HAL নির্ধারণ করুন

ডিভাইস লক্ষ্য একটি নির্দিষ্ট HAL সমর্থন করে কিনা তা নির্ধারণ করতে VTS নিম্নলিখিত ফাইলগুলি ব্যবহার করতে পারে:

  • /system/compatibility_matrix.xml ফ্রেমওয়ার্কের জন্য প্রয়োজনীয় HAL দৃষ্টান্ত দাবি করে। উদাহরণ:
    <hal format="hidl" optional="true">
        <name>android.hardware.vibrator</name>
        <version>1.0-1</version>
        <interface>
           <name>IVibrator</name>
           <instance>default</instance>
        </interface>
    </hal>
    • optional বৈশিষ্ট্য নির্দেশ করে যদি HAL কঠোরভাবে কাঠামোর দ্বারা প্রয়োজন হয়।
    • ফাইলটিতে একই HAL (একই নামের) জন্য একাধিক এন্ট্রি থাকতে পারে কিন্তু ভিন্ন সংস্করণ এবং ইন্টারফেস সহ।
    • ফাইলটিতে একই এন্ট্রির জন্য একাধিক version কনফিগারেশন থাকতে পারে, যা নির্দেশ করে যে ফ্রেমওয়ার্ক বিভিন্ন সংস্করণের সাথে কাজ করতে পারে।
    • version1.0-1 অর্থ হল ফ্রেমওয়ার্ক সর্বনিম্ন সংস্করণ 1.0 এর সাথে কাজ করতে পারে এবং 1.1 এর চেয়ে বেশি সংস্করণের প্রয়োজন হয় না।
  • ডিভাইস manifest.xml । বিক্রেতা দ্বারা প্রদত্ত HAL দৃষ্টান্তগুলি দাবি করে৷ উদাহরণ:
    <hal format="hidl">
        <name>android.hardware.vibrator</name>
        <transport>hwbinder</transport>
        <version>1.2</version>
        <interface>
            <name>IVibrator</name>
           <instance>default</instance>
        </interface>
    </hal>
    • ফাইলটিতে একই HAL (একই নামের) জন্য একাধিক এন্ট্রি থাকতে পারে কিন্তু ভিন্ন সংস্করণ এবং ইন্টারফেস সহ।
    • যদি ফাইলটিতে একটি এন্ট্রির জন্য শুধুমাত্র একটি একক version কনফিগারেশন থাকে, version1.2 অর্থ হল বিক্রেতা 1.0 ~ 1.2 থেকে সমস্ত সংস্করণ সমর্থন করে৷
  • lshal ডিভাইসে একটি টুল যা hwservicemanager এর সাথে নিবন্ধিত HAL পরিষেবা সম্পর্কে রানটাইম তথ্য দেখায়। উদাহরণ:
    android.hardware.vibrator@1.0::IVibrator/default

    lshal সমস্ত HAL গুলিও দেখায় যা পাসথ্রু বাস্তবায়নের সাথে (যেমন ডিভাইসে সংশ্লিষ্ট -impl.so ফাইল থাকা)। উদাহরণ:
    android.hardware.nfc@1.0::I*/* (/vendor/lib/hw/)
    android.hardware.nfc@1.0::I*/* (/vendor/lib64/hw/)

সম্মতি পরীক্ষা

সম্মতি পরীক্ষার জন্য, VTS ডিভাইস দ্বারা প্রদত্ত সমস্ত HAL দৃষ্টান্ত নির্ধারণ (এবং পরীক্ষা) করতে ভেন্ডর ম্যানিফেস্টের উপর নির্ভর করে। সিদ্ধান্ত প্রবাহ:

Testability check for compliance

চিত্র 1. ভিটিএস সম্মতি পরীক্ষার জন্য পরীক্ষাযোগ্যতা পরীক্ষা

অসম্মতি পরীক্ষা

নন-কমপ্লায়েন্স পরীক্ষার জন্য, VTS ভেন্ডর ম্যানিফেস্ট এবং lshal আউটপুটগুলির উপর নির্ভর করে পরীক্ষামূলক HALগুলি নির্ধারণ করতে (এবং পরীক্ষা করে) যা manifest.xml ফাইলে দাবি করা হয়নি। সিদ্ধান্ত প্রবাহ:

Testability check for noncompliance

চিত্র 2. ভিটিএস অ-সম্মতি পরীক্ষার জন্য পরীক্ষাযোগ্যতা পরীক্ষা

বিক্রেতা ম্যানিফেস্ট সনাক্ত করুন

VTS নিম্নলিখিত ক্রমে নিম্নলিখিত স্থানে ভেন্ডর manifest.xml ফাইলের জন্য পরীক্ষা করে:

  1. /vendor/etc/vintf/manifest.xml + ODM ম্যানিফেস্ট (যদি একই HAL উভয় জায়গায় সংজ্ঞায়িত করা হয়, ODM ম্যানিফেস্ট /vendor/etc/vintf/manifest.xml এ একটিকে ওভাররাইড করে)
  2. /vendor/etc/vintf/manifest.xml
  3. ODM manifest.xml ফাইল, নিম্নলিখিত ফাইলগুলি থেকে নিম্নলিখিত ক্রমে লোড করা হয়েছে:
    1. /odm/etc/vintf/manifest_$(ro.boot.product.hardware.sku).xml
    2. /odm/etc/vintf/manifest.xml
    3. /odm/etc/manifest_$(ro.boot.product.hardware.sku).xml
    4. /odm/etc/manifest.xml
    5. /vendor/manifest.xml

ভিটিএস পরীক্ষাযোগ্যতা পরীক্ষক

vts_testibility_checker হল VTS-এর সাথে প্যাকেজ করা একটি বাইনারি এবং রানটাইমে VTS টেস্ট ফ্রেমওয়ার্ক দ্বারা ব্যবহৃত HAL পরীক্ষা পরীক্ষাযোগ্য কিনা তা নির্ধারণ করতে। এটি বিক্রেতা ম্যানিফেস্ট ফাইল লোড এবং পার্স করার জন্য libvintf উপর ভিত্তি করে এবং পূর্ববর্তী বিভাগে বর্ণিত সিদ্ধান্ত প্রবাহ বাস্তবায়ন করে।

vts_testability_check ব্যবহার করতে:

  • একটি সম্মতি পরীক্ষার জন্য:
    vts_testability_check -c -b <bitness>  <hal@version>
  • একটি অসম্মতি পরীক্ষার জন্য:
    vts_testability_check -b <bitness>  <hal@version>

vts_testability_check এর আউটপুট নিম্নলিখিত json বিন্যাস ব্যবহার করে:

{testable: <True/False> Instances: <list of instance names of HAL service>}

অ্যাক্সেস করা HAL নির্ধারণ করুন

VTS পরীক্ষার মাধ্যমে কোন HALগুলি অ্যাক্সেস করা হয়েছে তা নির্ধারণ করতে, নিশ্চিত করুন যে প্রতিটি HAL পরীক্ষা VtsHalHidlTargetTestEnvBase টেমপ্লেট ব্যবহার করে পরীক্ষায় অ্যাক্সেস করা HAL(গুলি) নিবন্ধন করতে পারে৷ VTS টেস্টিং ফ্রেমওয়ার্ক তখন রেজিস্টার্ড এইচএএল বের করতে পারে যখন পরীক্ষাটি প্রাক-প্রক্রিয়া করার সময়।

সম্মতি পরীক্ষার জন্য, আপনি /system/etc/vintf/manifest.xml চেক করতে পারেন। যদি একটি HAL এখানে সংজ্ঞায়িত করা হয়, VTS এটি পরীক্ষা করা উচিত। (সিস্টেম দ্বারা প্রদত্ত HAL পরিষেবাগুলির জন্য (যেমন graphics.composer/vr ), HALগুলিকে /system/manifest.xml এ ঘোষণা করা হয়।)