एंड्रॉइड 7.1 नौगट के लिए अनौपचारिक एक्सपोज़ड फ्रेमवर्क

एक फ्लैश करने योग्य ज़िप अब उपलब्ध है जो एक्सपोज़ड फ्रेमवर्क को एंड्रॉइड 7.1 नूगट रोम पर लाता है। ज़िप वनप्लस 3टी के साथ-साथ कई अन्य फोन पर भी काम करता है!

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

अब तक, नूगट पर एक्सपोज़ड का भविष्य थोड़ा अस्थिर दिख रहा था। रोवो89 - एक्सपोज़ड फ्रेमवर्क के पीछे डेवलपर - एक सप्ताह से कुछ अधिक समय पहले एंड्रॉइड नौगट के लिए समर्थन पर एक अपडेट प्रदान किया गया था. रोवो89 ने अनिवार्य रूप से कहा कि एक्सपोज़ड को नूगट पर ठीक से काम करने के लिए अभी भी बहुत काम किया जाना बाकी है, और हमें बस धैर्य रखना होगा।

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

), और इसे फ्लैश करने योग्य ज़िप के माध्यम से अन्य कस्टम रोम पर इंस्टॉल करने योग्य बनाने के लिए अनुकूलित किया (रोम को संकलित करते समय लागू करने के बजाय)।

वर्तमान में विभिन्न प्लेटफार्मों के लिए तीन संस्करण उपलब्ध हैं, जिनमें Xposed SDK25 भी शामिल है एआरएम64, एक्सपोज़ड SDK25 हाथ, और एक्सपोज़ड SDK25 एक्स86. PurifyOS टीम ने Android 7.1 पर आधारित OxygenOS पर चलने वाले वनप्लस 3T के साथ Xposed के इस नए संस्करण का परीक्षण किया है, लेकिन इसे काम करना चाहिए एंड्रॉइड नौगट चलाने वाले अन्य फोन और उपयोगकर्ता पहले से ही रिपोर्ट कर रहे हैं कि वे इसे विभिन्न रोम पर सफलतापूर्वक इंस्टॉल करने में सक्षम हैं और उपकरण। उदाहरण के लिए, वनप्लस 5 पर कुछ उपयोगकर्ताओं ने इसके काम करने की सूचना दी है (कोई आश्चर्य नहीं, यह देखते हुए कि यह वनप्लस पर चलता है 3T बिल्कुल ठीक है), लेकिन सैमसंग गैलेक्सी S6 के लिए AOSP-आधारित ROM चलाने वाले एक उपयोगकर्ता ने यह भी बताया कि यह उनके लिए काम करता है।

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

यदि आप इस बारे में अनिश्चित हैं कि आपका डिवाइस या ROM समर्थित है या नहीं, तो नियमित बैकअप बनाना सुनिश्चित करें और आगे बढ़ने से पहले थ्रेड को ध्यान से पढ़ें। अंत में, डुप्लिकेट प्रश्न छोड़ने से पहले "खोज" फ़ंक्शन का उपयोग करना सुनिश्चित करें। Android O शायद आने ही वाला है, लेकिन जैसा कि कहा जाता है, "देर आए दुरुस्त आए।" साथ ही, बहुत सारे उपयोगकर्ता काफी समय से अपने डिवाइस पर Android O नहीं देख पा रहे हैं, इसलिए Xposed एक अच्छा उपहार होना चाहिए ताकि आप पीछे छूटा हुआ महसूस न करें।


अद्यतन: रोवो89 की प्रतिक्रिया

मूल को एक्सपोज़ड फ्रेमवर्क, XDA वरिष्ठ मान्यता प्राप्त डेवलपर के पीछे विकसित किया गया रोवो89, इन हालिया घटनाक्रमों पर अपने विचारों के साथ जीथब पर प्रतिक्रिया दे रहा है।

अपने अनुभव से, मैं आपको बता सकता हूं कि मूल बातें पूरी करना वास्तव में उतना कठिन नहीं है, लेकिन विवरण के लिए बहुत समय लगता है। यह 80-20 नियम की तरह है, सिवाय इसके कि यह 95-5 या उससे भी अधिक जैसा है।

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

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

वह आगे कहता है:

इसके साथ फ़्लैश करने योग्य ज़िप प्रकाशित करने का कोई मतलब नहीं है, क्योंकि पोर्ट का उद्देश्य केवल ROM को स्क्रैच से पुनः संकलित करना है.

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

मैंने अभी-अभी अपना Git लॉग चेक किया और मैंने अक्टूबर में बुनियादी हुकिंग (जैसा कि इस पोर्ट में है) तैयार कर ली थी। तब से, मैंने सीमाएं हटाने पर काम किया है। पूर्व-संकलित ROM पर इसे और अधिक विश्वसनीय बनाने के लिए, मैं पुन: संकलित भाग को भी पोर्ट कर सकता था, हालाँकि यह अभी भी आदर्श नहीं है। जैसा कि ऊपर कहीं बताया गया है, अब हमारे पास JIT है, जो हमें सभी अनुकूलन रखने की अनुमति देता है, केवल उन तरीकों को अमान्य (और संभवतः पुन: संकलित) करता है जो सीधे हुकिंग से प्रभावित होते हैं। यह काफी चुनौतीपूर्ण है, क्योंकि यह केवल कॉपी और पेस्ट करने से कहीं अधिक है। और जब तक ऐसा नहीं हो जाता, मैं कुछ भी प्रकाशित नहीं करूंगा. उसके लिए 9 महीने (अब तक) वास्तव में एक लंबा समय है, मुझे पता है, लेकिन हे, यह मेरा खाली समय है और उदाहरण के लिए। में स्थानांतरित होने के कारण एक नया अपार्टमेंट, मैं एक्सपोज़ड पर कई महीनों तक काम नहीं कर सका (!), और अन्यथा मेरे पास बहुत सीमित समय था।

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


XDA मंचों पर नूगाट के लिए अनौपचारिक एक्सपोज़ड फ्रेमवर्क डाउनलोड करें