संगतता मैट्रिक्स

यह खंड ढांचे और डिवाइस संगतता मैट्रिक्स और संगतता मैट्रिक्स स्कीमा का वर्णन करता है। मिलान नियमों के लिए, मिलान नियम देखें।

फ्रेमवर्क कम्पैटिबिलिटी मैट्रिक्स (FCM)

फ्रेमवर्क कम्पेटिबिलिटी मैट्रिक्स (FCM) उस डिवाइस पर फ्रेमवर्क की आवश्यकताओं का वर्णन करता है जिस पर वह चलता है। फ्रेमवर्क संगतता मैट्रिक्स में सिस्टम संगतता मैट्रिक्स, उत्पाद संगतता मैट्रिक्स और system_ext संगतता मैट्रिक्स शामिल हैं। FCM की आवश्यकताओं को डिवाइस मेनिफ़ेस्ट (बिल्ड समय, रनटाइम और VTS में लागू की गई आवश्यकताएँ) से संतुष्ट होना चाहिए।

system_ext FCM और उत्पाद FCM डिवाइस-विशिष्ट FCM (सिस्टम विभाजन में स्थापित) के पूरक हैं।

  • डिवाइस FCM को सिस्टम विभाजन में मॉड्यूल की आवश्यकताओं को प्रतिबिंबित करना चाहिए।
  • System_ext FCM को system_ext विभाजन में मॉड्यूल द्वारा आवश्यकताओं को प्रतिबिंबित करना चाहिए।
  • उत्पाद FCM को उत्पाद विभाजन में मॉड्यूल द्वारा आवश्यकताओं को प्रतिबिंबित करना चाहिए।

सभी FCM को सिस्टम, उत्पाद, और system_ext विभाजन में फ्रेमवर्क में OEM के संशोधनों के साथ संरेखित करना चाहिए। उदाहरण के लिए, यदि उत्पाद विभाजन में स्थापित कोई ऐप HAL इंटरफ़ेस के वेंडर एक्सटेंशन का उपयोग करता है, तो उत्पाद FCM में HAL इंटरफ़ेस आवश्यकता घोषित की जानी चाहिए।

उदाहरण प्रणाली संगतता मैट्रिक्स फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments, Legal notices, etc. here -->
<compatibility-matrix version="1.0" type="framework" level="3">
    <hal>
        <name>android.hardware.camera</name>
        <version>1.0</version>
        <version>3.1-4</version>
        <interface>
            <name>ICameraProvider</name>
            <instance>default</instance>
            <regex-instance>[a-z_]+/[0-9]+</regex-instance>
        </interface>
    </hal>
    <hal>
        <name>android.hardware.nfc</name>
        <version>1.0</version>
        <interface>
            <name>INfc</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal optional="true">
        <name>android.hardware.graphics.composer</name>
        <version>2.1</version>
        <interface>
            <name>IComposer</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.light</name>
        <version>1-2</version>
        <interface>
            <name>ILights</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="native">
        <name>GL</name>
        <version>1.1</version>
        <version>3.0</version>
    </hal>
    <hal format="native">
        <name>EGL</name>
        <version>1.1</version>
    </hal>
    <kernel version="3.18.51">
        <!-- common configs -->
    </kernel>
    <kernel version="3.18.51">
        <!-- arm specific configs -->
        <condition>
            <config>
                <key>CONFIG_ARM</key>
                <value type="tristate">y</value>
            </config>
        <condition>
        <config>
            <key>CONFIG_A</key>
            <value type="string"></value>
        </config>
        <config>
            <key>CONFIG_B</key>
            <value type="tristate">y</value>
        </config>
    </kernel>
    <kernel version="4.1.22">
        <!-- common configs -->
        <config>
            <key>CONFIG_A</key>
            <value type="string">foo</value>
        </config>
        <config>
            <key>CONFIG_B2</key>
            <value type="int">1024</value>
        </config>
    </kernel>
    <sepolicy>
        <kernel-sepolicy-version>30</kernel-sepolicy-version>
        <sepolicy-version>25.0</sepolicy-version>
        <sepolicy-version>26.0-3</sepolicy-version>
    </sepolicy>
    <avb>
        <vbmeta-version>2.1</vbmeta-version>
    </avb>
    <xmlfile format="dtd">
        <name>media_profile</name>
        <version>1.0</version>
        <path>/system/etc/media_profile_V1_0.dtd</path>
    </xmlfile>
</compatibility-matrix>

अधिक विवरण के लिए, FCM जीवनचक्र देखें।

उत्पाद संगतता मैट्रिक्स

उत्पाद FCM उत्पाद विभाजन में एक रूपरेखा संगतता मैट्रिक्स फ़ाइल है। VINTF वस्तु उत्पाद FCM को सिस्टम में FCM और रनटाइम पर system_ext विभाजन के साथ जोड़ती है।

उदाहरण उत्पाद FCM फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments, Legal notices, etc. here -->
<compatibility-matrix version="1.0" type="framework">
    <hal>
        <name>vendor.foo.camera</name>
        <version>1.0</version>
        <interface>
            <name>IBetterCamera</name>
            <instance>default</instance>
        </interface>
    </hal>
</compatibility-matrix>

System_ext संगतता मैट्रिक्स

System_ext FCM system_ext पार्टीशन में एक फ्रेमवर्क संगतता मैट्रिक्स फ़ाइल है। VINTF ऑब्जेक्ट रनटाइम पर सिस्टम और उत्पाद विभाजन में FCMs के साथ system_ext FCM से जुड़ता है। System_ext FCM फ़ाइल के उदाहरण के लिए उत्पाद अनुकूलता मैट्रिक्स देखें।

डिवाइस संगतता मैट्रिक्स (डीसीएम)

डिवाइस कम्पैटिबिलिटी मैट्रिक्स उन आवश्यकताओं के एक सेट का वर्णन करता है जो डिवाइस फ्रेमवर्क से अपेक्षा करता है (लॉन्च और ओटीए समय पर लागू की गई आवश्यकताएं)।

उदाहरण डीसीएम फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments, Legal notices, etc. here -->
<compatibility-matrix version="1.0" type="device">
    <hal>
        <name>android.hidl.manager</name>
        <version>1.0</version>
        <interface>
            <name>IServiceManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal>
        <name>android.hidl.memory</name>
        <version>1.0</version>
        <interface>
            <name>IMemory</name>
            <instance>ashmem</instance>
        </interface>
    </hal>
    <hal>
        <name>android.hidl.allocator</name>
        <version>1.0</version>
        <interface>
            <name>IAllocator</name>
            <instance>ashmem</instance>
        </interface>
    </hal>
    <hal>
        <name>android.framework.sensor</name>
        <version>1.0</version>
        <interface>
            <name>ISensorManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <vendor-ndk>
        <version>27</version>
    </vendor-ndk>
    <system-sdk>
        <version>27</version>
    </system-sdk>
</compatibility-matrix>

संगतता मैट्रिक्स स्कीमा

यह खंड इन XML टैग्स के अर्थ का वर्णन करता है। कुछ "आवश्यक" टैग Android स्रोत ट्री में स्रोत फ़ाइल से गायब हो सकते हैं और बिल्ड समय पर assemble_vintf द्वारा लिखे गए हैं। डिवाइस पर संबंधित फाइलों में "आवश्यक" टैग मौजूद होना चाहिए।

?xml
वैकल्पिक। यह केवल XML पार्सर को जानकारी प्रदान करता है।
compatibility-matrix.version
आवश्यक। इस संगतता मैट्रिक्स का मेटा-संस्करण। संगतता मैट्रिक्स में अपेक्षित तत्वों का वर्णन करता है। एक्सएमएल संस्करण से असंबंधित।
compatibility-matrix.type
आवश्यक। इस संगतता मैट्रिक्स का प्रकार:
  • "device" : डिवाइस संगतता मैट्रिक्स।
  • "framework" : फ्रेमवर्क संगतता मैट्रिक्स।
manifest.level
फ़्रेमवर्क संगतता मैट्रिक्स के लिए आवश्यक है। एंड्रॉइड 12 और उच्चतर में, उत्पाद और system_ext विभाजन में फ्रेमवर्क संगतता मैट्रिक्स फ़ाइलों में अनुमति दी गई है। इस फ़ाइल के फ्रेमवर्क संगतता मैट्रिक्स संस्करण (FCM संस्करण) को निर्दिष्ट करता है। डिवाइस-विशिष्ट फ़्रेमवर्क संगतता मैट्रिक्स (यानी DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE ) में इसकी घोषणा न करें।
compatibility-matrix.hal
वैकल्पिक और दोहरा सकते हैं। एक एकल एचएएल (एचआईडीएल या देशी) को सूचीबद्ध करता है जो संगतता मैट्रिक्स (फ्रेमवर्क या डिवाइस) के मालिक द्वारा उपस्थित होने के लिए आवश्यक है। एचएएल प्रविष्टियां एक <name> तत्व द्वारा प्रतिष्ठित हैं; एक ही नाम के साथ कई एचएएल प्रविष्टियां हो सकती हैं (इसका अर्थ है "और" स्थिति)।
compatibility-matrix.hal.format
वैकल्पिक। मान इनमें से एक हो सकता है:
  • "hidl" : एचआईडीएल एचएएल। यह डिफ़ॉल्ट है।
  • "aidl" : एआईडीएल एचएएल । केवल संगतता मैट्रिक्स मेटा-संस्करण 2.0 पर मान्य है।
  • "native" : देशी एचएएल।
compatibility-matrix.hal.optional
विशेषता वैकल्पिक है और डिफ़ॉल्ट गलत है। बताता है कि क्या यह एचएएल संगतता मैट्रिक्स (फ्रेमवर्क या डिवाइस) के मालिक के लिए वैकल्पिक है। यदि एक <hal> प्रविष्टि को वैकल्पिक के रूप में चिह्नित किया गया है, तो इसका मतलब है कि स्वामी इस HAL के साथ काम कर सकता है, यदि मौजूद है, लेकिन उसे उपस्थित होने की आवश्यकता नहीं है।
compatibility-matrix.hal.name
आवश्यक। इस एचएएल का पूरा पैकेज नाम। उदाहरण:
  • android.hardware.camera (एचआईडीएल या एआईडीएल एचएएल)
  • GLES (देशी एचएएल, केवल नाम की आवश्यकता है)
compatibility-matrix.hal.version
वर्जन रेंज की एक सूची ( एचएएल मैच देखें) जो यह परिभाषित करती है कि कम्पैटिबिलिटी मैट्रिक्स (फ्रेमवर्क या डिवाइस) के मालिक कौन से वर्जन की अपेक्षा करते हैं।

एचआईडीएल और देशी एचएएल के लिए, आवश्यक, डुप्लिकेट के बिना दोहरा सकते हैं। प्रारूप निम्न में से एक है:
  • MAJOR . MINOR_MIN - MINOR_MAX
  • MAJOR . MINOR ( MAJOR . MINOR - MINOR के बराबर)

एआईडीएल एचएएल के लिए, Android 11 और उससे पहले के संस्करण चलाने वाले उपकरणों पर मौजूद नहीं होना चाहिए। बाद के संस्करण चलाने वाले उपकरणों पर वैकल्पिक। यदि निर्दिष्ट किया गया है, तो प्रारूप निम्न में से एक है:
  • VERSION_MIN - VERSION_MAX
  • VERSION ( VERSION - VERSION के समतुल्य)
यदि निर्दिष्ट नहीं है, तो मान डिफ़ॉल्ट रूप से 1 हो जाता है।
compatibility-matrix.hal.interface
वैकल्पिक, दोहरा सकते हैं। इस एचएएल के आवश्यक इंटरफेस की एक सूची।
compatibility-matrix.hal.interface.name
आवश्यक। इंटरफ़ेस का नाम।
compatibility-matrix.hal.interface.instance
वैकल्पिक, दोहरा सकते हैं। इस इंटरफ़ेस के आवश्यक उदाहरणों की एक सूची।
compatibility-matrix.hal.interface.regex-instance
वैकल्पिक, दोहरा सकते हैं। इस इंटरफ़ेस पर आवश्यक इंस्टेंस नाम पैटर्न की एक सूची। विस्तारित रेगुलर एक्सप्रेशन स्वरूप का उपयोग करें।
compatibility-matrix.kernel
वैकल्पिक, दोहरा सकते हैं। कर्नेल कॉन्फ़िग की एक सूची निर्दिष्ट करें जिसकी फ्रेमवर्क को प्रत्येक कर्नेल संस्करण पर आवश्यकता होती है।
एकाधिक <kernel> एक ही <version> के साथ "और" संबंध को दर्शाने के लिए मौजूद हो सकते हैं। प्रत्येक <kernel> आवश्यकताओं का एक "टुकड़ा" है जो केवल तभी सक्षम होता है जब <conditions> पूरी होती हैं।
compatibility-matrix.kernel.version
आवश्यक। कर्नेल संस्करण। प्रारूप VERSION . MAJOR_REVISION . MINOR_REVISION . संस्करण और प्रमुख संशोधन बिल्कुल मेल खाना चाहिए। मामूली संशोधन कर्नेल के न्यूनतम एलटीएस संस्करण को परिभाषित करता है जिसकी रूपरेखा अपेक्षा करती है।
compatibility-matrix.kernel.condition
वैकल्पिक। प्रत्येक संस्करण के पहले <kernel> के लिए मौजूद नहीं होना चाहिए। शर्तों की एक सूची निर्दिष्ट करता है। जब शर्तें पूरी हो जाती हैं, तो इस <kernel> खंड में बताई गई आवश्यकताएं सक्षम हो जाती हैं।
compatibility-matrix.kernel.config
वैकल्पिक, दोहरा सकते हैं। CONFIG मदों की सूची देता है जिनका इस कर्नेल संस्करण के लिए मिलान किया जाना चाहिए। प्रत्येक CONFIG आइटम एक की-वैल्यू पेयर है; कॉन्फिग आइटम कुंजी द्वारा प्रतिष्ठित हैं।
compatibility-matrix.kernel.config.key
आवश्यक। CONFIG आइटम का मुख्य नाम। CONFIG_ से शुरू होता है।
compatibility-matrix.kernel.config.value
आवश्यक। CONFIG आइटम का मूल्य। प्रारूप प्रकार पर निर्भर करता है:
  • string । उद्धरण छोड़े गए हैं।
  • int । दशमलव और हेक्साडेसिमल ( 0x या 0X) मान स्वीकार किए जाते हैं। 64-बिट पूर्णांक के रूप में व्याख्या की गई; अतिप्रवाह के परिणामस्वरूप छंटनी होती है। (पार्सर -2 64 + 1 से 2 64 - 1 तक मान स्वीकार करता है, 65वां बिट काट दिया गया है; विवरण के लिए strtoull मैन पेज देखें।)
  • range । प्रारूप [int]-[int] है, उदाहरण के लिए 10-20 । हेक्साडेसिमल मान स्वीकार किए जाते हैं और 0x या 0X से शुरू होने चाहिए। दो सीमाएँ एक अहस्ताक्षरित 64-बिट पूर्णांक होनी चाहिए।
  • tristate । मान्य मान y , m और n हैं।
compatibility-matrix.kernel.config.value.type
आवश्यक। CONFIG आइटम के मान का प्रकार, इनमें से एक:
  • string
  • int
  • range
  • tristate
compatibility-matrix.sepolicy
आवश्यक। सेपोलिसी से संबंधित सभी प्रविष्टियां शामिल हैं। केवल फ्रेमवर्क संगतता मैट्रिक्स द्वारा उपयोग किया जाता है।
compatibility-matrix.sepolicy.sepolicy-version
आवश्यक, दोहरा सकते हैं। सेपोलिसी संस्करण पर आवश्यकता का वर्णन करता है। manifest.sepolicy.version के अनुरूप है। एक तत्व का प्रत्येक उदाहरण सेपोलिसी संस्करणों की एक श्रृंखला को परिभाषित करता है।
compatibility-matrix.sepolicy.kernel-sepolicy-version
आवश्यक। फ्रेमवर्क के साथ काम करने वाले policydb संस्करण की घोषणा करता है।
compatibility-matrix.avb.vbmeta-version
वैकल्पिक; केवल फ्रेमवर्क संगतता मैट्रिक्स द्वारा उपयोग किया जाता है। system.img पर हस्ताक्षर करने के लिए प्रयुक्त AVB संस्करण की घोषणा करता है। Android 10 में बहिष्कृत।
compatibility-matrix.vendor-ndk
वैकल्पिक; केवल डिवाइस संगतता मैट्रिक्स द्वारा उपयोग किया जाता है। VNDK वेंडर स्नैपशॉट की आवश्यकता की घोषणा करता है। यदि अनुपलब्ध है, तो सिस्टम छवि पर VNDK की कोई आवश्यकता नहीं है।
compatibility-matrix.vendor-ndk.version
आवश्यक। एक सकारात्मक पूर्णांक जो विक्रेता छवि के लिए आवश्यक VNDK संस्करण घोषित करता है।
compatibility-matrix.vendor-ndk.library
वैकल्पिक, दोहरा सकते हैं। विक्रेता छवि के लिए आवश्यक VNDK पुस्तकालयों के एक सेट की घोषणा करता है। manifest.vendor-ndk.library के समान शब्दार्थ।
compatibility-matrix.system-sdk.version
वैकल्पिक, दोहरा सकते हैं; केवल डिवाइस संगतता मैट्रिक्स द्वारा उपयोग किया जाता है। सिस्टम एसडीके संस्करणों पर विक्रेता ऐप्स द्वारा आवश्यकता की घोषणा करता है। यदि अनुपलब्ध है, तो सिस्टम छवि पर कोई सिस्टम SDK आवश्यकता नहीं है।
,

यह खंड ढांचे और डिवाइस संगतता मैट्रिक्स और संगतता मैट्रिक्स स्कीमा का वर्णन करता है। मिलान नियमों के लिए, मिलान नियम देखें।

फ्रेमवर्क कम्पैटिबिलिटी मैट्रिक्स (FCM)

फ्रेमवर्क कम्पेटिबिलिटी मैट्रिक्स (FCM) उस डिवाइस पर फ्रेमवर्क की आवश्यकताओं का वर्णन करता है जिस पर वह चलता है। फ्रेमवर्क संगतता मैट्रिक्स में सिस्टम संगतता मैट्रिक्स, उत्पाद संगतता मैट्रिक्स और system_ext संगतता मैट्रिक्स शामिल हैं। FCM की आवश्यकताओं को डिवाइस मेनिफ़ेस्ट (बिल्ड समय, रनटाइम और VTS में लागू की गई आवश्यकताएँ) से संतुष्ट होना चाहिए।

system_ext FCM और उत्पाद FCM डिवाइस-विशिष्ट FCM (सिस्टम विभाजन में स्थापित) के पूरक हैं।

  • डिवाइस FCM को सिस्टम विभाजन में मॉड्यूल की आवश्यकताओं को प्रतिबिंबित करना चाहिए।
  • System_ext FCM को system_ext विभाजन में मॉड्यूल द्वारा आवश्यकताओं को प्रतिबिंबित करना चाहिए।
  • उत्पाद FCM को उत्पाद विभाजन में मॉड्यूल द्वारा आवश्यकताओं को प्रतिबिंबित करना चाहिए।

सभी FCM को सिस्टम, उत्पाद, और system_ext विभाजन में फ्रेमवर्क में OEM के संशोधनों के साथ संरेखित करना चाहिए। उदाहरण के लिए, यदि उत्पाद विभाजन में स्थापित कोई ऐप HAL इंटरफ़ेस के वेंडर एक्सटेंशन का उपयोग करता है, तो उत्पाद FCM में HAL इंटरफ़ेस आवश्यकता घोषित की जानी चाहिए।

उदाहरण प्रणाली संगतता मैट्रिक्स फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments, Legal notices, etc. here -->
<compatibility-matrix version="1.0" type="framework" level="3">
    <hal>
        <name>android.hardware.camera</name>
        <version>1.0</version>
        <version>3.1-4</version>
        <interface>
            <name>ICameraProvider</name>
            <instance>default</instance>
            <regex-instance>[a-z_]+/[0-9]+</regex-instance>
        </interface>
    </hal>
    <hal>
        <name>android.hardware.nfc</name>
        <version>1.0</version>
        <interface>
            <name>INfc</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal optional="true">
        <name>android.hardware.graphics.composer</name>
        <version>2.1</version>
        <interface>
            <name>IComposer</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.light</name>
        <version>1-2</version>
        <interface>
            <name>ILights</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="native">
        <name>GL</name>
        <version>1.1</version>
        <version>3.0</version>
    </hal>
    <hal format="native">
        <name>EGL</name>
        <version>1.1</version>
    </hal>
    <kernel version="3.18.51">
        <!-- common configs -->
    </kernel>
    <kernel version="3.18.51">
        <!-- arm specific configs -->
        <condition>
            <config>
                <key>CONFIG_ARM</key>
                <value type="tristate">y</value>
            </config>
        <condition>
        <config>
            <key>CONFIG_A</key>
            <value type="string"></value>
        </config>
        <config>
            <key>CONFIG_B</key>
            <value type="tristate">y</value>
        </config>
    </kernel>
    <kernel version="4.1.22">
        <!-- common configs -->
        <config>
            <key>CONFIG_A</key>
            <value type="string">foo</value>
        </config>
        <config>
            <key>CONFIG_B2</key>
            <value type="int">1024</value>
        </config>
    </kernel>
    <sepolicy>
        <kernel-sepolicy-version>30</kernel-sepolicy-version>
        <sepolicy-version>25.0</sepolicy-version>
        <sepolicy-version>26.0-3</sepolicy-version>
    </sepolicy>
    <avb>
        <vbmeta-version>2.1</vbmeta-version>
    </avb>
    <xmlfile format="dtd">
        <name>media_profile</name>
        <version>1.0</version>
        <path>/system/etc/media_profile_V1_0.dtd</path>
    </xmlfile>
</compatibility-matrix>

अधिक विवरण के लिए, FCM जीवनचक्र देखें।

उत्पाद संगतता मैट्रिक्स

उत्पाद FCM उत्पाद विभाजन में एक रूपरेखा संगतता मैट्रिक्स फ़ाइल है। VINTF वस्तु उत्पाद FCM को सिस्टम में FCM और रनटाइम पर system_ext विभाजन के साथ जोड़ती है।

उदाहरण उत्पाद FCM फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments, Legal notices, etc. here -->
<compatibility-matrix version="1.0" type="framework">
    <hal>
        <name>vendor.foo.camera</name>
        <version>1.0</version>
        <interface>
            <name>IBetterCamera</name>
            <instance>default</instance>
        </interface>
    </hal>
</compatibility-matrix>

System_ext संगतता मैट्रिक्स

System_ext FCM system_ext पार्टीशन में एक फ्रेमवर्क संगतता मैट्रिक्स फ़ाइल है। VINTF ऑब्जेक्ट रनटाइम पर सिस्टम और उत्पाद विभाजन में FCMs के साथ system_ext FCM से जुड़ता है। System_ext FCM फ़ाइल के उदाहरण के लिए उत्पाद अनुकूलता मैट्रिक्स देखें।

डिवाइस संगतता मैट्रिक्स (डीसीएम)

डिवाइस कम्पैटिबिलिटी मैट्रिक्स उन आवश्यकताओं के एक सेट का वर्णन करता है जो डिवाइस फ्रेमवर्क से अपेक्षा करता है (लॉन्च और ओटीए समय पर लागू की गई आवश्यकताएं)।

उदाहरण डीसीएम फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments, Legal notices, etc. here -->
<compatibility-matrix version="1.0" type="device">
    <hal>
        <name>android.hidl.manager</name>
        <version>1.0</version>
        <interface>
            <name>IServiceManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal>
        <name>android.hidl.memory</name>
        <version>1.0</version>
        <interface>
            <name>IMemory</name>
            <instance>ashmem</instance>
        </interface>
    </hal>
    <hal>
        <name>android.hidl.allocator</name>
        <version>1.0</version>
        <interface>
            <name>IAllocator</name>
            <instance>ashmem</instance>
        </interface>
    </hal>
    <hal>
        <name>android.framework.sensor</name>
        <version>1.0</version>
        <interface>
            <name>ISensorManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <vendor-ndk>
        <version>27</version>
    </vendor-ndk>
    <system-sdk>
        <version>27</version>
    </system-sdk>
</compatibility-matrix>

संगतता मैट्रिक्स स्कीमा

यह खंड इन XML टैग्स के अर्थ का वर्णन करता है। कुछ "आवश्यक" टैग Android स्रोत ट्री में स्रोत फ़ाइल से गायब हो सकते हैं और बिल्ड समय पर assemble_vintf द्वारा लिखे गए हैं। डिवाइस पर संबंधित फाइलों में "आवश्यक" टैग मौजूद होना चाहिए।

?xml
वैकल्पिक। यह केवल XML पार्सर को जानकारी प्रदान करता है।
compatibility-matrix.version
आवश्यक। इस संगतता मैट्रिक्स का मेटा-संस्करण। संगतता मैट्रिक्स में अपेक्षित तत्वों का वर्णन करता है। एक्सएमएल संस्करण से असंबंधित।
compatibility-matrix.type
आवश्यक। इस संगतता मैट्रिक्स का प्रकार:
  • "device" : डिवाइस संगतता मैट्रिक्स।
  • "framework" : फ्रेमवर्क संगतता मैट्रिक्स।
manifest.level
फ़्रेमवर्क संगतता मैट्रिक्स के लिए आवश्यक है। एंड्रॉइड 12 और उच्चतर में, उत्पाद और system_ext विभाजन में फ्रेमवर्क संगतता मैट्रिक्स फ़ाइलों में अनुमति दी गई है। इस फ़ाइल के फ्रेमवर्क संगतता मैट्रिक्स संस्करण (FCM संस्करण) को निर्दिष्ट करता है। डिवाइस-विशिष्ट फ़्रेमवर्क संगतता मैट्रिक्स (यानी DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE ) में इसकी घोषणा न करें।
compatibility-matrix.hal
वैकल्पिक और दोहरा सकते हैं। एक एकल एचएएल (एचआईडीएल या देशी) को सूचीबद्ध करता है जो संगतता मैट्रिक्स (फ्रेमवर्क या डिवाइस) के मालिक द्वारा उपस्थित होने के लिए आवश्यक है। एचएएल प्रविष्टियां एक <name> तत्व द्वारा प्रतिष्ठित हैं; एक ही नाम के साथ कई एचएएल प्रविष्टियां हो सकती हैं (इसका अर्थ है "और" स्थिति)।
compatibility-matrix.hal.format
वैकल्पिक। मान इनमें से एक हो सकता है:
  • "hidl" : एचआईडीएल एचएएल। यह डिफ़ॉल्ट है।
  • "aidl" : एआईडीएल एचएएल । केवल संगतता मैट्रिक्स मेटा-संस्करण 2.0 पर मान्य है।
  • "native" : देशी एचएएल।
compatibility-matrix.hal.optional
विशेषता वैकल्पिक है और डिफ़ॉल्ट गलत है। बताता है कि क्या यह एचएएल संगतता मैट्रिक्स (फ्रेमवर्क या डिवाइस) के मालिक के लिए वैकल्पिक है। यदि एक <hal> प्रविष्टि को वैकल्पिक के रूप में चिह्नित किया गया है, तो इसका मतलब है कि स्वामी इस HAL के साथ काम कर सकता है, यदि मौजूद है, लेकिन उसे उपस्थित होने की आवश्यकता नहीं है।
compatibility-matrix.hal.name
आवश्यक। इस एचएएल का पूरा पैकेज नाम। उदाहरण:
  • android.hardware.camera (एचआईडीएल या एआईडीएल एचएएल)
  • GLES (देशी एचएएल, केवल नाम की आवश्यकता है)
compatibility-matrix.hal.version
वर्जन रेंज की एक सूची ( एचएएल मैच देखें) जो यह परिभाषित करती है कि कम्पैटिबिलिटी मैट्रिक्स (फ्रेमवर्क या डिवाइस) के मालिक कौन से वर्जन की अपेक्षा करते हैं।

एचआईडीएल और देशी एचएएल के लिए, आवश्यक, डुप्लिकेट के बिना दोहरा सकते हैं। प्रारूप निम्न में से एक है:
  • MAJOR . MINOR_MIN - MINOR_MAX
  • MAJOR . MINOR ( MAJOR . MINOR - MINOR के बराबर)

एआईडीएल एचएएल के लिए, Android 11 और उससे पहले के संस्करण चलाने वाले उपकरणों पर मौजूद नहीं होना चाहिए। बाद के संस्करण चलाने वाले उपकरणों पर वैकल्पिक। यदि निर्दिष्ट किया गया है, तो प्रारूप निम्न में से एक है:
  • VERSION_MIN - VERSION_MAX
  • VERSION ( VERSION - VERSION के समतुल्य)
यदि निर्दिष्ट नहीं है, तो मान डिफ़ॉल्ट रूप से 1 हो जाता है।
compatibility-matrix.hal.interface
वैकल्पिक, दोहरा सकते हैं। इस एचएएल के आवश्यक इंटरफेस की एक सूची।
compatibility-matrix.hal.interface.name
आवश्यक। इंटरफ़ेस का नाम।
compatibility-matrix.hal.interface.instance
वैकल्पिक, दोहरा सकते हैं। इस इंटरफ़ेस के आवश्यक उदाहरणों की एक सूची।
compatibility-matrix.hal.interface.regex-instance
वैकल्पिक, दोहरा सकते हैं। इस इंटरफ़ेस पर आवश्यक इंस्टेंस नाम पैटर्न की एक सूची। विस्तारित रेगुलर एक्सप्रेशन स्वरूप का उपयोग करें।
compatibility-matrix.kernel
वैकल्पिक, दोहरा सकते हैं। कर्नेल कॉन्फ़िग की एक सूची निर्दिष्ट करें जिसकी फ्रेमवर्क को प्रत्येक कर्नेल संस्करण पर आवश्यकता होती है।
एकाधिक <kernel> एक ही <version> के साथ "और" संबंध को दर्शाने के लिए मौजूद हो सकते हैं। प्रत्येक <kernel> आवश्यकताओं का एक "टुकड़ा" है जो केवल तभी सक्षम होता है जब <conditions> पूरी होती हैं।
compatibility-matrix.kernel.version
आवश्यक। कर्नेल संस्करण। प्रारूप VERSION . MAJOR_REVISION . MINOR_REVISION . संस्करण और प्रमुख संशोधन बिल्कुल मेल खाना चाहिए। मामूली संशोधन कर्नेल के न्यूनतम एलटीएस संस्करण को परिभाषित करता है जिसकी रूपरेखा अपेक्षा करती है।
compatibility-matrix.kernel.condition
वैकल्पिक। प्रत्येक संस्करण के पहले <kernel> के लिए मौजूद नहीं होना चाहिए। शर्तों की एक सूची निर्दिष्ट करता है। जब शर्तें पूरी हो जाती हैं, तो इस <kernel> खंड में बताई गई आवश्यकताएं सक्षम हो जाती हैं।
compatibility-matrix.kernel.config
वैकल्पिक, दोहरा सकते हैं। CONFIG मदों की सूची देता है जिनका इस कर्नेल संस्करण के लिए मिलान किया जाना चाहिए। प्रत्येक CONFIG आइटम एक की-वैल्यू पेयर है; कॉन्फिग आइटम कुंजी द्वारा प्रतिष्ठित हैं।
compatibility-matrix.kernel.config.key
आवश्यक। CONFIG आइटम का मुख्य नाम। CONFIG_ से शुरू होता है।
compatibility-matrix.kernel.config.value
आवश्यक। CONFIG आइटम का मूल्य। प्रारूप प्रकार पर निर्भर करता है:
  • string । उद्धरण छोड़े गए हैं।
  • int । दशमलव और हेक्साडेसिमल ( 0x या 0X) मान स्वीकार किए जाते हैं। 64-बिट पूर्णांक के रूप में व्याख्या की गई; अतिप्रवाह के परिणामस्वरूप छंटनी होती है। (पार्सर -2 64 + 1 से 2 64 - 1 तक मान स्वीकार करता है, 65वां बिट काट दिया गया है; विवरण के लिए strtoull मैन पेज देखें।)
  • range । प्रारूप [int]-[int] है, उदाहरण के लिए 10-20 । हेक्साडेसिमल मान स्वीकार किए जाते हैं और 0x या 0X से शुरू होने चाहिए। दो सीमाएँ एक अहस्ताक्षरित 64-बिट पूर्णांक होनी चाहिए।
  • tristate । मान्य मान y , m और n हैं।
compatibility-matrix.kernel.config.value.type
आवश्यक। CONFIG आइटम के मान का प्रकार, इनमें से एक:
  • string
  • int
  • range
  • tristate
compatibility-matrix.sepolicy
आवश्यक। सेपोलिसी से संबंधित सभी प्रविष्टियां शामिल हैं। केवल फ्रेमवर्क संगतता मैट्रिक्स द्वारा उपयोग किया जाता है।
compatibility-matrix.sepolicy.sepolicy-version
आवश्यक, दोहरा सकते हैं। सेपोलिसी संस्करण पर आवश्यकता का वर्णन करता है। manifest.sepolicy.version के अनुरूप है। एक तत्व का प्रत्येक उदाहरण सेपोलिसी संस्करणों की एक श्रृंखला को परिभाषित करता है।
compatibility-matrix.sepolicy.kernel-sepolicy-version
आवश्यक। फ्रेमवर्क के साथ काम करने वाले policydb संस्करण की घोषणा करता है।
compatibility-matrix.avb.vbmeta-version
वैकल्पिक; केवल फ्रेमवर्क संगतता मैट्रिक्स द्वारा उपयोग किया जाता है। system.img पर हस्ताक्षर करने के लिए प्रयुक्त AVB संस्करण की घोषणा करता है। Android 10 में बहिष्कृत।
compatibility-matrix.vendor-ndk
वैकल्पिक; केवल डिवाइस संगतता मैट्रिक्स द्वारा उपयोग किया जाता है। VNDK वेंडर स्नैपशॉट की आवश्यकता की घोषणा करता है। यदि अनुपलब्ध है, तो सिस्टम छवि पर VNDK की कोई आवश्यकता नहीं है।
compatibility-matrix.vendor-ndk.version
आवश्यक। एक सकारात्मक पूर्णांक जो विक्रेता छवि के लिए आवश्यक VNDK संस्करण घोषित करता है।
compatibility-matrix.vendor-ndk.library
वैकल्पिक, दोहरा सकते हैं। विक्रेता छवि के लिए आवश्यक VNDK पुस्तकालयों के एक सेट की घोषणा करता है। manifest.vendor-ndk.library के समान शब्दार्थ।
compatibility-matrix.system-sdk.version
वैकल्पिक, दोहरा सकते हैं; केवल डिवाइस संगतता मैट्रिक्स द्वारा उपयोग किया जाता है। सिस्टम एसडीके संस्करणों पर विक्रेता ऐप्स द्वारा आवश्यकता की घोषणा करता है। यदि अनुपलब्ध है, तो सिस्टम छवि पर कोई सिस्टम SDK आवश्यकता नहीं है।
,

यह खंड ढांचे और डिवाइस संगतता मैट्रिक्स और संगतता मैट्रिक्स स्कीमा का वर्णन करता है। मिलान नियमों के लिए, मिलान नियम देखें।

फ्रेमवर्क कम्पैटिबिलिटी मैट्रिक्स (FCM)

फ्रेमवर्क कम्पेटिबिलिटी मैट्रिक्स (FCM) उस डिवाइस पर फ्रेमवर्क की आवश्यकताओं का वर्णन करता है जिस पर वह चलता है। फ्रेमवर्क संगतता मैट्रिक्स में सिस्टम संगतता मैट्रिक्स, उत्पाद संगतता मैट्रिक्स और system_ext संगतता मैट्रिक्स शामिल हैं। FCM की आवश्यकताओं को डिवाइस मेनिफ़ेस्ट (बिल्ड समय, रनटाइम और VTS में लागू की गई आवश्यकताएँ) से संतुष्ट होना चाहिए।

system_ext FCM और उत्पाद FCM डिवाइस-विशिष्ट FCM (सिस्टम विभाजन में स्थापित) के पूरक हैं।

  • डिवाइस FCM को सिस्टम विभाजन में मॉड्यूल की आवश्यकताओं को प्रतिबिंबित करना चाहिए।
  • System_ext FCM को system_ext विभाजन में मॉड्यूल द्वारा आवश्यकताओं को प्रतिबिंबित करना चाहिए।
  • उत्पाद FCM को उत्पाद विभाजन में मॉड्यूल द्वारा आवश्यकताओं को प्रतिबिंबित करना चाहिए।

सभी FCM को सिस्टम, उत्पाद, और system_ext विभाजन में फ्रेमवर्क में OEM के संशोधनों के साथ संरेखित करना चाहिए। उदाहरण के लिए, यदि उत्पाद विभाजन में स्थापित कोई ऐप HAL इंटरफ़ेस के वेंडर एक्सटेंशन का उपयोग करता है, तो उत्पाद FCM में HAL इंटरफ़ेस आवश्यकता घोषित की जानी चाहिए।

उदाहरण प्रणाली संगतता मैट्रिक्स फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments, Legal notices, etc. here -->
<compatibility-matrix version="1.0" type="framework" level="3">
    <hal>
        <name>android.hardware.camera</name>
        <version>1.0</version>
        <version>3.1-4</version>
        <interface>
            <name>ICameraProvider</name>
            <instance>default</instance>
            <regex-instance>[a-z_]+/[0-9]+</regex-instance>
        </interface>
    </hal>
    <hal>
        <name>android.hardware.nfc</name>
        <version>1.0</version>
        <interface>
            <name>INfc</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal optional="true">
        <name>android.hardware.graphics.composer</name>
        <version>2.1</version>
        <interface>
            <name>IComposer</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.light</name>
        <version>1-2</version>
        <interface>
            <name>ILights</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="native">
        <name>GL</name>
        <version>1.1</version>
        <version>3.0</version>
    </hal>
    <hal format="native">
        <name>EGL</name>
        <version>1.1</version>
    </hal>
    <kernel version="3.18.51">
        <!-- common configs -->
    </kernel>
    <kernel version="3.18.51">
        <!-- arm specific configs -->
        <condition>
            <config>
                <key>CONFIG_ARM</key>
                <value type="tristate">y</value>
            </config>
        <condition>
        <config>
            <key>CONFIG_A</key>
            <value type="string"></value>
        </config>
        <config>
            <key>CONFIG_B</key>
            <value type="tristate">y</value>
        </config>
    </kernel>
    <kernel version="4.1.22">
        <!-- common configs -->
        <config>
            <key>CONFIG_A</key>
            <value type="string">foo</value>
        </config>
        <config>
            <key>CONFIG_B2</key>
            <value type="int">1024</value>
        </config>
    </kernel>
    <sepolicy>
        <kernel-sepolicy-version>30</kernel-sepolicy-version>
        <sepolicy-version>25.0</sepolicy-version>
        <sepolicy-version>26.0-3</sepolicy-version>
    </sepolicy>
    <avb>
        <vbmeta-version>2.1</vbmeta-version>
    </avb>
    <xmlfile format="dtd">
        <name>media_profile</name>
        <version>1.0</version>
        <path>/system/etc/media_profile_V1_0.dtd</path>
    </xmlfile>
</compatibility-matrix>

अधिक विवरण के लिए, FCM जीवनचक्र देखें।

उत्पाद संगतता मैट्रिक्स

उत्पाद FCM उत्पाद विभाजन में एक रूपरेखा संगतता मैट्रिक्स फ़ाइल है। VINTF वस्तु उत्पाद FCM को सिस्टम में FCM और रनटाइम पर system_ext विभाजन के साथ जोड़ती है।

उदाहरण उत्पाद FCM फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments, Legal notices, etc. here -->
<compatibility-matrix version="1.0" type="framework">
    <hal>
        <name>vendor.foo.camera</name>
        <version>1.0</version>
        <interface>
            <name>IBetterCamera</name>
            <instance>default</instance>
        </interface>
    </hal>
</compatibility-matrix>

System_ext संगतता मैट्रिक्स

System_ext FCM system_ext पार्टीशन में एक फ्रेमवर्क संगतता मैट्रिक्स फ़ाइल है। VINTF ऑब्जेक्ट रनटाइम पर सिस्टम और उत्पाद विभाजन में FCMs के साथ system_ext FCM से जुड़ता है। System_ext FCM फ़ाइल के उदाहरण के लिए उत्पाद अनुकूलता मैट्रिक्स देखें।

डिवाइस संगतता मैट्रिक्स (डीसीएम)

डिवाइस कम्पैटिबिलिटी मैट्रिक्स उन आवश्यकताओं के एक सेट का वर्णन करता है जो डिवाइस फ्रेमवर्क से अपेक्षा करता है (लॉन्च और ओटीए समय पर लागू की गई आवश्यकताएं)।

उदाहरण डीसीएम फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments, Legal notices, etc. here -->
<compatibility-matrix version="1.0" type="device">
    <hal>
        <name>android.hidl.manager</name>
        <version>1.0</version>
        <interface>
            <name>IServiceManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal>
        <name>android.hidl.memory</name>
        <version>1.0</version>
        <interface>
            <name>IMemory</name>
            <instance>ashmem</instance>
        </interface>
    </hal>
    <hal>
        <name>android.hidl.allocator</name>
        <version>1.0</version>
        <interface>
            <name>IAllocator</name>
            <instance>ashmem</instance>
        </interface>
    </hal>
    <hal>
        <name>android.framework.sensor</name>
        <version>1.0</version>
        <interface>
            <name>ISensorManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <vendor-ndk>
        <version>27</version>
    </vendor-ndk>
    <system-sdk>
        <version>27</version>
    </system-sdk>
</compatibility-matrix>

संगतता मैट्रिक्स स्कीमा

यह खंड इन XML टैग्स के अर्थ का वर्णन करता है। कुछ "आवश्यक" टैग Android स्रोत ट्री में स्रोत फ़ाइल से गायब हो सकते हैं और बिल्ड समय पर assemble_vintf द्वारा लिखे गए हैं। डिवाइस पर संबंधित फाइलों में "आवश्यक" टैग मौजूद होना चाहिए।

?xml
वैकल्पिक। यह केवल XML पार्सर को जानकारी प्रदान करता है।
compatibility-matrix.version
आवश्यक। इस संगतता मैट्रिक्स का मेटा-संस्करण। संगतता मैट्रिक्स में अपेक्षित तत्वों का वर्णन करता है। एक्सएमएल संस्करण से असंबंधित।
compatibility-matrix.type
आवश्यक। इस संगतता मैट्रिक्स का प्रकार:
  • "device" : डिवाइस संगतता मैट्रिक्स।
  • "framework" : फ्रेमवर्क संगतता मैट्रिक्स।
manifest.level
फ़्रेमवर्क संगतता मैट्रिक्स के लिए आवश्यक है। एंड्रॉइड 12 और उच्चतर में, उत्पाद और system_ext विभाजन में फ्रेमवर्क संगतता मैट्रिक्स फ़ाइलों में अनुमति दी गई है। इस फ़ाइल के फ्रेमवर्क संगतता मैट्रिक्स संस्करण (FCM संस्करण) को निर्दिष्ट करता है। डिवाइस-विशिष्ट फ़्रेमवर्क संगतता मैट्रिक्स (यानी DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE ) में इसकी घोषणा न करें।
compatibility-matrix.hal
वैकल्पिक और दोहरा सकते हैं। एक एकल एचएएल (एचआईडीएल या देशी) को सूचीबद्ध करता है जो संगतता मैट्रिक्स (फ्रेमवर्क या डिवाइस) के मालिक द्वारा उपस्थित होने के लिए आवश्यक है। एचएएल प्रविष्टियां एक <name> तत्व द्वारा प्रतिष्ठित हैं; एक ही नाम के साथ कई एचएएल प्रविष्टियां हो सकती हैं (इसका अर्थ है "और" स्थिति)।
compatibility-matrix.hal.format
वैकल्पिक। मान इनमें से एक हो सकता है:
  • "hidl" : एचआईडीएल एचएएल। यह डिफ़ॉल्ट है।
  • "aidl" : एआईडीएल एचएएल । केवल संगतता मैट्रिक्स मेटा-संस्करण 2.0 पर मान्य है।
  • "native" : देशी एचएएल।
compatibility-matrix.hal.optional
विशेषता वैकल्पिक है और डिफ़ॉल्ट गलत है। बताता है कि क्या यह एचएएल संगतता मैट्रिक्स (फ्रेमवर्क या डिवाइस) के मालिक के लिए वैकल्पिक है। यदि एक <hal> प्रविष्टि को वैकल्पिक के रूप में चिह्नित किया गया है, तो इसका मतलब है कि स्वामी इस HAL के साथ काम कर सकता है, यदि मौजूद है, लेकिन उसे उपस्थित होने की आवश्यकता नहीं है।
compatibility-matrix.hal.name
आवश्यक। इस एचएएल का पूरा पैकेज नाम। उदाहरण:
  • android.hardware.camera (एचआईडीएल या एआईडीएल एचएएल)
  • GLES (देशी एचएएल, केवल नाम की आवश्यकता है)
compatibility-matrix.hal.version
वर्जन रेंज की एक सूची ( एचएएल मैच देखें) जो यह परिभाषित करती है कि कम्पैटिबिलिटी मैट्रिक्स (फ्रेमवर्क या डिवाइस) के मालिक कौन से वर्जन की अपेक्षा करते हैं।

एचआईडीएल और देशी एचएएल के लिए, आवश्यक, डुप्लिकेट के बिना दोहरा सकते हैं। प्रारूप निम्न में से एक है:
  • MAJOR . MINOR_MIN - MINOR_MAX
  • MAJOR . MINOR ( MAJOR . MINOR - MINOR के बराबर)

एआईडीएल एचएएल के लिए, Android 11 और उससे पहले के संस्करण चलाने वाले उपकरणों पर मौजूद नहीं होना चाहिए। बाद के संस्करण चलाने वाले उपकरणों पर वैकल्पिक। यदि निर्दिष्ट किया गया है, तो प्रारूप निम्न में से एक है:
  • VERSION_MIN - VERSION_MAX
  • VERSION ( VERSION - VERSION के समतुल्य)
यदि निर्दिष्ट नहीं है, तो मान डिफ़ॉल्ट रूप से 1 हो जाता है।
compatibility-matrix.hal.interface
वैकल्पिक, दोहरा सकते हैं। इस एचएएल के आवश्यक इंटरफेस की एक सूची।
compatibility-matrix.hal.interface.name
आवश्यक। इंटरफ़ेस का नाम।
compatibility-matrix.hal.interface.instance
वैकल्पिक, दोहरा सकते हैं। इस इंटरफ़ेस के आवश्यक उदाहरणों की एक सूची।
compatibility-matrix.hal.interface.regex-instance
वैकल्पिक, दोहरा सकते हैं। इस इंटरफ़ेस पर आवश्यक इंस्टेंस नाम पैटर्न की एक सूची। विस्तारित रेगुलर एक्सप्रेशन स्वरूप का उपयोग करें।
compatibility-matrix.kernel
वैकल्पिक, दोहरा सकते हैं। कर्नेल कॉन्फ़िग की एक सूची निर्दिष्ट करें जिसकी फ्रेमवर्क को प्रत्येक कर्नेल संस्करण पर आवश्यकता होती है।
एकाधिक <kernel> एक ही <version> के साथ "और" संबंध को दर्शाने के लिए मौजूद हो सकते हैं। प्रत्येक <kernel> आवश्यकताओं का एक "टुकड़ा" है जो केवल तभी सक्षम होता है जब <conditions> पूरी होती हैं।
compatibility-matrix.kernel.version
आवश्यक। कर्नेल संस्करण। प्रारूप VERSION . MAJOR_REVISION . MINOR_REVISION . संस्करण और प्रमुख संशोधन बिल्कुल मेल खाना चाहिए। मामूली संशोधन कर्नेल के न्यूनतम एलटीएस संस्करण को परिभाषित करता है जिसकी रूपरेखा अपेक्षा करती है।
compatibility-matrix.kernel.condition
वैकल्पिक। प्रत्येक संस्करण के पहले <kernel> के लिए मौजूद नहीं होना चाहिए। शर्तों की एक सूची निर्दिष्ट करता है। जब शर्तें पूरी हो जाती हैं, तो इस <kernel> खंड में बताई गई आवश्यकताएं सक्षम हो जाती हैं।
compatibility-matrix.kernel.config
वैकल्पिक, दोहरा सकते हैं। CONFIG मदों की सूची देता है जिनका इस कर्नेल संस्करण के लिए मिलान किया जाना चाहिए। प्रत्येक CONFIG आइटम एक की-वैल्यू पेयर है; कॉन्फिग आइटम कुंजी द्वारा प्रतिष्ठित हैं।
compatibility-matrix.kernel.config.key
आवश्यक। CONFIG आइटम का मुख्य नाम। CONFIG_ से शुरू होता है।
compatibility-matrix.kernel.config.value
आवश्यक। CONFIG आइटम का मूल्य। प्रारूप प्रकार पर निर्भर करता है:
  • string । उद्धरण छोड़े गए हैं।
  • int । दशमलव और हेक्साडेसिमल ( 0x या 0X) मान स्वीकार किए जाते हैं। 64-बिट पूर्णांक के रूप में व्याख्या की गई; अतिप्रवाह के परिणामस्वरूप छंटनी होती है। (पार्सर -2 64 + 1 से 2 64 - 1 तक मान स्वीकार करता है, 65वां बिट काट दिया गया है; विवरण के लिए strtoull मैन पेज देखें।)
  • range । प्रारूप [int]-[int] है, उदाहरण के लिए 10-20 । हेक्साडेसिमल मान स्वीकार किए जाते हैं और 0x या 0X से शुरू होने चाहिए। दो सीमाएँ एक अहस्ताक्षरित 64-बिट पूर्णांक होनी चाहिए।
  • tristate । मान्य मान y , m और n हैं।
compatibility-matrix.kernel.config.value.type
आवश्यक। CONFIG आइटम के मान का प्रकार, इनमें से एक:
  • string
  • int
  • range
  • tristate
compatibility-matrix.sepolicy
आवश्यक। सेपोलिसी से संबंधित सभी प्रविष्टियां शामिल हैं। केवल फ्रेमवर्क संगतता मैट्रिक्स द्वारा उपयोग किया जाता है।
compatibility-matrix.sepolicy.sepolicy-version
आवश्यक, दोहरा सकते हैं। सेपोलिसी संस्करण पर आवश्यकता का वर्णन करता है। manifest.sepolicy.version के अनुरूप है। एक तत्व का प्रत्येक उदाहरण सेपोलिसी संस्करणों की एक श्रृंखला को परिभाषित करता है।
compatibility-matrix.sepolicy.kernel-sepolicy-version
आवश्यक। फ्रेमवर्क के साथ काम करने वाले policydb संस्करण की घोषणा करता है।
compatibility-matrix.avb.vbmeta-version
वैकल्पिक; केवल फ्रेमवर्क संगतता मैट्रिक्स द्वारा उपयोग किया जाता है। system.img पर हस्ताक्षर करने के लिए प्रयुक्त AVB संस्करण की घोषणा करता है। Android 10 में बहिष्कृत।
compatibility-matrix.vendor-ndk
वैकल्पिक; केवल डिवाइस संगतता मैट्रिक्स द्वारा उपयोग किया जाता है। VNDK वेंडर स्नैपशॉट की आवश्यकता की घोषणा करता है। यदि अनुपलब्ध है, तो सिस्टम छवि पर VNDK की कोई आवश्यकता नहीं है।
compatibility-matrix.vendor-ndk.version
आवश्यक। एक सकारात्मक पूर्णांक जो विक्रेता छवि के लिए आवश्यक VNDK संस्करण घोषित करता है।
compatibility-matrix.vendor-ndk.library
वैकल्पिक, दोहरा सकते हैं। विक्रेता छवि के लिए आवश्यक VNDK पुस्तकालयों के एक सेट की घोषणा करता है। manifest.vendor-ndk.library के समान शब्दार्थ।
compatibility-matrix.system-sdk.version
वैकल्पिक, दोहरा सकते हैं; केवल डिवाइस संगतता मैट्रिक्स द्वारा उपयोग किया जाता है। सिस्टम एसडीके संस्करणों पर विक्रेता ऐप्स द्वारा आवश्यकता की घोषणा करता है। यदि अनुपलब्ध है, तो सिस्टम छवि पर कोई सिस्टम SDK आवश्यकता नहीं है।