एफसीएम जीवनचक्र

Android फ्रेमवर्क रिलीज़ में कई फ्रेमवर्क कम्पेटिबिलिटी मैट्रिक्स (FCMs) होते हैं - प्रत्येक अपग्रेड करने योग्य लक्ष्य FCM संस्करण के लिए एक - जो परिभाषित करता है कि फ्रेमवर्क क्या उपयोग कर सकता है और FCM संस्करण आवश्यकताओं को लक्षित करता है। FCM जीवनचक्र के भाग के रूप में, Android HIDL HALs को हटाता है और हटाता है, फिर HAL संस्करण की स्थिति को दर्शाने के लिए FCM फ़ाइलों को संशोधित करता है।

अपने स्वयं के पारिस्थितिकी तंत्र में केवल-फ्रेमवर्क ओटीए को सक्षम करने के लिए, वेंडर इंटरफेस का विस्तार करने वाले भागीदारों को भी समान तरीकों का उपयोग करके एचआईडीएल एचएएल को हटा देना चाहिए।

शब्दावली

फ्रेमवर्क संगतता मैट्रिक्स (एफसीएम) एक XML फ़ाइल जो विक्रेता कार्यान्वयनों के अनुरूप ढांचे की आवश्यकताओं को निर्दिष्ट करती है। संगतता मैट्रिक्स का संस्करण है, और प्रत्येक फ्रेमवर्क रिलीज़ के लिए एक नया संस्करण स्थिर है। प्रत्येक फ्रेमवर्क रिलीज़ में कई FCM होते हैं।
प्लेटफार्म एफसीएम संस्करण ( एसएफ ) फ्रेमवर्क रिलीज़ में सभी FCM संस्करणों का सेट। ढांचा किसी भी विक्रेता कार्यान्वयन के साथ काम कर सकता है जो इनमें से किसी एक एफसीएम को संतुष्ट करता है।
एफसीएम संस्करण (एफ) फ्रेमवर्क रिलीज में सभी एफसीएम के बीच उच्चतम संस्करण।
लक्ष्य FCM संस्करण (V) लक्षित FCM संस्करण (S F से), डिवाइस मेनिफेस्ट में स्पष्ट रूप से घोषित किया गया है, जो एक विक्रेता कार्यान्वयन को संतुष्ट करता है। एक विक्रेता कार्यान्वयन एक प्रकाशित एफसीएम के खिलाफ उत्पन्न होना चाहिए, हालांकि यह अपने डिवाइस मेनिफेस्ट में नए एचएएल संस्करणों की घोषणा कर सकता है।
एचएएल संस्करण एचएएल संस्करण का प्रारूप foo@xy है, जहां foo एचएएल नाम है और xy विशिष्ट संस्करण है; उदा. nfc@1.0 , keymaster@3.0 (रूट उपसर्ग, उदा. android.hardware , इस पूरे दस्तावेज़ में छोड़ दिया गया है।)
डिवाइस मेनिफेस्ट एक्सएमएल फाइलें जो निर्दिष्ट करती हैं कि वेंडर और ओडीएम इमेज सहित वेंडर इंटरफेस का कौन सा एचएएल वर्जन डिवाइस साइड प्रदान करता है। डिवाइस मैनिफ़ेस्ट की सामग्री डिवाइस के लक्ष्य FCM संस्करण द्वारा विवश है, लेकिन HALs को सूचीबद्ध कर सकता है जो V के अनुरूप FCM के सापेक्ष बिल्कुल नए हैं।
डिवाइस एचएएल एचएएल जो डिवाइस मेनिफेस्ट में सूचीबद्ध (प्रदत्त) हैं और फ्रेमवर्क संगतता मैट्रिक्स (एफसीएम) में सूचीबद्ध (या तो आवश्यक या वैकल्पिक) हैं।
डिवाइस संगतता मैट्रिक्स (डीसीएम) एक एक्सएमएल फ़ाइल जो अनुरूप ढांचे के कार्यान्वयन पर विक्रेता आवश्यकताओं को निर्दिष्ट करती है। प्रत्येक डिवाइस में एक डीसीएम होता है।
फ्रेमवर्क मेनिफेस्ट एक XML फ़ाइल जो निर्दिष्ट करती है कि सिस्टम, system_ext, और उत्पाद छवियों सहित विक्रेता इंटरफ़ेस का कौन सा HAL संस्करण प्रदान करता है। डिवाइस के लक्ष्य FCM संस्करण के अनुसार फ्रेमवर्क मेनिफ़ेस्ट में HAL गतिशील रूप से अक्षम हैं।
फ्रेमवर्क एचएएल एचएएल जो कि फ्रेमवर्क मेनिफेस्ट में प्रदान किए गए अनुसार सूचीबद्ध हैं और डिवाइस संगतता मैट्रिक्स (डीसीएम) में आवश्यक या वैकल्पिक के रूप में सूचीबद्ध हैं।

एक नए FCM संस्करण में विकास करना

Android प्रत्येक फ्रेमवर्क रिलीज़ (जैसे Android 8, 8.1, आदि) के लिए FCM संस्करण को बढ़ाता है। विकास के दौरान, नई compatibility_matrix.F.xml बनाई जाती है और मौजूदा compatibility_matrix.f.xml (जहाँ f < F ) अब नहीं बदला जाता है।

एक नए FCM संस्करण F में विकसित करना प्रारंभ करने के लिए:

  1. नवीनतम compatibility_matrix.<F-1>.xml compatibility_matrix.F.xml में कॉपी करें।
  2. फ़ाइल में level विशेषता को F में अपडेट करें।
  3. इस संगतता मैट्रिक्स को डिवाइस में स्थापित करने के लिए संबंधित बिल्ड नियम जोड़ें।

एक नया एचएएल पेश करना

विकास के दौरान, वर्तमान FCM संस्करण F पर Android के लिए एक नया HAL (वाई-फाई, एनएफसी, आदि) पेश करते समय, निम्नलिखित optional सेटिंग्स के साथ HAL को compatibility_matrix.F.xml में जोड़ें:

  • optional="false" यदि V = F के साथ शिप करने वाले उपकरण इस HAL के साथ लॉन्च होने चाहिए,

    या
  • optional="true" यदि V = F के साथ शिप करने वाले डिवाइस इस एचएएल के बिना लॉन्च हो सकते हैं।

उदाहरण के लिए, Android 8.1 ने वैकल्पिक HAL के रूप में cas@1.0 पेश किया। एंड्रॉइड 8.1 के साथ लॉन्च होने वाले उपकरणों को इस एचएएल को लागू करने की आवश्यकता नहीं है, इसलिए compatibility_matrix.F.xml F.xml में निम्नलिखित प्रविष्टि जोड़ी गई थी (जिसे उस रिलीज के विकास के दौरान अस्थायी रूप से compatibility_matrix.current.xml नाम दिया गया था):

<hal format="hidl" optional="true">
    <name>android.hardware.cas</name>
    <version>1.0</version>
    <interface>
        <name>IMediaCasService</name>
        <instance>default</instance>
    </interface>
</hal>

एचएएल का उन्नयन (मामूली)

विकास के दौरान, जब किसी HAL का वर्तमान FCM संस्करण F पर xz से x.(z+1) में लघु-संस्करण अपग्रेड होता है, यदि वह संस्करण है:

  • V = F के साथ लॉन्च होने वाले उपकरणों पर आवश्यक, compatibility_matrix.F.xml में x.(z+1) और optional="false" होना चाहिए।
  • V = F के साथ लॉन्च होने वाले उपकरणों पर आवश्यक नहीं है, compatibility_matrix.F.xml xy-z और वैकल्पिकता को compatibility_matrix.<F-1>.xml से कॉपी करना होगा और संस्करण को xw-(z+1) में बदलना होगा (जहाँ w >= y )।

उदाहरण के लिए, Android 8.1 ने broadcastradio@1.1 1.0 HAL के मामूली संस्करण के उन्नयन के रूप में पेश किया। पुराना संस्करण, broadcastradio@1.0 , एंड्रॉइड 8.0 के साथ लॉन्च होने वाले उपकरणों के लिए वैकल्पिक है, जबकि नया संस्करण, broadcastradio@1.1 , एंड्रॉइड 8.1 के साथ लॉन्च होने वाले उपकरणों के लिए वैकल्पिक है। compatibility_matrix.1.xml में :

<hal format="hidl" optional="true">
    <name>android.hardware.broadcastradio</name>
    <version>1.0</version>
    <interface>
        <name>IBroadcastRadioFactory</name>
        <instance>default</instance>
    </interface>
</hal>

इस प्रविष्टि को compatibility_matrix.F.xml में कॉपी किया गया था और निम्नानुसार संशोधित किया गया था:

<hal format="hidl" optional="true">
    <name>android.hardware.broadcastradio</name>
    <version>1.0-1</version>
    <interface>
        <name>IBroadcastRadioFactory</name>
        <instance>default</instance>
    </interface>
</hal>

एचएएल का उन्नयन (प्रमुख)

विकास के दौरान, जब किसी HAL का वर्तमान FCM संस्करण F पर एक प्रमुख-संस्करण अपग्रेड होता है, तो नए प्रमुख संस्करण x.0 को compatibility_matrix.F.xml F.xml में निम्नलिखित optional सेटिंग्स के साथ जोड़ा जाता है:

  • optional="false" केवल संस्करण x.0 के साथ, यदि V = F के साथ शिप करने वाले उपकरणों को x.0 के साथ लॉन्च करना होगा।
  • optional="false" लेकिन उसी <hal> टैग में पुराने प्रमुख संस्करणों के साथ, यदि V = F के साथ शिप करने वाले उपकरणों को इस HAL के साथ लॉन्च करना होगा, लेकिन पुराने प्रमुख संस्करण के साथ लॉन्च किया जा सकता है।
  • optional="true" अगर V = F के साथ शिप करने वाले उपकरणों को एचएएल लॉन्च करने की ज़रूरत नहीं है।

उदाहरण के लिए, Android 9 ने health@2.0 1.0 HAL के एक प्रमुख-संस्करण अपग्रेड के रूप में पेश किया और 1.0 HAL को हटा दिया। पुराना संस्करण, health@1.0 , Android 8.0 और Android 8.1 के साथ लॉन्च होने वाले उपकरणों के लिए वैकल्पिक है। Android 9 के साथ लॉन्च होने वाले उपकरणों को बहिष्कृत 1.0 HAL प्रदान नहीं करना चाहिए और इसके बजाय नया 2.0 संस्करण प्रदान करना चाहिए। compatibility_matrix.legacy.xml में, compatibility_matrix.1.xml और compatibility_matrix.2.xml :

<hal format="hidl" optional="true">
    <name>android.hardware.health</name>
    <version>1.0</version>
    <interface>
        <name>IHealth</name>
        <instance>default</instance>
    </interface>
</hal>

इस प्रविष्टि की compatibility_matrix.F.xml में प्रतिलिपि बनाई गई है और निम्नानुसार संशोधित की गई है:

<hal format="hidl" optional="false">
    <name>android.hardware.health</name>
    <version>2.0</version>
    <interface>
        <name>IHealth</name>
        <instance>default</instance>
    </interface>
</hal>

प्रतिबंध:

  • चूंकि 2.0 एचएएल optional="false" के साथ compatibility_matrix.3.xml में है, एंड्रॉइड 9 के साथ लॉन्च होने वाले उपकरणों को 2.0 एचएएल के साथ शिप करना होगा।
  • क्योंकि 1.0 एचएएल compatibility_matrix.3.xml xml में नहीं है, एंड्रॉइड 9 के साथ लॉन्च होने वाले उपकरणों को 1.0 एचएएल प्रदान नहीं करना चाहिए (क्योंकि यह एचएएल बहिष्कृत माना जाता है)।
  • चूंकि 1.0 एचएएल एक वैकल्पिक एचएएल के रूप में लीगेसी/1/2.xml (पुराने FCM संस्करण जिनके साथ एंड्रॉइड 9 काम कर सकता है) में मौजूद है, एंड्रॉइड 9 फ्रेमवर्क अभी भी 1.0 एचएएल के साथ काम कर सकता है (जिसे हटाया गया एचएएल संस्करण नहीं माना जाता है) ).

नए एफसीएम संस्करण

सिस्टम विभाजन पर एक FCM संस्करण जारी करने की प्रक्रिया केवल Google द्वारा AOSP रिलीज़ के भाग के रूप में की जाती है और इसमें निम्नलिखित चरण शामिल होते हैं:

  1. सुनिश्चित करें कि compatibility_matrix.F.xml में विशेषता level="F" है।
  2. सभी उपकरणों का निर्माण और बूट सुनिश्चित करें।
  3. नवीनतम ढांचे (शिपिंग एपीआई स्तर के आधार पर) के साथ लॉन्च होने वाले उपकरणों को सुनिश्चित करने के लिए वीटीएस परीक्षण अपडेट करें, लक्ष्य एफसीएम संस्करण V >= F है।
  4. फ़ाइल को AOSP पर प्रकाशित करें।

उदाहरण के लिए, VTS परीक्षण सुनिश्चित करते हैं कि Android 9 के साथ लॉन्च होने वाले उपकरणों का लक्ष्य FCM संस्करण >= 3 है।

इसके अलावा, उत्पाद और system_ext FCM भी प्रत्येक प्लेटफॉर्म FCM संस्करणों के लिए आवश्यकताओं को सूचीबद्ध कर सकते हैं। उत्पाद और system_ext विभाजन पर FCM संस्करणों का विमोचन क्रमशः इन छवियों के स्वामी द्वारा किया जाता है। उत्पाद पर FCM संस्करण संख्या और system_ext विभाजन को सिस्टम विभाजन पर उनके साथ संरेखित करना चाहिए। सिस्टम विभाजन पर FCM संस्करणों के समान, उत्पाद में FCM संस्करण F पर संगतता मैट्रिक्स और system_ext विभाजन लक्ष्य FCM संस्करण F वाले डिवाइस पर आवश्यकताओं को दर्शाता है।

एचएएल संस्करण का बहिष्कार

एचएएल संस्करण का बहिष्कार करना एक डेवलपर निर्णय है (यानी एओएसपी एचएएल के लिए, Google निर्णय लेता है)। यह तब हो सकता है जब एक उच्च एचएएल संस्करण (चाहे छोटा हो या बड़ा) जारी किया जाता है।

डिवाइस एचएएल का बहिष्कार करें

जब किसी दिए गए उपकरण HAL foo@xy को FCM संस्करण F पर बहिष्कृत किया जाता है, तो इसका मतलब है कि लक्ष्य FCM संस्करण V = F या बाद के संस्करण के साथ लॉन्च होने वाले किसी भी उपकरण को संस्करण xy या xy से पुराने संस्करण पर foo लागू नहीं करना चाहिए। उपकरणों को अपग्रेड करने के लिए ढांचे द्वारा बहिष्कृत एचएएल संस्करण अभी भी समर्थित है।

जब FCM संस्करण F जारी किया जाता है, तो एक HAL संस्करण foo@xy को बहिष्कृत माना जाता है यदि लक्ष्य FCM संस्करण V = F के लिए नवीनतम FCM में विशिष्ट HAL संस्करण स्पष्ट रूप से नहीं बताया गया है। V = F के साथ लॉन्च होने वाले उपकरणों के लिए, निम्न स्थितियों में से एक सत्य है:

  • ढांचे को एक उच्च संस्करण (प्रमुख या मामूली) की आवश्यकता होती है;
  • ढांचे को अब एचएएल की आवश्यकता नहीं है।

उदाहरण के लिए, Android 9 में health@2.0 1.0 HAL के प्रमुख संस्करण के उन्नयन के रूप में पेश किया गया है। health@1.0 को compatibility_matrix.3.xml से हटा दिया गया है, लेकिन compatibility_matrix.legacy.xml , compatibility_matrix.1.xml , और compatibility_matrix.2.xml में मौजूद है। इसलिए, health@1.0 को बहिष्कृत माना जाता है।

एक ढांचे एचएएल का बहिष्कार करें

जब किसी दिए गए ढांचे HAL foo@xy को FCM संस्करण F पर बहिष्कृत किया जाता है, तो इसका मतलब है कि लक्ष्य FCM संस्करण V = F या बाद के संस्करण के साथ लॉन्च होने वाले किसी भी उपकरण को संस्करण xy , या xy से पुराने किसी भी संस्करण पर foo प्रदान करने की अपेक्षा नहीं करनी चाहिए। उपकरणों के उन्नयन के लिए ढांचे द्वारा एक पदावनत एचएएल संस्करण अभी भी प्रदान किया जाता है।

जब FCM संस्करण F जारी किया जाता है, तो एक HAL संस्करण foo@xy को बहिष्कृत माना जाता है यदि फ्रेमवर्क मेनिफेस्ट max-level=" F - 1 " foo@xy के लिए निर्दिष्ट करता है। V = F के साथ लॉन्च होने वाले उपकरणों के लिए, ढांचा HAL foo@xy प्रदान नहीं करता है। V = F के साथ लॉन्च होने वाले डिवाइस पर डिवाइस कम्पैटिबिलिटी मैट्रिक्स को max-level < V के साथ फ्रेमवर्क HALs को सूचीबद्ध नहीं करना चाहिए।

उदाहरण के लिए, Android 12 में, schedulerservice@1.0 को बहिष्कृत कर दिया गया है। इसकी max-level विशेषता 5 पर सेट है, Android 11 में पेश किया गया FCM संस्करण । Android 12 फ्रेमवर्क मेनिफेस्ट देखें।

लक्ष्य FCM संस्करणों के लिए समर्थन हटाना

जब एक निश्चित लक्ष्य FCM संस्करण V के सक्रिय उपकरण एक निश्चित सीमा से नीचे गिर जाते हैं, तो लक्ष्य FCM संस्करण को अगले फ्रेमवर्क रिलीज के सेट S F से हटा दिया जाता है। यह निम्नलिखित दोनों चरणों द्वारा किया जाता है:

  • बिल्ड नियमों से compatibility_matrix.V.xml हटाना (ताकि यह सिस्टम छवि पर स्थापित न हो), और हटाए गए कार्यात्मकता पर लागू या निर्भर किसी भी कोड को हटाना।
  • फ़्रेमवर्क मेनिफ़ेस्ट से max-level V से कम या उसके बराबर वाले फ़्रेमवर्क HALs को हटाना, और हटाए गए फ़्रेमवर्क HALs को लागू करने वाले किसी भी कोड को हटाना।

किसी दिए गए ढांचे रिलीज के लिए एस एफ के बाहर लक्षित एफसीएम संस्करण वाले डिवाइस उस रिलीज में अपग्रेड नहीं कर सकते हैं।

एचएएल संस्करण की स्थिति

निम्नलिखित खंड एचएएल संस्करण की संभावित अवस्थाओं (कालानुक्रमिक क्रम में) का वर्णन करते हैं।

अप्रकाशित

डिवाइस एचएएल के लिए, यदि कोई एचएएल संस्करण किसी भी सार्वजनिक और जमे हुए अनुकूलता मैट्रिक्स में नहीं है, तो इसे अप्रकाशित और संभवतः विकास में माना जाता है। इसमें एचएएल संस्करण शामिल हैं जो केवल compatibility_matrix.F.xml में हैं। उदाहरण:

  • Android 9 के विकास के दौरान health@2.0 HAL को एक अप्रकाशित HAL माना गया था और यह केवल compatibiility_matrix.3.xml में मौजूद था।
  • teleportation@1.0 एचएएल किसी भी जारी संगतता मैट्रिक्स में नहीं है, और इसे एक अप्रकाशित एचएएल भी माना जाता है।

फ्रेमवर्क एचएएल के लिए, यदि एक एचएएल संस्करण केवल एक असंबंधित विकास शाखा के फ्रेमवर्क मेनिफेस्ट में है, तो इसे रिलीज़ नहीं किया गया माना जाता है।

जारी और वर्तमान

डिवाइस एचएएल के लिए, यदि कोई एचएएल संस्करण किसी सार्वजनिक और जमे हुए संगतता मैट्रिक्स में है, तो इसे जारी किया जाता है। उदाहरण के लिए, FCM संस्करण 3 के स्थिर होने और AOSP में प्रकाशित होने के बाद, health@2.0 HAL को एक जारी और वर्तमान HAL संस्करण माना जाता है।

यदि एक एचएएल संस्करण एक सार्वजनिक और जमे हुए संगतता मैट्रिक्स में है जिसमें उच्चतम एफसीएम संस्करण है तो एचएएल संस्करण वर्तमान है (अर्थात् पदावनत नहीं)। उदाहरण के लिए, मौजूदा एचएएल संस्करण (जैसे nfc@1.0 compatibility_matrix.legacy.xml में पेश किया गया) जो compatibility_matrix.3.xml में मौजूद रहते हैं, उन्हें भी जारी और वर्तमान एचएएल संस्करण माना जाता है।

फ्रेमवर्क एचएएल के लिए, यदि कोई एचएएल संस्करण max-level विशेषता के बिना नवीनतम रिलीज़ की गई शाखा के फ्रेमवर्क मेनिफेस्ट में है या (असामान्य रूप से) इस शाखा में जारी किए गए एफसीएम संस्करण के बराबर या उससे अधिक का max-level है, तो इसे जारी माना जाता है। और वर्तमान एचएएल संस्करण। उदाहरण के लिए, displayservice एचएएल जारी किया गया है और एंड्रॉइड 12 में चालू है, जैसा कि निर्दिष्ट किया गया है Android 12framework manifest

रिहा लेकिन पदावनत

डिवाइस एचएएल के लिए, एक एचएएल संस्करण बहिष्कृत हो जाता है यदि और केवल यदि निम्नलिखित सभी मिलते हैं:

  • यह जारी किया गया है।
  • यह सार्वजनिक और जमे हुए संगतता मैट्रिक्स में नहीं है जिसमें उच्चतम FCM संस्करण है।
  • यह एक सार्वजनिक और जमे हुए संगतता मैट्रिक्स में है जो ढांचा अभी भी समर्थन करता है।

उदाहरण:

इसलिए power@1.0 एंड्रॉइड 9 में वर्तमान है, लेकिन बहिष्कृत नहीं है

फ्रेमवर्क एचएएल के लिए, यदि कोई एचएएल संस्करण इस शाखा में जारी किए गए एफसीएम संस्करण की तुलना में कम max-level विशेषता के साथ नवीनतम जारी की गई शाखा के फ्रेमवर्क मेनिफेस्ट में है, तो इसे एक जारी लेकिन बहिष्कृत एचएएल संस्करण माना जाता है। उदाहरण के लिए, schedulerservice एचएएल जारी किया गया है लेकिन Android 12 में बहिष्कृत है, जैसा कि निर्दिष्ट किया गया है Android 12framework manifest

निकाला गया

डिवाइस एचएएल के लिए, एक एचएएल संस्करण हटा दिया जाता है यदि और केवल यदि निम्नलिखित सत्य हैं:

  • यह पहले जारी किया गया था।
  • यह किसी सार्वजनिक और जमे हुए अनुकूलता मैट्रिक्स में नहीं है जिसका ढांचा समर्थन करता है।

संगतता मैट्रिक्स जो सार्वजनिक हैं, जमे हुए हैं, लेकिन ढांचे द्वारा समर्थित नहीं हैं, हटाए गए एचएएल संस्करणों को परिभाषित करने के लिए कोड बेस में रखे गए हैं ताकि वीटीएस परीक्षण यह सुनिश्चित करने के लिए लिखा जा सके कि हटाए गए एचएएल नए उपकरणों पर नहीं हैं।

फ्रेमवर्क एचएएल के लिए, एक एचएएल संस्करण को हटा दिया जाता है यदि और केवल यदि निम्नलिखित मिलते हैं:

  • यह पहले जारी किया गया था।
  • यह नवीनतम जारी की गई शाखा के किसी भी ढांचे के प्रकटीकरण में नहीं है।

लीगेसी एफसीएम

लक्ष्य FCM संस्करण विरासत सभी गैर-ट्रेबल उपकरणों के लिए एक विशेष मूल्य है। लीगेसी FCM, compatibility_matrix.legacy.xml , लीगेसी डिवाइसों (अर्थात Android 8.0 से पहले लॉन्च किए गए डिवाइस) पर फ्रेमवर्क की आवश्यकताओं को सूचीबद्ध करता है।

यदि यह फ़ाइल संस्करण F के साथ FCM के लिए मौजूद है, तो किसी भी गैर-ट्रेबल डिवाइस को F में अपग्रेड किया जा सकता है, बशर्ते उसका डिवाइस मैनिफ़ेस्ट इस फ़ाइल के साथ संगत हो। इसका निष्कासन अन्य लक्ष्य FCM संस्करणों के लिए FCMs के समान प्रक्रिया का अनुसरण करता है (सक्रिय प्री-8.0 उपकरणों की संख्या एक निश्चित सीमा से नीचे जाने के बाद हटा दिया जाता है)।

FCM संस्करण जारी किए

जारी किए गए FCM संस्करणों की सूची hardware/interfaces/compatibility_matrices के अंतर्गत पाई जा सकती है।

किसी विशिष्ट Android रिलीज़ के साथ जारी किए गए FCM संस्करण को खोजने के लिए, Level.h देखें।