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

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

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

शब्दावली

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

कोडबेस में एफसीएम जीवनचक्र

यह दस्तावेज़ संक्षेप में एफसीएम जीवनचक्र का वर्णन करता है। वर्तमान में समर्थित मैनिफ़ेस्ट देखने के लिए, hardware/interfaces/compatibility_matrix.<FCM>.xml देखें जहां FCM को system/libvintf/include/vintf/Level.h में पाया जा सकता है।

Android 14 के अनुसार, समर्थित स्तर हैं:

एफसीएम एंड्रॉइड संस्करण
4 एंड्रॉइड 10/क्यू
5 एंड्रॉइड 11/आर
6 एंड्रॉइड 12/एस
7 एंड्रॉइड 13/टी
8 एंड्रॉइड 14/यू

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

एंड्रॉइड प्रत्येक फ्रेमवर्क रिलीज (जैसे एंड्रॉइड 8, 8.1, आदि) के लिए एफसीएम संस्करण को बढ़ाता है। विकास के दौरान, नई 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. डिवाइस पर इस संगतता मैट्रिक्स को स्थापित करने के लिए संबंधित बिल्ड नियम जोड़ें।

एक नई एचएएल का परिचय

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

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

उदाहरण के लिए, एंड्रॉइड 8.1 ने वैकल्पिक HAL के रूप में cas@1.0 पेश किया। एंड्रॉइड 8.1 के साथ लॉन्च होने वाले उपकरणों को इस एचएएल को लागू करने की आवश्यकता नहीं है, इसलिए निम्नलिखित प्रविष्टि को compatibility_matrix.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>

एचएएल को अपग्रेड करें (मामूली)

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

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

उदाहरण के लिए, एंड्रॉइड 8.1 ने broadcastradio@1.1 1.0 एचएएल के लघु संस्करण अपग्रेड के रूप में पेश किया। पुराना संस्करण, 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>

एचएएल को अपग्रेड करें (प्रमुख)

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

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

उदाहरण के लिए, एंड्रॉइड 9 health@2.0 1.0 एचएएल के प्रमुख-संस्करण अपग्रेड के रूप में पेश करता है और 1.0 एचएएल को हटा देता है। पुराना संस्करण, health@1.0 , Android 8.0 और Android 8.1 के साथ लॉन्च होने वाले उपकरणों के लिए वैकल्पिक है। एंड्रॉइड 9 के साथ लॉन्च होने वाले उपकरणों को अप्रचलित 1.0 एचएएल प्रदान नहीं करना चाहिए और इसके बजाय नया 2.0 संस्करण प्रदान करना चाहिए। मैं compatibility_matrix.legacy.xml xml , compatibility_matrix.1.xml 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 xml में है, एंड्रॉइड 9 के साथ लॉन्च होने वाले डिवाइस को 2.0 एचएएल के साथ शिप करना होगा।'
  • क्योंकि 1.0 एचएएल compatibility_matrix.3.xml में नहीं है, एंड्रॉइड 9 के साथ लॉन्च होने वाले डिवाइस को 1.0 एचएएल प्रदान नहीं करना चाहिए (क्योंकि इस एचएएल को अप्रचलित माना जाता है)।
  • क्योंकि 1.0 HAL एक वैकल्पिक HAL के रूप में लीगेसी/1/2.xml (पुराने FCM संस्करण जिसके साथ Android 9 काम कर सकता है) में मौजूद है, Android 9 फ्रेमवर्क अभी भी 1.0 HAL के साथ काम कर सकता है (जिसे हटाया हुआ HAL संस्करण नहीं माना जाता है) ).

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

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

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

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

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

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

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

एक उपकरण एचएएल को अस्वीकृत करें

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

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

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

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

एक ढाँचा HAL को अस्वीकृत करें

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

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

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

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

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

  1. बिल्ड नियमों से compatibility_matrix.V.xml हटाना (ताकि यह सिस्टम छवि पर स्थापित न हो), और हटाए गए कार्यक्षमता पर लागू या निर्भर किसी भी कोड को हटा दें।

  2. फ्रेमवर्क मेनिफेस्ट से V से कम या उसके बराबर max-level वाले फ्रेमवर्क एचएएल को हटाना, और हटाए गए फ्रेमवर्क एचएएल को लागू करने वाले किसी भी कोड को हटाना।

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

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

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

अप्रकाशित

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

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

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

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

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

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

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

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

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

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

उदाहरण:

इसलिए एंड्रॉइड 9 में power@1.0 चालू है, लेकिन अप्रचलित नहीं है

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

निकाला गया

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

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

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

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

  • इसे पहले रिलीज़ किया गया था.
  • यह नवीनतम जारी शाखा के किसी भी फ़्रेमवर्क मेनिफेस्ट में नहीं है।

विरासत एफसीएम

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

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

एफसीएम संस्करण जारी किए गए

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

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