Android Q में डायनामिक सिस्टम अपडेट: प्रोजेक्ट ट्रेबल भविष्य के Android संस्करणों को कैसे बेहतर बनाएगा

Google ने डायनामिक सिस्टम अपडेट का खुलासा किया है, जो Android Q में GSI स्थापित करने का एक नया तरीका है जिसमें बूटलोडर को अनलॉक करने की आवश्यकता नहीं होती है।

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

एक्सडीए पर. Android Q रिलीज़ के लिए, Google GSI को दूसरे समूह: ऐप डेवलपर्स के लिए उपयोगी बनाना चाहता है।

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

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

(यह सुविधा पहले "लाइव इमेज," "डायनामिक एंड्रॉइड," और "एंड्रॉइड ऑन टैप" नाम से विकसित की गई थी, इसलिए अगर Google इसे कुछ हफ्तों या महीनों में कुछ और नाम दे तो आश्चर्यचकित न हों।)

Android Q में डायनामिक सिस्टम अपडेट

डीएसयू सुविधा का लक्ष्य डेवलपर को वर्तमान इंस्टॉलेशन में हस्तक्षेप किए बिना जीएसआई में बूट करने की अनुमति देना है। इसका मतलब है कि बूटलोडर को अनलॉक करने की आवश्यकता नहीं है और उपयोगकर्ता डेटा को मिटाने की आवश्यकता नहीं है। इंस्टॉलेशन प्रक्रिया भी बहुत सरल है क्योंकि Google ने ADB के माध्यम से एक कमांड लाइन इंटरफ़ेस और एक ऐप प्रदान किया है जिसे इंटेंट्स के माध्यम से नियंत्रित किया जा सकता है। DSU का उपयोग करके GSI को बूट करना इस प्रकार दिखता है:

इस वीडियो* में, Android Q बीटा 3 पर चलने वाला Google Pixel 3 XL GSI में रीबूट होता है। इस वातावरण में, एक ऐप डेवलपर क्यू एपीआई संगतता के लिए अपने ऐप को इंस्टॉल और परीक्षण कर सकता है। जब उनका परीक्षण पूरा हो जाता है, तो वे डिवाइस पर नियमित क्यू बीटा 3 सॉफ़्टवेयर में वापस रीबूट कर सकते हैं। आप मूल रूप से एक जीएसआई को दोहरी बूटिंग कर रहे हैं ताकि आप सुरक्षित रूप से अपने ऐप का परीक्षण कर सकें!

*हमने यह वीडियो Google I/O 2019 में रिकॉर्ड किया था जब DSU अभी तक सार्वजनिक रूप से उपलब्ध नहीं था, इसलिए फिल्माए गए Pixel 3 XL पर Q बीटा 3 बिल्ड को DSU समर्थन को शामिल करने के लिए Google द्वारा थोड़ा संशोधित किया गया था। Q बीटा 4 और उसके बाद के संस्करण चलाने वाले उपकरण DSU का समर्थन करने के लिए पात्र हैं यदि वे नीचे दी गई आवश्यकताओं को पूरा करते हैं।

डायनामिक सिस्टम अपडेट के लिए आवश्यकताएँ

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

अन्य आवश्यकताओं में एक रैमडिस्क शामिल है, जो यह तय करता है कि पुनर्प्राप्ति, सिस्टम, या तार्किक विभाजन को बूट करना है या नहीं, और जीएसआई के मेटाडेटा को संग्रहीत करने के लिए एक मेटाडेटा विभाजन। सामान्य तौर पर, DSU समर्थन के लिए बिल्डिंग ब्लॉक Android Q लॉन्च आवश्यकताएँ हैंप्रोजेक्ट ट्रेबल के प्रमुख इलियान मालचेव के अनुसार। हमें यकीन नहीं है अगर सब कुछ DSU का समर्थन करने के लिए यह एक Android Q लॉन्च आवश्यकता है, लेकिन हम यह मान सकते हैं कि अधिकांश नहीं तो सभी डिवाइस Android Q के साथ लॉन्च होंगे कर सकना डीएसयू का समर्थन करें, भले ही Google को वर्तमान में इसकी आवश्यकता न हो। अब तक, केवल Pixel 3, Pixel 3 XL, Pixel 3a और Pixel 3a XL में डायनामिक पार्टिशन हैं, और इनमें से केवल Pixel 3 और Pixel 3 XL ही Android Q बीटा 4 में DSU को सपोर्ट करते हैं। हालाँकि DSU समर्थन की आवश्यकता नहीं है, Google को उम्मीद है कि OEM इस सुविधा को वैसे भी सक्षम करेंगे क्योंकि यह ट्रेबल संगतता के लिए सुरक्षित रूप से परीक्षण को सरल बनाता है। उदाहरण के लिए, एक ओईएम सॉफ्टवेयर इंजीनियर जीएसआई लगा सकता है एक एसडी कार्ड पर ताकि वे ट्रेबल संगतता का परीक्षण करने के लिए कई उपकरणों पर तुरंत बूट कर सकें।

डायनामिक सिस्टम अपडेट के लिए सुरक्षा

चूंकि DSU अनिवार्य रूप से मिश्रण में एक दूसरा ऑपरेटिंग सिस्टम पेश करता है, Google को यह सुनिश्चित करने की आवश्यकता है कि डिवाइस की अखंडता को तोड़ने के लिए इस नए इंस्टॉलेशन के साथ छेड़छाड़ नहीं की जा सकती है। इस प्रकार मूल संस्थापन के लिए वही बुनियादी सुरक्षा सुरक्षा उपाय GSI संस्थापन के लिए भी मौजूद हैं: Android सत्यापित बूट और SELinux नीतियाँ। इसके अलावा, केवल INSTALL_DYNAMIC_SYSTEM हस्ताक्षर|विशेषाधिकार प्राप्त अनुमति वाले ऐप्स ही GSI आरंभ कर सकते हैं इंस्टॉलेशन, जबकि MANAGE_DYNAMIC_SYSTEM हस्ताक्षर अनुमति वाले ऐप्स GSI को सक्षम/अक्षम या मिटा सकते हैं स्थापना. इसका मतलब यह है कि केवल विश्वसनीय, सिस्टम-स्तरीय ऐप्स ही DSU के साथ काम कर सकते हैं।

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

जीएसआई स्थापित करना

यदि आपका डिवाइस Pixel 3 सीरीज की तरह DSU को सपोर्ट करता है, तो GSI इंस्टॉल करना आसान है। आपको सबसे पहले यह सुनिश्चित करना होगा कि डायनेमिक सिस्टम फीचर फ़्लैग दो तरीकों में से एक के माध्यम से सक्षम है:

  1. यदि आप यूजरडीबग बिल्ड पर हैं, तो सेटिंग्स > सिस्टम > डेवलपर विकल्प > फ़ीचर फ़्लैग में सेटिंग्स_डायनामिक_एंड्रॉइड फ़्लैग सक्षम करें।
  2. यदि आप उपयोगकर्ता बिल्ड पर हैं, तो निम्नलिखित adb शेल कमांड चलाएँ:
    setproppersist.sys.fflag.override.settings_dynamic_system 1

फिर, नवीनतम Android Q बीटा GSI डाउनलोड करें गूगल या आपके डिवाइस का OEM. (DSU केवल Google या OEM द्वारा हस्ताक्षरित GSI स्थापित करने की अनुमति देता है।) एक बार डाउनलोड हो जाने पर, उपयोग करें simg2img विरल छवि को कच्ची छवि में बदलने के लिए। कच्ची छवि को पैक करने के लिए gzip का उपयोग करें, और फिर परिणामी संग्रह को अपने डिवाइस के किसी स्थान पर कॉपी करें बाह्य भंडारण (उदा. /डेटा/मीडिया/0/डाउनलोड) या एक वास्तविक बाह्य भंडारण माध्यम (जैसे भौतिक एसडी) कार्ड). अंत में, इंस्टॉलेशन शुरू करने के सही इरादे से DynamicSystemInstallationService ऐप लॉन्च करें:

adb shell am start-activity \ -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \ -a android.os.image.action.START_INSTALL \ -d file:///storage/emulated/0/Download/system_raw.gz \ --el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \ --el KEY_USERDATA_SIZE 8589934592

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

डीएसयू के लिए पूर्ण जीएसआई इंस्टॉलेशन निर्देश पाए जा सकते हैं यहाँ. पर बग दर्ज किए जा सकते हैं Google समस्या ट्रैकर,reddit, या स्टैक ओवरफ़्लो.

डायनामिक सिस्टम अपडेट के पीछे का कारण

जब मैंने Google I/O पर इलियान मालचेव से बात की, तो उन्होंने वही दोहराया जो ट्रेबल टीम के हंग-यिंग तियान ने शीघ्र जीएसआई पहुंच के बारे में कहा था। नवंबर का एंड्रॉइड डेव शिखर सम्मेलन. Google ने DSU बनाया यथासंभव व्यापक दर्शकों से प्रतिक्रिया मांगें. लक्ष्य जीएसआई की गुणवत्ता में सुधार करना है, जो बदले में है भविष्य के Android रिलीज़ की गुणवत्ता में सुधार करता है चूँकि GSI Android का शुद्धतम रूप है। Google वर्तमान में एकमात्र कंपनी है जो अगले संस्करण GSI संगतता का परीक्षण करती है (उदाहरण के लिए, Android Q सिस्टम छवि Android P के शीर्ष पर कितनी अच्छी तरह काम करती है) विक्रेता कार्यान्वयन), लेकिन जैसे-जैसे अधिक लोग जीएसआई फ्लैश करते हैं और फीडबैक देते हैं, ओईएम ट्रेबल संगतता उल्लंघन को ठीक कर सकते हैं, इसलिए जीएसआई और भी बेहतर काम करेगा भविष्य। इलियान का कहना है कि OEM और क्वालकॉम जैसे विक्रेताओं की पिछले एंड्रॉइड रिलीज़ से विक्रेता छवियों को अगले संस्करण सिस्टम छवि के साथ पुन: उपयोग करने में गहरी रुचि है। डीएसयू जैसी पहल Google और ओईएम को वीटीएस और सीटीएस-ऑन-जीएसआई जैसे स्वचालित परीक्षणों से कवरेज में अंतर को पाटने में मदद करती है। इस प्रकार, Google को अगले एंड्रॉइड रिलीज़ पर प्रतिक्रिया देने के लिए अधिक बीटा परीक्षक मिलते हैं, साथ ही ट्रेबल संगतता उल्लंघन के बारे में भी सुनने को मिलता है ताकि OEM अपने काम में सुधार कर सकें।

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