सुपरएसयू बीटा: स्टॉक कर्नेल पर एंड्रॉइड लॉलीपॉप को रूट करें

ब्रेकिंग: चेनफ़ायर ने आज सुपरएसयू बीटा 2.27 की घोषणा की है, जो एंड्रॉइड 5.0 पर रूट एक्सेस का उपयोग करने के लिए कर्नेल रैमडिस्क संशोधनों की आवश्यकता को हटा देता है।

अब तक, यदि आप एंड्रॉइड 5.0 पर रूट प्राप्त करना चाहते थे, तो आपको कुछ SELinux प्रतिबंधों के आसपास काम करने के लिए अपने डिवाइस पर एक संशोधित कर्नेल फ्लैश करना होगा। XDA वरिष्ठ मान्यता प्राप्त डेवलपर जंजीर से आग लगाना हाल ही में पूर्व-आवश्यक जारी किया गया CF-ऑटो रूट पैकेज, जिसने AOSP पर install-recovery.sh स्क्रिप्ट से SELinux प्रतिबंध को हटाने के लिए आवश्यक कर्नेल रैमडिस्क संशोधन किया। हालाँकि, आज सुबह, चेनफ़ायर ने उनके जैसे कई चेहरों पर मुस्कान ला दी ट्विटर पर घोषणा की गई कि आगे चलकर इसकी आवश्यकता नहीं रहेगी।

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

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

पहले, SuperSU पहले से स्थापित AOSP का लाभ उठाता था फ़्लैश_रिकवरी सुपरएसयू डेमॉन शुरू करने के लिए सेवा (ओटीए इंस्टॉलेशन के बाद रिकवरी को अपडेट करने के लिए एओएसपी में उपयोग की जाती है) (जो वास्तव में उन ऐप्स के लिए रूट विशेषाधिकार प्रदान करती है जो इसका अनुरोध करते हैं)। लॉलीपॉप के जारी होने के साथ, इस सेवा को प्रतिबंधित SELinux संदर्भ में जोड़ा गया है, जिसका अर्थ है कि अब इसकी सिस्टम तक शुद्ध पहुंच नहीं है। पिछले कर्नेल संशोधनों ने इस स्क्रिप्ट से SELinux प्रतिबंधों को हटाने की मांग की थी।

चेनफ़ायर की सुपरएसयू की नवीनतम बीटा रिलीज़ कोर 'ज़ीगोट' सेवा (सभी जावा सेवाओं को लॉन्च करने के लिए ज़िम्मेदार है, और इस प्रकार डिवाइस पर इंस्टॉल किए गए सभी ऐप्स) का उपयोग करके इसे हल करती है। चूँकि Zygote Android L पर उपलब्ध एकमात्र सेवाओं में से एक है, जिसे रूट के रूप में शुरू किया गया है अप्रतिबंधित "init" SELinux संदर्भ, यह इसे संचालन में उपयोग के लिए एक प्रमुख लक्ष्य बनाता है सुपरएसयू. बूट के बाद, Zygote सेवा का SELinux "init" संदर्भ इसके अंतिम (प्रतिबंधित) "Zygote" संदर्भ में परिवर्तित हो जाता है। कोड को रूट उपयोगकर्ता के रूप में चलाने के लिए, चेनफ़ायर ज़ीगोट फ़ाइलों को सफलतापूर्वक संशोधित करने में कामयाब रहा है, अप्रतिबंधित "init" संदर्भ के भीतर, इस प्रकार SuperSU को बिना कर्नेल के Android L पर वापस लाया गया संशोधन.

यह पहली बार नहीं है कि चेनफ़ायर ने इन समस्याओं को हल करने के लिए ज़ायगोटे की ओर रुख किया है; पहले के 2.23 बीटा में Zygote का उपयोग संभवतः कुछ अन्य SELinux मुद्दों (जो एंड्रॉइड L पर रूट ऐप्स के खराब होने का कारण बन रहे थे) को रोकने के साधन के रूप में किया गया था। इसने कुछ (लेकिन सभी को नहीं) गैर-कार्यशील ऐप्स को काम करने की अनुमति दी - शेष को उनके डेवलपर्स द्वारा कुछ अपडेट की आवश्यकता होती है। दुर्भाग्य से, जब 5.0 AOSP कोड का परामर्श लिया गया, तो यह सामने आया कि Google ने Zygote सेवा पर कब्ज़ा करने की इस पद्धति को पहले ही तोड़ दिया है। यह देखते हुए कि ज़ायगोटे पर कब्ज़ा करने के उनके सभी पिछले प्रयास विफल रहे थे, यह एक आशाजनक कदम है।

चेनफ़ायर यह इंगित करने के लिए उत्सुक था कि सुपरएसयू लंबे समय से एक रनिंग सिस्टम पर SELinux नीतियों को संशोधित करने में सक्षम है (और इसमें आसानी के बारे में सावधान करता है) जो एक OEM इसे अक्षम कर सकता है, और वास्तव में सार्थक और सरल रूट एक्सेस को रोक सकता है), और Zygote में किए गए किसी भी संशोधन को कैसे किया जाना चाहिए ध्यान से, यह देखते हुए कि सेवा अलग-अलग संदर्भों से, अलग-अलग कार्यों के लिए चलाई जाती है, और इससे कई (बुरे) होने की संभावना बढ़ जाती है सूक्ष्म विफलताएँ. यह नया सुपरएसयू बीटा 2.27 उत्साही लोगों और अन्य तकनीकी विशेषज्ञों के लिए बनाया गया है, जिसके साथ वे खेल सकते हैं, ताकि पता लगा सकें कि क्या टूटता है। उंगलियां पार हो गईं - कोई अप्रत्याशित शो-स्टॉपर बग नहीं है, और यह आगे बढ़ने का एक व्यवहार्य तरीका है।

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

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

[यहां काम करने और इस लेख को तैयार करने में सहायता के लिए चेनफायर को बहुत-बहुत धन्यवाद।]