ए/बी विभाजन और निर्बाध अपडेट XDA पर कस्टम विकास को कैसे प्रभावित करते हैं

आपने पहले सीमलेस अपडेट के बारे में सुना होगा। इसमें "ए/बी विभाजन" नामक कुछ शामिल है। यह क्या है और यह XDA पर कस्टम विकास को कैसे प्रभावित करता है?

जब एंड्रॉइड नौगट जारी हुआ, तो हमने इसके बारे में बात की सभी प्रकार की नई सुविधाएँ. हमें लंबे समय से प्रतीक्षित मल्टीविंडो क्षमताओं और वल्कन ग्राफिक्स एपीआई समर्थन के साथ स्टार्टर्स के लिए एक नया अपडेटेड यूजर इंटरफेस मिला है। लेकिन एक अंडर-द-हुड जोड़ अधिकांश उपयोगकर्ताओं के सिर के ऊपर से उड़ गया। एंड्रॉइड नौगट ने ए/बी विभाजन का समर्थन करने वाले उपकरणों पर "सीमलेस अपडेट" पेश किया। मौजूदा अधिकांश एंड्रॉइड डिवाइसों (नए Google Pixel और Google Pixel XL को छोड़कर) में उस समय A/B विभाजन नहीं था और इस प्रकार वे निर्बाध अपडेट का लाभ नहीं उठा सके। इस सुविधा का मूल आधार यह है कि डिवाइस में सिस्टम, बूट, विक्रेता और अन्य महत्वपूर्ण विभाजन का दूसरा सेट होता है, और जब आपको ओटीए मिलता है अद्यतन करें, अद्यतन पृष्ठभूमि में होता है जबकि विभाजन का दूसरा सेट पैच किया जाता है जो आपको अद्यतन सॉफ़्टवेयर बिल्ड में निर्बाध रूप से रीबूट करने देता है। यदि कोई अपडेट विफल हो जाता है, तो आपको कार्यशील बिल्ड पर वापस भेज दिया जाएगा, जिसका अर्थ है कि कंपनियों को निपटने के लिए कम सिरदर्द होंगे और उपभोक्ताओं को बेहतर सुरक्षा मिलेगी।

प्रोजेक्ट ट्रेबल के विपरीत, किसी भी नए एंड्रॉइड डिवाइस के लिए निर्बाध अपडेट का समर्थन करना एक आवश्यकता नहीं है। इस प्रकार, अधिकांश नए एंड्रॉइड डिवाइस इस सुविधा का समर्थन नहीं करते हैं। हम अब तक सभी समर्थित उपकरणों की एक सूची रखते रहे हैं, और यह स्पष्ट है कि यह सुविधा व्यापक रूप से समर्थित नहीं है। यह शर्म की बात है क्योंकि ए/बी विभाजन नियमित उपयोगकर्ताओं और पावर-उपयोगकर्ताओं दोनों के लिए समान रूप से बहुत सारे लाभ लाता है। हालाँकि, इस सुविधा की उत्साही समुदाय में थोड़ी खराब प्रतिष्ठा है क्योंकि ऐसा माना जाता है कि यह एंड्रॉइड विकास और फ्लैशिंग कस्टम संशोधनों को और अधिक कठिन बना देता है। यह वास्तव में मामला नहीं है, इसलिए हम निर्बाध अपडेट को उजागर करना चाहते थे और यह बताना चाहते थे कि ए/बी विभाजन XDA पर कस्टम विकास को कैसे प्रभावित करते हैं।

XDA के वरिष्ठ सदस्य को बहुत धन्यवाद एनपीजॉन्सन, ए इसमें योगदानकर्ता LineageOS और का रखवाला मोटोरोला मोटो Z2 फोर्स, जिन्होंने इस लेख की तथ्य जांच करने में हमारी मदद की।


Android डिवाइस पर विभाजन

विभाजन फ़ोन के आंतरिक संग्रहण पर बस एक अलग अनुभाग है जहां डेटा रखा जाता है। प्रत्येक विभाजन पर किस प्रकार का डेटा रखा जाता है यह हार्डवेयर, ऑपरेटिंग सिस्टम और कई अन्य कारकों पर निर्भर करता है। बूटलोडर में एक होगा, सिस्टम (एंड्रॉइड ओएस) में एक होगा, उपयोगकर्ता डेटा में एक होगा... और इतने पर और आगे। जब आप देखते हैं कि लोग "/system" और "/cache" के बारे में बात करते हैं, तो वे उन विभाजनों के लिए दिए गए नामों का उल्लेख कर रहे हैं। उदाहरण के लिए, वनप्लस 6 में है 72 विभाजन. यह बहुत कुछ लगता है, लेकिन वनप्लस 6 उन उपकरणों में से एक है जो निर्बाध अपडेट का समर्थन करता है, जिसका अर्थ है कि इनमें से कई विभाजन बस एक दूसरे के डुप्लिकेट हैं।

वनप्लस 6 पर विभाजन का आंशिक आउटपुट। कुछ ए/बी विभाजन प्रदर्शन उद्देश्यों के लिए रेखांकित किए गए हैं।

किसी डिवाइस पर बहुत सारे विभाजन होते हैं जिनके बारे में एक उपयोगकर्ता के रूप में आपको कभी भी चिंता करने की आवश्यकता नहीं होगी। कस्टम रोम, कर्नेल, पुनर्प्राप्ति, या मैजिक या एक्सपोज़ड जैसे संशोधनों को फ्लैश करते समय इनमें से कई विभाजन कभी भी संशोधित नहीं होते हैं। इनमें से बहुत से विभाजन या तो हमारे उद्देश्यों के लिए अप्रयुक्त होंगे या छूने के लिए बहुत खतरनाक होंगे जब तक कि आप नहीं जानते कि आप क्या कर रहे हैं (Huawei/Honor पर XLOADER और OEMINFO) डिवाइस दिमाग में आते हैं।) एंड्रॉइड उपयोगकर्ताओं के विशाल बहुमत के लिए, हम जिन विभाजनों से निपटते हैं वे हैं सिस्टम, बूट, रिकवरी, उपयोगकर्ता डेटा और हाल ही में विक्रेता और vbmeta. यहां प्रत्येक विभाजन के उद्देश्य का संक्षिप्त विवरण दिया गया है:

  • सिस्टम - एंड्रॉइड ओएस, सिस्टम लाइब्रेरी, सिस्टम ऐप्स और अन्य सिस्टम मीडिया जैसे बूटएनिमेशन, स्टॉक वॉलपेपर, रिंगटोन इत्यादि रखता है।
  • बूट - कर्नेल, रैमडिस्क और ए/बी डिवाइस पर भी रिकवरी को होल्ड करता है
  • पुनर्प्राप्ति - पुनर्प्राप्ति को बनाए रखता है, जहां TWRP आमतौर पर A-केवल डिवाइस पर फ्लैश किया जाता है (A/B डिवाइस में समर्पित पुनर्प्राप्ति विभाजन नहीं होता है)
  • उपयोगकर्ताडेटा - आपके सभी ऐप, सिस्टम और आंतरिक स्टोरेज डेटा को रखता है
  • विक्रेता - प्लेटफ़ॉर्म और डिवाइस-विशिष्ट एचएएल रखता है, अंतर्निहित हार्डवेयर के साथ संचार करने के लिए एंड्रॉइड ओएस के लिए आवश्यक फ़ाइलें
  • vbmeta - एंड्रॉइड सत्यापित बूट 2.0 के लिए विभाजन जो बूट प्रक्रिया की अखंडता की पुष्टि करता है

डिवाइस ओईएम अपनी विभाजन योजनाओं को किसी भी लेआउट का उपयोग करने के लिए बदल सकते हैं जो वे चाहते हैं। उदाहरण के लिए, Huawei बूट विभाजन को ramdisk_recovery और कर्नेल में विभाजित करता है। बहुत सारे अतिरिक्त विभाजन भी हैं जिनमें अन्य सिस्टम ऐप्स जैसे कस्टम, उत्पाद और OEM शामिल हो सकते हैं, और जबकि इन्हें संशोधित करना सुरक्षित है, यदि आप स्टॉक में वापस लौटना अपने लिए आसान बनाना चाहते हैं तो आम तौर पर इसकी अनुशंसा नहीं की जाती है। तो ए/बी विभाजन कहाँ भूमिका निभाते हैं?


ए/बी विभाजन योजना

निर्बाध अपडेट वाले डिवाइस पर अपडेट कैसे काम करते हैं

मेरे द्वारा नीचे बनाई गई बहुत ही सरल छवि यह दर्शाती है कि ए/बी विभाजन समर्थन वाले डिवाइस पर अपडेट को कैसे प्रबंधित किया जाता है। जो विभाजन चित्रित किया गया है वह सिस्टम विभाजन है, हालांकि बूट और विक्रेता जैसे अन्य विभाजन भी OEM से किसी दिए गए ओटीए अपडेट के साथ अपडेट किए जा सकते हैं। यह अपडेट प्रक्रिया न केवल प्रमुख एंड्रॉइड वर्जन अपडेट के साथ बल्कि सुरक्षा पैच अपडेट के साथ भी होती है।

  1. हम दो सिस्टम विभाजन, system_a और system_b से शुरू करते हैं, दोनों Android के एक ही संस्करण पर हैं।
  2. यह मानते हुए कि system_a सक्रिय है, OTA अद्यतन system_b, निष्क्रिय विभाजन, को पृष्ठभूमि में पैच कर देगा।
  3. system_a निष्क्रिय पर सेट है और उपयोगकर्ता के रीबूट होते ही system_b सक्रिय हो जाता है।
  4. अब निष्क्रिय विभाजन, system_a, को अगला OTA अपडेट जारी होने पर अपडेट किया जाएगा।

इस अद्यतन प्रक्रिया के क्या लाभ हैं?

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

A/B विभाजन योजना का किसी उपकरण के भंडारण पर क्या प्रभाव पड़ता है?

क्या तथ्य यह है कि निर्बाध अपडेट के परिणामस्वरूप डुप्लिकेट किए गए विभाजनों का एक समूह बनता है, इसका मतलब यह है कि आप भंडारण स्थान का एक गुच्छा खो रहे हैं? बिल्कुल नहीं. Google का कहना है कि /कैश और /रिकवरी विभाजन को हटाने के कारण निर्बाध अद्यतन समर्थन वाले डिवाइस केवल कुछ सौ मेगाबाइट तक ही कम होने चाहिए। दोनों को हटाने से विभाजन का दूसरा सेट जोड़ने की लागत संतुलित हो जाती है। Google के अनुसार, Pixel की A/B सिस्टम छवि केवल A-सिस्टम छवि के आधे आकार की है। अधिकांश अतिरिक्त संग्रहण उपयोग वास्तव में दूसरे विक्रेता विभाजन के जुड़ने से आता है। यह समझ में आता है क्योंकि विक्रेता विभाजन में ओईएम (प्रोजेक्ट ट्रेबल का हिस्सा) द्वारा उपयोग की जाने वाली सभी मालिकाना बायनेरिज़ शामिल हैं, इसलिए इसमें काफी जगह लगने की उम्मीद है। हालाँकि Google 4GB स्टोरेज वाले डिवाइस पर A/B विभाजन की अनुशंसा नहीं करता है (क्योंकि यह कुल उपलब्ध स्टोरेज का लगभग 10% है), वे 8GB और उससे अधिक वाले डिवाइस पर इसकी अनुशंसा करते हैं।

यहां A/B विभाजन के साथ और उसके बिना Google Pixel पर उपयोग किए जाने वाले संग्रहण स्थान का विवरण दिया गया है।

विभाजन का आकार

ए/बी

ए-केवल

बूटलोडर

50एमबी*2

50एमबी

गाड़ी की डिक्की

32एमबी*2

32एमबी

वसूली

32एमबी

कैश

100 एमबी

रेडियो

70एमबी*2

70एमबी

विक्रेता

300एमबी*2

300एमबी

प्रणाली

2048एमबी*2

4096एमबी

कुल

5000एमबी

4680एमबी

पुनर्प्राप्ति विभाजन का क्या हुआ?

एंड्रॉइड डिवाइस पर अंतर्निहित लिनक्स कर्नेल ही एंड्रॉइड को स्मार्टफोन पर हार्डवेयर को पहचानने और ठीक से उपयोग करने देता है। केवल-ए एंड्रॉइड डिवाइस पर, आपके पास आमतौर पर कर्नेल के दो संस्करण होते हैं: एक पुनर्प्राप्ति विभाजन के अंदर पैक किया जाता है जबकि दूसरा बूट विभाजन में पैक किया जाता है। निर्बाध अद्यतनों का समर्थन करने वाले ए/बी उपकरणों पर, पुनर्प्राप्ति अब कर्नेल के साथ बूट छवि के अंदर है। पुनर्प्राप्ति का मुख्य कार्य अद्यतन स्थापित करना था, लेकिन चूंकि इसे सिस्टम द्वारा ही नियंत्रित किया जाता है (अद्यतन_इंजन) जबकि एंड्रॉइड बूट हो गया है, समर्पित पुनर्प्राप्ति विभाजन की अब आवश्यकता नहीं है।

ए/बी उपकरणों पर एक कस्टम रिकवरी स्थापित करने के लिए, हमें बूट विभाजन को संशोधित करना होगा और स्टॉक रिकवरी को अपने से बदलना होगा। यही कारण है कि TWRP स्थापित करने के लिए आपको पहले एक कस्टम बूट छवि को बूट करने के लिए फास्टबूट कमांड का उपयोग करना होगा तब TWRP इंस्टॉलेशन स्क्रिप्ट को फ्लैश करें, क्योंकि फास्टबूट विभाजन को पैच नहीं कर सकता है - केवल उन पर पूरी तरह से फ्लैश करता है। आप तकनीकी रूप से अपनी मौजूदा बूट छवि को TWRP के साथ प्री-पैच कर सकते हैं और फिर इसे फास्टबूट के माध्यम से फ्लैश कर सकते हैं, लेकिन यह इसके लायक होने की तुलना में अधिक परेशानी वाली बात है। TWRP इंस्टॉलर स्क्रिप्ट TWRP स्थापित करने के लिए बूट_ए और बूट_बी दोनों विभाजनों को पैच करती है।

मजेदार तथ्य: एंड्रॉइड अपडेट_इंजन जो निर्बाध अपडेट को संभालता है वह मूल रूप से सीधे क्रोम ओएस से लिया गया है। केवल नवीन लॉगकैट की जांच करने वाले किसी भी व्यक्ति के लिए भ्रम की स्थिति से बचने के लिए update_engine के लॉग से "Chrome OS" वाले स्ट्रिंग हटा दिए गए थे।

क्या मेरा एंड्रॉइड स्मार्टफोन निर्बाध अपडेट के लिए ए/बी विभाजन का समर्थन करता है?

हालांकि हम सभी उपकरणों की एक सूची रखें जो इसका समर्थन करता है, आप खुद भी आसानी से जांच कर सकते हैं.


निर्बाध अपडेट कस्टम विकास को कैसे प्रभावित करते हैं?

ए/बी विभाजन के बारे में उपयोगकर्ता की धारणा

कई उपयोगकर्ताओं द्वारा कस्टम सॉफ़्टवेयर विकास में बाधा माने जाने वाले, निर्बाध अपडेट वास्तव में डेवलपर्स के लिए एक वरदान हैं। ऐसा माना जाता है कि ए/बी उपकरणों में खराब विकास समर्थन का कारण पहले ए/बी उपकरणों की कीमत में कमी है। आख़िरकार, Google Pixel डिवाइस निर्बाध अपडेट का समर्थन करने वाले पहले उपकरणों में से कुछ थे और पिछले साल के Nexus स्मार्टफ़ोन की तुलना में वे अपेक्षाकृत महंगे थे। इसके अलावा, Google द्वारा Android OS में किए जा रहे असंख्य सुधारों के लिए धन्यवाद, जिन्होंने कस्टम ROM बनाए हैं और Google उपकरणों पर कम लोकप्रिय संशोधनों के कारण, Google Pixel स्मार्टफ़ोन हमारे मंचों पर Nexus की तरह लोकप्रिय नहीं हो पाए स्मार्टफोन्स। बाहरी कारकों के संयोजन के कारण Google Pixel स्मार्टफ़ोन पर कस्टम विकास में कमी आई, हालाँकि अधिकांश उपयोगकर्ताओं ने इसके बजाय A/B विभाजन समर्थन को दोष देना चुना। Google Pixel जैसे डिवाइस पर कस्टम डेवलपमेंट की उपलब्धता की तुलना Xiaomi Mi A1 जैसे डिवाइस से करें हमारे मंचों पर.

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

डेवलपर्स ए/बी विभाजन को कैसे देखते हैं

ROM का निर्माण करते समय, डेवलपर्स अलग-अलग बिल्ड का परीक्षण करने के लिए दोनों विभाजनों का उपयोग कर सकते हैं। यदि कोई काम नहीं करता है, तो वे कार्यशील विभाजन पर वापस लौट सकते हैं और अपनी ROM का पुनर्निर्माण कर सकते हैं। डेवलपर्स केवल एक अद्यतन स्थापित करके, सक्रिय विभाजन को स्विच करके और डेटा मिटाए बिना दोनों की तुलना करके प्रतिगमन का परीक्षण कर सकते हैं। यहां बताया गया है कि LineageOS टीम A/B विभाजन समर्थन को कैसे देखती है:

"एंड्रॉइड समुदाय के कई लोगों ने ए/बी को 'समर्थन करने में कठिन' और 'डेवलपर अनुकूल नहीं' बताया है, जबकि वास्तव में, इसे ठीक से लागू किया गया है समर्थन करना आसान है और बिल्कुल डेवलपर के अनुकूल।" - ज्रिज़ोली, वंशावली चेंजलॉग 19

डेवलपर्स के लिए ए/बी समर्थन में प्रारंभिक कठिनाई इन उपकरणों का समर्थन करने के लिए अपने मौजूदा टूल को संशोधित करने से आई। मैजिक के डेवलपर टॉपजॉनवु ने Google Pixel के एक साल बाद इसके लिए आधिकारिक समर्थन जोड़ा जारी किया गया—इसलिए नहीं कि यह कठिन था, बल्कि इसलिए क्योंकि उसे वास्तव में उपकरण प्राप्त करने में एक वर्ष लग गया पर काम। TWRP समर्थन बहुत जल्दी आ गया प्रमुख डेवलपर, डीज़_ट्रॉय द्वारा इस पर रोक लगाने के बाद ए/बी उपकरणों पर। वंशावलीओएस 15.1 अब समर्थन करता है स्वयंसेवकों को अपनी addon.d स्क्रिप्ट को ठीक करने के लिए समय मिलने के बाद A/B डिवाइस।

कस्टम रिकवरी, कर्नेल या अन्य मॉड वाले ए/बी डिवाइस को कैसे अपडेट करें

कस्टम रोम

कस्टम ROM वाले डिवाइस पर अपडेट फ्लैश करने का मतलब है कि आपको इस बात से भी सावधान रहना होगा कि आप किस स्लॉट को फ्लैश कर रहे हैं, है ना? काफी नहीं। TWRP वास्तव में आपके लिए बहुत कुछ संभाल लेगा, और यह कस्टम ROM को फ्लैश करने के लिए निष्क्रिय स्लॉट पर डिफॉल्ट करता है। यदि आपका सक्रिय स्लॉट A है और आप एक कस्टम ROM फ्लैश करते हैं, तो आप वास्तव में स्लॉट B पर फ्लैश कर रहे हैं। जब आप रीबूट करते हैं, तो सक्रिय स्लॉट अब बी है। डेवलपर्स इंस्टॉलेशन स्क्रिप्ट को संशोधित कर सकते हैं और अंतिम उपयोगकर्ता के लिए इसे आसान बनाने के लिए दोनों स्लॉट पर फ्लैश कर सकते हैं, हालांकि अधिकांश कस्टम ROM इंस्टॉलेशन स्क्रिप्ट वर्तमान में केवल एक ही स्लॉट पर फ्लैश करती हैं। अंत में, कस्टम ROM अपने ROM में A/B अपडेटर लागू कर सकते हैं ताकि उपयोगकर्ताओं को इसके साथ खिलवाड़ करने की आवश्यकता न हो अपडेट को मैन्युअल रूप से फ़्लैश करना—नवीनतम LineageOS 15.1 में एक Lineage अपडेटर टूल और XDA वरिष्ठ सदस्य शामिल हैं यूएसए-रेडड्रैगन बना एक जेनेरिक ए/बी अपडेटर जिसका उपयोग अन्य डेवलपर्स कर सकते हैं।

स्टॉक रोम

लेकिन क्या यह समस्याग्रस्त नहीं है यदि आपका डिवाइस विभिन्न संशोधनों के साथ स्टॉक रॉम चला रहा है और आप इन सभी मॉड्स को खोए बिना अपडेट इंस्टॉल करना चाहते हैं? ऐसा तब हो सकता है जब आप अपडेट इंस्टॉल करने के सही चरण नहीं जानते हों। उदाहरण के लिए, वनप्लस 6 पर, आप अपने संशोधित डिवाइस पर एक वृद्धिशील ओटीए फ्लैश नहीं कर सकते क्योंकि वृद्धिशील ओटीए आपकी संशोधित बूट छवि को पैच करने का प्रयास करेगा। इस प्रकार, आप संभवतः एक बूटलूप के साथ समाप्त हो जाएंगे, और इसीलिए आपको अपनी संशोधित बूट छवि को पूरी तरह से अधिलेखित करने के लिए पूर्ण ROM अपडेट को फ्लैश करना होगा। TWRP, मैजिक और वैकल्पिक रूप से एक कस्टम कर्नेल को बरकरार रखते हुए अपने वनप्लस 6 पर ऑक्सीजनओएस अपडेट इंस्टॉल करने के लिए आपको सामान्य कदम उठाने होंगे।

  1. नवीनतम डाउनलोड किया गया पूर्ण रोम ज़िप
  2. पुनर्प्राप्ति में पूर्ण ROM ज़िप को फ्लैश करें
  3. (वैकल्पिक) फ़्लैश कस्टम कर्नेल
  4. फ़्लैश TWRP इंस्टॉलर
  5. पुनर्प्राप्ति के लिए सीधे रीबूट करें
  6. फ़्लैश मैजिक

Google Pixel डिवाइस पर, आप कर सकते हैं डेटा मिटाए बिना फ़ैक्टरी छवि फ़्लैश करें, फिर TWRP को बूट करें, इंस्टॉल स्क्रिप्ट के माध्यम से TWRP इंस्टॉल करें, फिर Magisk इंस्टॉल करें।

अलग-अलग विभाजन छवियों को फ्लैश करने के लिए एक अद्यतन निकाला जा रहा है

कई ए/बी डिवाइसों के लिए अद्यतन फ़ाइलें केवल ए-डिवाइस की तुलना में थोड़ी भिन्न होती हैं। वे अब केवल एक ज़िप फ़ाइल नहीं हैं जिसमें बहुत सारी छवियां हैं (Google और रेज़र की फ़ैक्टरी छवियों को छोड़कर), इसके बजाय, वे एक payload.bin फ़ाइल के रूप में हैं। आप इस फ़ाइल को निकाल सकते हैं और प्रत्येक भाग को मैन्युअल रूप से फ़्लैश कर सकते हैं, लेकिन ऐसा करने के लिए एक विशेष उपकरण की आवश्यकता होती है। यदि आप यह सीखने में रुचि रखते हैं कि वनप्लस 6, श्याओमी एमआई ए1 और कई अन्य ए/बी डिवाइस पर ऐसा कैसे करें, तो आगे पढ़ें।

Payload.bin निकालने के लिए सेटिंग की जा रही है

  1. सुनिश्चित करें कि आपके पास Python 3.6 है इंस्टॉल किया.
  2. Payload_dumper.py और update_metadata_pb2.py डाउनलोड करें यहाँ.
  3. अपना OTA ज़िप निकालें और payload.bin को इन फ़ाइलों के समान फ़ोल्डर में रखें।
  4. अपने ओएस के आधार पर पावरशेल, कमांड प्रॉम्प्ट या टर्मिनल खोलें।
  5. निम्नलिखित आदेश दर्ज करें: python -m pip install protobuf
  6. जब यह समाप्त हो जाए, तो यह आदेश दर्ज करें: python payload_dumper.py payload.bin
  7. यह payload.bin फ़ाइल के भीतर मौजूद छवियों को आपके मौजूदा फ़ोल्डर में निकालना शुरू कर देगा।

यदि आप चाहें तो अब आप इनमें से प्रत्येक छवि को फास्टबूट के माध्यम से अलग से फ्लैश कर सकते हैं। अगला भाग आपको दिखाता है कि यह कैसे करना है।

निर्बाध अपडेट का समर्थन करने वाले डिवाइस पर छवियों को फ्लैश करने के लिए फास्टबूट का उपयोग करना

ऐसे कई आदेश हैं जो ए/बी विभाजन सिस्टम उपकरणों के लिए विशिष्ट हैं। आप अपने सक्रिय स्लॉट और फ़्लैश को विशिष्ट स्लॉट में बदल सकते हैं। यदि आपके पास प्रोजेक्ट ट्रेबल है-संगत डिवाइस और सीखना चाहते हैं कि कैसे करें जेनेरिक सिस्टम छवियाँ फ़्लैश करें, आपको इन आदेशों से परिचित होना चाहिए। नीचे दी गई तालिका पर एक नजर डालें.

फास्टबूट कमांड

आज्ञा

वर्तमान सक्रिय स्लॉट प्राप्त करें

फास्टबूट गेटवार सभी | grep "current-slot" यदि आप Windows PC पर हैं, तो "grep" कमांड काम नहीं करेगा।

अन्य स्लॉट को सक्रिय के रूप में सेट करें

फास्टबूट सेट_एक्टिव अन्य

निर्दिष्ट स्लॉट को सक्रिय के रूप में सेट करें

fastboot set_active $ORfastboot --set-active=_$slotजहां $ या तो a या b है

वर्तमान स्लॉट में निर्दिष्ट विभाजन पर छवि फ़्लैश करें

फास्टबूट फ्लैश पार्टीशन पार्टीशन.आईएमजी

निर्दिष्ट स्लॉट में निर्दिष्ट विभाजन पर छवि फ़्लैश करें

फास्टबूट फ्लैश पार्टीशन_ए पार्टीशन.आईएमजीफास्टबूट फ्लैश पार्टीशन_बी पार्टीशन.आईएमजी

(नोट: ए/बी डिवाइस पर, आप या तो फ्लैश करने के लिए किसी विशेष स्लॉट में एक विभाजन निर्दिष्ट कर सकते हैं या आप स्लॉट प्रत्यय को छोड़ सकते हैं और यह वर्तमान सक्रिय स्लॉट पर फ्लैश हो जाएगा। उदाहरण के लिए, आप फ़्लैश कमांड में "विभाजन" को "सिस्टम", "सिस्टम_ए", या "सिस्टम_बी" से बदल सकते हैं।)

विंडोज़ पीसी पर, आप ग्रेप का उपयोग नहीं कर सकते हैं, इसलिए बस उस हिस्से को हटा दें और "करंट-स्लॉट" देखें।

प्रोजेक्ट ट्रेबल और सीमलेस अपडेट पर एक शब्द

एक आम ग़लतफ़हमी यह है कि प्रोजेक्ट ट्रेबल समर्थन और ए/बी विभाजन समर्थन एक दूसरे से संबंधित हैं, लेकिन वास्तव में ऐसा नहीं है। एक के होने का मतलब दूसरा नहीं है. Motorola Moto Z2 Force A/B विभाजन योजना का उपयोग करता है लेकिन ट्रेबल का समर्थन नहीं करता है। दूसरी ओर, हॉनर 9 लाइट प्रोजेक्ट ट्रेबल को सपोर्ट करता है, फिर भी यह ए-ओनली डिवाइस है।

हॉनर 9 लाइट प्रोजेक्ट ट्रेबल को सपोर्ट करता है लेकिन सीमलेस अपडेट को सपोर्ट नहीं करता है

अक्सर पूछे जाने वाले प्रश्न/सारांश

  • ए/बी विभाजन के क्या लाभ हैं?
    • ए/बी विभाजन आपको अपने एंड्रॉइड स्मार्टफोन का उपयोग करते समय उसे अपडेट करने की अनुमति देता है, जब आप नए संस्करण में बूट करने के लिए तैयार हों तो बस रीबूट करें। यह ईंटों से सुरक्षा के रूप में भी कार्य करता है - यदि अपडेट गलत हो जाता है तो आप कार्यशील इंस्टाल पर वापस चले जाएंगे।
  • क्या ए/बी विभाजन होने से विकास में बाधा आती है?
    • हालाँकि इसे अनुकूलित करने में डेवलपर्स को थोड़ा समय लगा, लेकिन इसका उत्तर लगभग 'नहीं' है। वास्तव में, यह डेवलपर्स की मदद कर सकता है क्योंकि वे प्रतिगमन की जांच के लिए अपने कस्टम ROM को पुराने संस्करण और एक नए परीक्षण संस्करण के साथ डुअल बूट कर सकते हैं।
  • ए/बी विभाजन कस्टम कर्नेल, मैजिक, या एक्सपोज़ड जैसे मॉड को कैसे प्रभावित करते हैं?
    • इन्हें स्थापित करते समय आपको सावधान रहना होगा, लेकिन फिलहाल कोई समस्या नहीं है। मैजिक आधिकारिक तौर पर निर्बाध अपडेट वाले उपकरणों का समर्थन करता है, और जब तक आप चीजों को सही क्रम में फ्लैश करते हैं, आपको कोई समस्या नहीं होनी चाहिए। अपने अन्य मॉड को फ्लैश करने से पहले कस्टम कर्नेल को फ्लैश करना सुनिश्चित करें, और आपको जाने के लिए तैयार रहना चाहिए।
  • क्या मैं प्रत्येक विभाजन और दोहरे बूट पर दो अलग-अलग रोम फ्लैश कर सकता हूँ?
    • सिद्धांत रूप में, हाँ. हालाँकि, साझा डेटा विभाजन के कारण समस्याएँ उत्पन्न होती हैं, इसलिए इसकी अनुशंसा नहीं की जाती है।
  • क्या ए/बी विभाजन योजना होने का मतलब यह है कि मैंने भंडारण कम कर दिया है?
    • नहीं! Google का कहना है कि जो डिवाइस निर्बाध अपडेट का समर्थन करते हैं, वे इसका समर्थन करने के लिए केवल कुछ सौ मेगाबाइट स्टोरेज का त्याग करते हैं। लाभ उस लागत से कहीं अधिक है।
  • मेरा उपकरण ए/बी विभाजन का समर्थन करता है, क्या इसका मतलब यह है कि मैं प्रोजेक्ट ट्रेबल जेनेरिक सिस्टम इमेज का उपयोग कर सकता हूं?
    • आवश्यक रूप से नहीं। प्रोजेक्ट ट्रेबल और ए/बी समर्थन असंबंधित हैं। Motorola Moto Z2 Force प्रोजेक्ट ट्रेबल का समर्थन नहीं करता है, फिर भी यह A/B विभाजन योजना का समर्थन करता है।
  • मेरा उपकरण प्रोजेक्ट ट्रेबल का समर्थन करता है, क्या इसका मतलब यह है कि मेरे पास ए/बी विभाजन योजना है?
    • ऐसी स्थिति हर बार नहीं होती है। हॉनर 9 लाइट इसका प्रमुख उदाहरण है क्योंकि यह प्रोजेक्ट ट्रेबल को सपोर्ट करता है लेकिन इसमें ए/बी पार्टीशन स्कीम नहीं है।
  • मुझे पहले फास्टबूट के साथ TWRP को बूट करने और फिर उसे फ्लैश करने की आवश्यकता क्यों है?
    • इसका कारण यह है कि फास्टबूट कैसे काम करता है और यह तथ्य कि पुनर्प्राप्ति विभाजन अब मौजूद नहीं है। पुनर्प्राप्ति को बूट विभाजन के अंदर रखा गया है, इसलिए हमें बूट_ए और बूट_बी दोनों को संशोधित करना होगा। आप फ़ास्टबूट में किसी पार्टीशन को पैच नहीं कर सकते, केवल उस पर फ़्लैश कर सकते हैं। सिद्धांत रूप में, आप एक प्रीपैच्ड बूट छवि बना सकते हैं और फिर उसे फ्लैश कर सकते हैं।
  • क्या ए/बी विभाजन से कोई खतरा है? रोलबैक सुरक्षा चीज़ों को कैसे प्रभावित करती है?
    • Google ने इसे कोई मुद्दा न बनाने की भरसक कोशिश की है, लेकिन Motorola Moto Z2 के मामले में बलपूर्वक, एंड्रॉइड पर अपग्रेड करने के बाद किसी डिवाइस के पुराने स्लॉट को पुनः सक्रिय करने के ज्ञात मामले थे ओरियो. इसका मतलब यह हुआ कि रोलबैक सुरक्षा शुरू हो गई, और डिवाइस मालिक केवल ईडीएल रिकवरी के साथ अपने स्मार्टफोन को बचा सकते थे। Google का कहना है कि रोलबैक सुरक्षा केवल पहले बूट के बाद ही शुरू होती है, इसलिए अपडेट के बाद स्लॉट को पूरी तरह से काम करना होगा, इससे पहले कि आप डाउनग्रेड न कर सकें।