FCM का लाइफ़साइकल

Android फ़्रेमवर्क की रिलीज़ में, फ़्रेमवर्क के साथ काम करने वाले कई मैट्रिक्स हैं (FCMs), हर अपग्रेड किए जा सकने वाले टारगेट FCM वर्शन के लिए एक वर्शन है. इससे यह तय होता है कि फ़्रेमवर्क इस्तेमाल कर सकता है और FCM वर्शन की ज़रूरी शर्तों को टारगेट कर सकता है. FCM के हिस्से के तौर पर लाइफ़साइकल, Android बंद कर देता है और HIDL HAL को हटाता है. इसके बाद, FCM फ़ाइलों में बदलाव करता है HAL वर्शन की स्थिति दिखाती है.

अपने नेटवर्क में फ़्रेमवर्क-ओनली ओटीए चालू करने के लिए, वे पार्टनर जो वेंडर इंटरफ़ेस को भी तरीकों का इस्तेमाल करना होगा.

शब्दावली

फ़्रेमवर्क कंपैटिबिलिटी मैट्रिक्स (FCM)
ऐसी एक्सएमएल फ़ाइल जो शर्तों का पालन करने वाले वेंडर के लिए, फ़्रेमवर्क की ज़रूरी शर्तों के बारे में बताती है लागू करना. साथ काम करने वाले मैट्रिक्स का वर्शन हो गया है और एक नया वर्शन भी उपलब्ध है को हर फ़्रेमवर्क की रिलीज़ के लिए फ़्रीज़ किया जाता है. हर फ़्रेमवर्क रिलीज़ में एक से ज़्यादा FCM.
प्लैटफ़ॉर्म FCM वर्शन (SF)
किसी फ़्रेमवर्क की रिलीज़ में सभी FCM वर्शन का सेट. यह फ़्रेमवर्क काम कर सकता है का इस्तेमाल करने के लिए कहें, जो कि इनमें से किसी एक FCM की शर्तों को पूरा करता हो.
FCM वर्शन (F)
किसी फ़्रेमवर्क की रिलीज़ में मौजूद सभी FCM में से सबसे नया वर्शन.
टारगेट FCM वर्शन (V)
टारगेट किया गया FCM वर्शन (SF से), डिवाइस में साफ़ तौर पर बताया गया हो जो वेंडर लागू करने की शर्तें पूरी करता है. वेंडर को लागू करने की प्रोसेस पब्लिश किए गए FCM के हिसाब से जनरेट होता है. हालांकि, वह एचएएल के नए वर्शन डिवाइस मेनिफ़ेस्ट.
HAL वर्शन
HAL वर्शन का फ़ॉर्मैट foo@x.y होता है, जिसमें foo HAL का नाम है और x.y इसका फ़ॉर्मैट है खास वर्शन; उदाहरण के लिए, nfc@1.0, keymaster@3.0 (रूट प्रीफ़िक्स, जैसे android.hardware, इस दस्तावेज़ में शामिल नहीं किया गया है.)
डिवाइस मेनिफ़ेस्ट
ऐसी एक्सएमएल फ़ाइलें जो यह तय करती हैं कि वेंडर इंटरफ़ेस के डिवाइस साइड के किस एचएएल वर्शन का इस्तेमाल किया जाएगा, इसमें वेंडर और ODM इमेज शामिल हैं. डिवाइस मेनिफ़ेस्ट का कॉन्टेंट ये है डिवाइस के टारगेट FCM वर्शन से सीमित होती है, लेकिन वह ऐसे एचएएल को लिस्ट कर सकती है: V. से जुड़ी एफ़सी के मुताबिक पूरी तरह से नया है.
डिवाइस एचएएल
ऐसे एचएएल जो डिवाइस मेनिफ़ेस्ट में दिए गए हैं और सूची में शामिल हैं फ़्रेमवर्क के साथ काम करने वाले मैट्रिक्स (FCM) में इस्तेमाल किया जा सकता है. ऐसा करना ज़रूरी या ज़रूरी नहीं है.
डिवाइस के साथ काम करने वाला मैट्रिक्स (डीसीएम)
ऐसी एक्सएमएल फ़ाइल जो शर्तों के पालन के लिए वेंडर की शर्तों के बारे में बताती है लागू करना. हर डिवाइस में एक डीसीएम होता है.
फ़्रेमवर्क मेनिफ़ेस्ट
एक्सएमएल फ़ाइल जिससे पता चलता है कि वेंडर के फ़्रेमवर्क साइड में एचएएल के कौनसे वर्शन हैं इंटरफ़ेस, जिसमें सिस्टम, System_ext, और प्रॉडक्ट इमेज शामिल हैं. इस ग्रुप के एचएएल डिवाइस के टारगेट FCM के हिसाब से, फ़्रेमवर्क मेनिफ़ेस्ट डाइनैमिक तौर पर बंद होता है वर्शन चुनें.
फ़्रेमवर्क एचएएल
एचएएल, जो फ़्रेमवर्क मेनिफ़ेस्ट में बताए गए तरीके से दिए गए हैं और इनमें से किसी एक के तौर पर सूची में शामिल हैं डिवाइस कंपैटबिलिटी मैट्रिक्स (डीसीएम) में यह ज़रूरी या वैकल्पिक है.

कोड बेस में FCM का लाइफ़साइकल

इस दस्तावेज़ में, ऐब्स्ट्रैक्ट में FCM लाइफ़साइकल के बारे में बताया गया है. देखने के लिए काम करता है, तो यहां जाएं: hardware/interfaces/compatibility_matrix.<FCM>.xml अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है FCM मिल सकता है system/libvintf/include/vintf/Level.h.

उससे जुड़े Android रिलीज़ वर्शन को शिप करने वाले डिवाइस में FCM मान समान स्तर से ज़्यादा या उसके बराबर है. उदाहरण के लिए, Android 11 के साथ डिवाइस शिपिंग करने में आम तौर पर FCM लेवल 5 होगा, लेकिन FCM लेवल 6 या उससे बाद का लेवल, जिसमें कई और शर्तें शामिल होती हैं कंपैटबिलिटी मैट्रिक्स में दी गई है. इस्तेमाल किए जा सकने वाले लेवल हैं:

FCM Android वर्शन
4 Android 10/Q
5 Android 11/R
6 Android 12/S
7 Android 13/T
8 Android 14/U
202404 Android 15/V

जब Android किसी FCM लेवल को बंद करता है, तब भी वह मौजूदा डिवाइसों पर काम करता है.

नए FCM वर्शन में डेवलप करना

Android, हर फ़्रेमवर्क की रिलीज़ के लिए FCM वर्शन को बढ़ाता है (जैसे कि Android 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. साथ काम करने वाले इस मैट्रिक्स को इंस्टॉल करने के लिए, इससे जुड़े बिल्ड नियम जोड़ें डिवाइस.

नए एचएएल के बारे में जानकारी

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

  • optional="false" अगर V = F के साथ शिप किए जाने वाले डिवाइसों को इस एचएएल के साथ लॉन्च किया जाना चाहिए,
  • अगर V = F के साथ भेजे जाने वाले डिवाइस, इस एचएएल के बिना लॉन्च किए जा सकते हैं, तो optional="true".

उदाहरण के लिए, Android 8.1 ने cas@1.0 को वैकल्पिक एचएएल के तौर पर पेश किया. डिवाइसों की सूची Android 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>

HAL (माइनर) अपग्रेड करना

डेवलपमेंट के दौरान, जब एचएएल का माइनर वर्शन, x.z से बदलकर, मौजूदा FCM वर्शन F पर x.(z+1), अगर वह वर्शन है:

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

उदाहरण के लिए, Android 8.1 ने broadcastradio@1.1 को एक माइनर वर्शन के तौर पर पेश किया है 1.0 एचएएल का अपग्रेड. पुराना वर्शन, broadcastradio@1.0, इसके लिए वैकल्पिक है Android 8.0 के साथ लॉन्च होने वाले डिवाइसों पर Android 8.1 के साथ लॉन्च होने वाले डिवाइसों के लिए broadcastradio@1.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>

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

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

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

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

FCM के नए वर्शन

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

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

उदाहरण के लिए, वीटीएस टेस्ट पक्का करें कि Android के साथ लॉन्च होने वाले डिवाइस 9 में, टारगेट FCM वर्शन >= 3 है.

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

एचएएल वर्शन का दिखना बंद हो गया है

एचएएल वर्शन को बंद करना डेवलपर का फ़ैसला है (यानी एओएसपी एचएएल के लिए, Google) फ़ैसला लेता है). ऐसा तब हो सकता है, जब एचएएल का नया वर्शन हो (चाहे वह छोटा हो या मेजर) रिलीज़ कर दिया गया हो.

डिवाइस के एचएएल का इस्तेमाल बंद करें

जब किसी डिवाइस के HAL foo@x.y को FCM वर्शन F में बंद कर दिया जाता है, तो इसका मतलब है कि टारगेट FCM वर्शन V = F या इसके बाद के वर्शन के साथ लॉन्च होने वाले किसी भी डिवाइस को foo को x.y या x.y से पुराने किसी भी वर्शन पर लागू करें. यह अब काम नहीं करता डिवाइसों को अपग्रेड करने के लिए, एचएएल वर्शन अब भी फ़्रेमवर्क के साथ काम करता है.

FCM वर्शन F रिलीज़ होने पर, एचएएल वर्शन foo@x.y को माना जाता है अगर एचएएल वर्शन के बारे में सबसे नए टारगेट FCM वर्शन V = F के लिए FCM. V = F के साथ लॉन्च होने वाले डिवाइसों के लिए, इनमें से एक तो ये शर्तें पूरी होती हैं:

  • फ़्रेमवर्क का इस्तेमाल करने के लिए, नया वर्शन (मेजर या माइनर) ज़रूरी है;
  • अब फ़्रेमवर्क को एचएएल की ज़रूरत नहीं है.

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

फ़्रेमवर्क एचएएल का इस्तेमाल बंद करना

जब FCM वर्शन F में किसी दिए गए फ़्रेमवर्क एचएएल foo@x.y के इस्तेमाल पर रोक लगा दी जाती है, तो इसका मतलब है टारगेट FCM वर्शन V = F या इसके बाद के वर्शन के साथ लॉन्च होने वाले किसी भी डिवाइस को हम उम्मीद करते हैं कि फ़्रेमवर्क, x.y या इससे पुराने वर्शन पर foo उपलब्ध कराएगा x.y से ज़्यादा है. एक काम न करने वाला एचएएल वर्शन अब भी डिवाइस अपग्रेड करने होंगे.

FCM वर्शन F रिलीज़ होने पर, एचएएल वर्शन foo@x.y को माना जाता है अगर फ़्रेमवर्क मेनिफ़ेस्ट तय करता है, तो इसका इस्तेमाल नहीं किया जा सकता foo@x.y विकेट खोकर max-level="F - 1" रन बनाए. लॉन्च होने वाले डिवाइसों के लिए V = F के साथ इस्तेमाल करने पर, फ़्रेमवर्क एचएएल foo@x.y उपलब्ध नहीं कराता. डिवाइस V = F के साथ लॉन्च होने वाले डिवाइसों पर काम करने वाले मैट्रिक्स में फ़्रेमवर्क शामिल नहीं होना चाहिए max-level < V वाले एचएएल.

उदाहरण के लिए, Android 12 में schedulerservice@1.0 बंद कर दिया गया है. इसके max-level एट्रिब्यूट को 5 पर सेट किया गया है. FCM वर्शन लॉन्च किया गया Android 11 में. यहां जाएं: Android 12 फ़्रेमवर्क मेनिफ़ेस्ट.

टारगेट FCM वर्शन के लिए सहायता हटाना

जब टारगेट FCM वर्शन V के चालू डिवाइस, तय की गई सीमा से कम हो जाते हैं थ्रेशोल्ड पर, टारगेट FCM वर्शन को अगला फ़्रेमवर्क रिलीज़ होगा. ऐसा करने के लिए, नीचे दिए गए दोनों चरण अपनाएं:

  1. compatibility_matrix.V.xml को बिल्ड के नियमों से हटाया जा रहा है (ताकि यह काम न करे को इंस्टॉल करता है) और कोई भी कोड जो लागू किया गया है या यह हटाई गई क्षमताओं पर निर्भर करता था.

  2. V से कम या इसके बराबर max-level वाले फ़्रेमवर्क एचएएल को को लागू करने वाला कोई भी कोड मिटा सकता है. फ़्रेमवर्क एचएएल.

किसी दिए गए फ़्रेमवर्क के लिए, SF के बाहर टारगेट FCM वर्शन वाले डिवाइस रिलीज़ को उस रिलीज़ पर अपग्रेड नहीं किया जा सकता.

एचएएल वर्शन की स्थिति

नीचे दिए सेक्शन में, (समय के हिसाब से) संभावित स्थितियों के बारे में बताया गया है एचएएल वर्शन के साथ काम करते हैं.

अप्रकाशित

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

  • Android 9 के डेवलपमेंट के दौरान health@2.0 एचएएल को रिलीज़ नहीं हुआ एचएएल माना जाता है और वह सिर्फ़ यहां मौजूद है compatibility_matrix.3.xml.
  • teleportation@1.0 एचएएल, किसी भी रिलीज़ किए गए कंपैटबिलिटी मैट्रिक्स में नहीं है और को रिलीज़ न किया गया एचएएल भी माना जाता है.

फ़्रेमवर्क एचएएल के लिए, अगर एचएएल वर्शन सिर्फ़ फ़्रेमवर्क मेनिफ़ेस्ट में है पब्लिश नहीं की गई है, तो इसे रिलीज़ नहीं माना जाता है.

रिलीज़ किया गया और मौजूदा

डिवाइस एचएएल के लिए, अगर एचएएल वर्शन किसी भी सार्वजनिक और फ़्रीज़ किए गए वर्शन में है रिलीज़ कर दिया जाता है. उदाहरण के लिए, FCM वर्शन 3 के बाद के वर्शन को फ़्रीज़ और पब्लिश किया जाना एओएसपी के तौर पर, health@2.0 एचएएल को रिलीज़ किया गया और मौजूदा एचएएल वर्शन माना जाता है.

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

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

रिलीज़ किया गया, लेकिन अब काम नहीं करता

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

  • यह रिलीज़ हो गया है.
  • यह कॉन्टेंट सार्वजनिक या फ़्रीज़ किए गए कंपैटबिलिटी मैट्रिक्स में नहीं है. इसमें FCM वर्शन.
  • यह एक सार्वजनिक और फ़्रोज़ेन कंपैटबिलिटी मैट्रिक्स में है इस्तेमाल किया जा सकता है.

उदाहरण:

इसलिए, power@1.0 मौजूदा है, लेकिन Android में इसे बंद नहीं किया गया है 9.

फ़्रेमवर्क एचएएल के लिए, अगर एचएएल वर्शन सबसे नए वर्शन के फ़्रेमवर्क मेनिफ़ेस्ट में होता है रिलीज़ की गई ब्रांच, जिसमें FCM वर्शन रिलीज़ से कम max-level एट्रिब्यूट है इस ब्रांच में, इसे रिलीज़ किया जा चुका, लेकिन अब काम नहीं करने वाला HAL वर्शन माना जाता है. इसके लिए उदाहरण के लिए, schedulerservice एचएएल को रिलीज़ किया गया है, लेकिन अब यह Android 12, जैसा कि Android 12 फ़्रेमवर्क मेनिफ़ेस्ट.

हटाया गया

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

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

कंपैटिबिलिटी मैट्रिक्स, जो सार्वजनिक हैं, फ़्रीज़ किए गए हैं, लेकिन फ़्रेमवर्क को कोडबेस में रखा जाता है, ताकि हटाए गए HAL वर्शन सेट किए जा सकें वीटीएस टेस्ट का इस्तेमाल करके यह पक्का किया जा सकता है कि हटाए गए एचएएल नए डिवाइसों पर न हों.

फ़्रेमवर्क एचएएल के लिए, एचएएल वर्शन को तब ही हटाया जाता है, जब ये मुलाकात:

  • यह पहले रिलीज़ किया गया था.
  • यह रिलीज़ की गई सबसे नई ब्रांच के किसी भी फ़्रेमवर्क मेनिफ़ेस्ट में नहीं है.

लेगसी FCM

टारगेट FCM वर्शन का लेगसी वर्शन, उन सभी डिवाइसों के लिए खास वैल्यू है जो ट्रेबल नहीं हैं. कॉन्टेंट बनाने लेगसी FCM, compatibility_matrix.legacy.xml में ज़रूरी शर्तों की सूची दी गई है जिसमें Android 8.0 से पहले लॉन्च किए गए डिवाइस शामिल हैं.

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

रिलीज़ किए गए FCM वर्शन

रिलीज़ किए गए FCM वर्शन की सूची यहां दी गई है: hardware/interfaces/compatibility_matrices.

Android की किसी खास रिलीज़ के साथ रिलीज़ किया गया FCM वर्शन ढूंढने के लिए, यहां देखें Level.h.