एंड्रॉइड 11 में डीएसयू लोडर डेवलपर्स को स्टॉक एंड्रॉइड पर ऐप्स का परीक्षण करने में मदद करता है

एंड्रॉइड 11 डेवलपर विकल्पों के भीतर डीएसयू लोडर के साथ आएगा जो आपको संगत जीएसआई को स्वचालित रूप से डाउनलोड और इंस्टॉल करने देगा! और अधिक के लिए आगे पढ़ें!

एक अच्छा ऐप इकोसिस्टम किसी ऑपरेटिंग सिस्टम की सफलता के सबसे महत्वपूर्ण स्तंभों में से एक है। Google और Apple दोनों अपने प्लेटफ़ॉर्म पर अच्छे एप्लिकेशन के मूल्य को पहचानते हैं, और इसलिए दोनों कंपनियां अपने उपयोगकर्ताओं और अपने ऐप डेवलपर्स की ज़रूरतों को संतुलित करने का प्रयास करती हैं। उपयोगकर्ता OSes में बदलाव के लिए दबाव डालते रहते हैं, और जबकि अधिकांश लोग आम तौर पर नई सुविधाओं की सराहना करते हैं ऐप डेवलपर्स के लिए परिवर्तन हमेशा मज़ेदार नहीं होते क्योंकि वे बहुत सी मुख्य कार्यक्षमताओं को बदल सकते हैं व्यवहार। उन डेवलपर्स के लिए जो अपने ऐप्स को प्रासंगिक बनाए रखने के लिए लगातार काम कर रहे हैं, इन परिवर्तनों से निपटने से उनकी बढ़ती कार्यसूची में इजाफा होता है। भले ही ये परिवर्तन सीधे उनके एप्लिकेशन को प्रभावित नहीं करते हैं, फिर भी डेवलपर्स को यह सुनिश्चित करना होगा कि उनके ऐप नए ओएस अपडेट पर काम करेंगे। एंड्रॉइड ऐप डेवलपर्स के लिए इस प्रक्रिया को आसान बनाने के लिए Google ने पिछले कुछ वर्षों में कई बदलाव किए हैं, और अब, एक नया एंड्रॉइड 11 में डीएसयू लोडर नामक फीचर, ऐप डेवलपर्स के लिए नए एंड्रॉइड पर अपने ऐप का परीक्षण करना और भी आसान बना देगा संस्करण.

इसकी शुरुआत प्रोजेक्ट ट्रेबल से होती है

एंड्रॉइड 8.0 में पेश किया गया प्रोजेक्ट ट्रेबल एक प्रमुख है एंड्रॉइड ओएस का पुनः आर्किटेक्चर. प्रोजेक्ट ट्रेबल का लक्ष्य एंड्रॉइड ओएस को दो बड़े हिस्सों में विभाजित करना था: फ्रेमवर्क और विक्रेता कार्यान्वयन ("विक्रेता" यहां किसी डिवाइस के भीतर पाए जाने वाले किसी भी मालिकाना हार्डवेयर घटक के निर्माता को संदर्भित करता है, आमतौर पर इसका संदर्भ होता है सिलिकॉन). एंड्रॉइड ओएस फ्रेमवर्क स्वयं ऑपरेटिंग सिस्टम है, जिसमें सभी सिस्टम ऐप्स, यूआई और उसके घटक और एपीआई शामिल हैं जो एंड्रॉइड डिवाइसों में साझा किए जाते हैं। विक्रेता कार्यान्वयन में विक्रेता एचएएल (हार्डवेयर एब्स्ट्रैक्शन लेयर्स) और लिनक्स कर्नेल और लिनक्स कर्नेल मॉड्यूल शामिल हैं।

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

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

जीएसआई का उद्भव

OEM के लिए यह परीक्षण करने के लिए कि क्या उन्होंने प्रोजेक्ट ट्रेबल को ठीक से कार्यान्वित किया है, Google का आदेश है कि OEM को डिवाइस पर AOSP से Android के एक साफ़ बिल्ड को बूट करने में सक्षम होना चाहिए। एंड्रॉइड के इस क्लीन बिल्ड को जेनेरिक सिस्टम इमेज या जीएसआई कहा जाता है। यदि जीएसआई बूट और अधिकांश बुनियादी हार्डवेयर ठीक से काम करते हैं, तो ओईएम को पता है कि उनका डिवाइस प्रोजेक्ट ट्रेबल की आवश्यकताओं को पूरा करता है। इस प्रकार जीएसआई का प्रारंभिक उद्देश्य ट्रेबल संगतता का परीक्षण करना था, लेकिन जैसा कि हमने एक्सडीए-डेवलपर्स में विकास समुदाय के साथ देखा है, उनका उपयोग अन्य उद्देश्यों के लिए किया जा सकता है। हमने देखा कि कैसे जी.एस.आई अनिवार्य रूप से भारी Android UX वाले उपकरणों को नई रिलीज़ के कुछ दिनों के भीतर कार्यशील सुविधाओं के साथ Android के नवीनतम संस्करण का आनंद लेने की अनुमति दे सकता है। लेकिन Google GSI के पीछे एक और उद्देश्य की कल्पना करता है: ऐप डेवलपर्स को अपने ऐप को एक नए एंड्रॉइड संस्करण पर एक भौतिक डिवाइस पर परीक्षण करने की क्षमता देना जो उनके पास पहले से ही है।

एंड्रॉइड 10 के साथ, Google ने डेवलपर्स के लिए अपना स्वयं का GSI बिल्ड जारी किया। Google ने इस विचार को पुख्ता किया कि ऐप डेवलपर्स को अपने स्वयं के हार्डवेयर पर एंड्रॉइड के स्वच्छ निर्माण को बूट करने के लिए जीएसआई का उपयोग करना चाहिए, जिससे स्टॉक एंड्रॉइड के खिलाफ उनके एप्लिकेशन के व्यवहार का परीक्षण करना आसान हो जाएगा। इस प्रकार इस पद्धति को OEM व्यवहार परिवर्तन के बिना स्टॉक एंड्रॉइड पर ऐप संगतता का परीक्षण करने के मौजूदा विकल्पों में जोड़ा गया है, अन्य हैं पिक्सेल स्मार्टफोन का उपयोग करना, एंड्रॉइड स्टूडियो के भीतर आधिकारिक एंड्रॉइड एमुलेटर का उपयोग करना, या क्लाउड पर डिवाइस इंस्टेंस पर ऐप बिल्ड को तैनात करना।

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

यहीं पर डायनामिक सिस्टम अपडेट आते हैं।

डायनामिक सिस्टम अपडेट बस जीएसआई स्थापित कर रहा है

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

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

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

हालाँकि यह प्रक्रिया अपरिचित लग सकती है, लेकिन उपयोग की तुलना में यह कहीं अधिक आसान और कम दखल देने वाली है फास्टबूट कमांड और मूल इंस्टॉलेशन सहित हर चीज की परेशानी से निपटना मिटा दिया. आपको एडीबी के कुछ ज्ञान और डीएसयू का उपयोग करने के इरादे की आवश्यकता है, लेकिन अधिकांश ऐप डेवलपर्स के लिए यह कोई समस्या नहीं होनी चाहिए। फिर भी, ऐसा कोई कारण नहीं है कि इस प्रक्रिया को और भी सरल नहीं बनाया जा सके। इसके अलावा, तथ्य यह है कि डीएसयू के माध्यम से जीएसआई स्थापित करने के लिए आपको अभी भी बूटलोडर को अनलॉक करने की आवश्यकता होती है, इस प्रक्रिया में सभी उपयोगकर्ता डेटा मिटा दिया जाता है। इस उद्देश्य से, Google ने GSI स्थापना के दोनों पहलुओं को बेहतर बनाने के लिए परिवर्तन लागू किए हैं। एंड्रॉइड 11 में, उन्होंने जीएसआई स्थापित करने के लिए कमांड लाइन का उपयोग करने की आवश्यकता को समाप्त कर दिया है। अलग से, उन्होंने बूटलोडर को अनलॉक किए बिना जीएसआई स्थापित करना भी संभव बना दिया है।

एंड्रॉइड 11 में डीएसयू लोडर

डीएसयू लोडर एंड्रॉइड 11 के डेवलपर विकल्पों में मौजूद एक नया टूल है जो आपको इसकी अनुमति देता है डाउनलोड करना और स्थापित करना किसी भी फास्टबूट या एडीबी कमांड को इनपुट करने की आवश्यकता के बिना Google का नवीनतम जीएसआई। बस सेटिंग्स के भीतर डीएसयू लोडर विकल्प पर टैप करें और एक डायलॉग बॉक्स सीधे Google से समर्थित जीएसआई की सूची के साथ दिखाई देगा। ये समर्थित GSI आपके वर्तमान OS और आर्किटेक्चर पर आधारित होंगे, इसलिए आप केवल वही GSI इंस्टॉल कर सकते हैं जो आपके OS संस्करण से नए हों और जो आपके SoC आर्किटेक्चर से मेल खाते हों। बस वह जीएसआई चुनें जिसे आप इंस्टॉल करना चाहते हैं और यह Google के सर्वर से डाउनलोड हो जाएगा और पृष्ठभूमि में स्वचालित रूप से इंस्टॉल हो जाएगा।

एंड्रॉइड 11 पर डीएसयू लोडर

डीएसयू लोडर के साथ, डेवलपर्स को जीएसआई स्थापित करने के लिए कभी भी कमांड लाइन को छूने की जरूरत नहीं पड़ती है। कम से कम, यह सपना तो है, क्योंकि हल करने के लिए अभी भी एक मुद्दा बाकी है।

आगे का रास्ता

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

एंड्रॉइड 10 जीएसआई लॉन्च आवश्यकताएँ

तो आप बूटलोडर को अनलॉक किए बिना या किसी कमांड-लाइन टूल का उपयोग किए बिना डीएसयू के माध्यम से जीएसआई को बूट करने की उम्मीद कब कर सकते हैं? उम्मीद है कि जल्द ही, जैसा कि Google ने हमें बताया था कि उन्हें यह सब ठीक से काम करने से पहले शुरुआती एंड्रॉइड 11 डेवलपर पूर्वावलोकन के साथ कुछ कमियों को दूर करना होगा। आगे बढ़ते हुए, कोई बूटलोडर को अनलॉक करने की आवश्यकता के बिना डीएसयू के माध्यम से भविष्य के डेवलपर पूर्वावलोकन जीएसआई को स्थापित करने की उम्मीद कर सकता है। शायद जब एंड्रॉइड 12 डेवलपर पूर्वावलोकन उपलब्ध कराए जाएंगे, तो आप एंड्रॉइड 11 के डेवलपर विकल्पों में डीएसयू लोडर का उपयोग करके इसे पूरी तरह से बूट करने में भी सक्षम होंगे। ऐप डेवलपर्स के लिए, इसका मतलब है कि नए एंड्रॉइड संस्करण पर चलने वाले भौतिक हार्डवेयर पर अपने एप्लिकेशन का परीक्षण करने का एक और तरीका होगा।