हम यह जानने के लिए सुल्तानएक्सडीए के पास पहुंचे कि वनप्लस 3/3टी के लिए उसकी एकीकृत रॉम और कर्नेल कैसे काम करती है। जैसे ही हमें पता चले, आगे पढ़ें!
जब हमने उस XDA मान्यता प्राप्त डेवलपर को कवर किया था सुलतानक्सदा उसे रिहा कर दिया वनप्लस 3T के लिए कस्टम CyanogenMod 13 ROM और कर्नेल, बहुत से लोग यह देखकर आश्चर्यचकित रह गए कि वनप्लस 3T के लिए जारी किया गया "वही" ROM बिल्ड वनप्लस 3 (या इसके विपरीत!) में आ गया।
सुलतानक्सडा ने ROM वितरित करने के लिए एकीकृत दृष्टिकोण अपनाया वनप्लस 3 और यह वनप्लस 3T उनके काफी हद तक समान हार्डवेयर और निम्न स्तर के सॉफ़्टवेयर के कारण। इसका मतलब यह था कि ROM दोनों डिवाइसों के बीच क्रॉस-संगतता की पेशकश करता था, जहां एक ही ROM ज़िप को दोनों डिवाइसों में वितरित किया जा सकता था। क्रॉस-संगत ज़िप ने उपयोगकर्ताओं (और डेवलपर को भी) को गलती से गलत ज़िप चमकाने और ईंट युक्त डिवाइस प्राप्त करने के बारे में चिंता करने की अनुमति नहीं दी। इसका मतलब यह नहीं है कि वनप्लस 3/3टी को बनाना आसान है - इसमें शामिल सभी पक्षों के लिए समग्र रूप से कम सिरदर्द शामिल है।
हमने XDA मान्यता प्राप्त डेवलपर से संपर्क किया
वनप्लस 3/3टी में क्या अलग है जो एकीकृत रोम की अनुमति देता है?
एकीकृत ROM संभव होने का कारण यह है कि वनप्लस ने बीएसपी (मालिकाना पुस्तकालय) [बोर्ड सपोर्ट पैकेज] को एकीकृत किया है। हालांकि कर्नेल को एकीकृत करना आसान है, बीएसपी में विसंगतियों के कारण [ROM] डेवलपर्स के लिए ROM को एकीकृत करना आम तौर पर असंभव है जिसे केवल OEM ही संबोधित कर सकता है। अपनी ओर से, मुझे बस कर्नेल को एकीकृत करना था और कुछ जीपीयू फ़र्मवेयर छवियों को अलग करना था। स्नैपड्रैगन 820 और 821 के बीच GPU की फ़र्मवेयर छवियां भिन्न हैं, इसलिए वे क्रॉस-संगत नहीं हैं। इसे बनाने के लिए मैंने कर्नेल को संशोधित किया सही GPU फर्मवेयर लोड करें इसे ठीक करने के लिए प्रत्येक डिवाइस के लिए। मैं फिर संबंधित फ़र्मवेयर छवियाँ जोड़ी गईं इस कमिट में ROM के लिए। बाकी डिवाइस-विशिष्ट फर्मवेयर छवियां (जैसे मॉडेम छवियां) प्रत्येक डिवाइस पर फर्मवेयर विभाजन में स्थित होती हैं, इसलिए जीपीयू समस्या यह एकमात्र फ़र्मवेयर-संबंधी समस्या थी जिसका मुझे सामना करना पड़ा.
ROM और कर्नेल कैसे पता लगाते हैं कि यह कौन सा उपकरण है?
बूटलोडर की बदौलत कर्नेल को पता है कि वह किस डिवाइस पर चल रहा है। बूटलोडर डिवाइस ट्री कॉन्फ़िगरेशन (कर्नेल छवि में पैक) का चयन करता है जो इसकी बोर्ड आईडी से मेल खाता है और इसे पास करता है कर्नेल पर कॉन्फ़िगरेशन यह कर्नेल को वनप्लस 3 और दोनों के लिए उपयुक्त कॉन्फ़िगरेशन लोड करने की लचीलापन देता है वनप्लस 3T. आप इसके लिए बोर्ड आईडी पा सकते हैं वनप्लस 3 और यह वनप्लस 3T हाइपरलिंक्स का अनुसरण करके।
क्या आपको एकीकृत बिल्ड का समर्थन करने के लिए केवल एक संशोधित कर्नेल की आवश्यकता है?
नहीं, ROM को भी एकीकृत किया जाना चाहिए। वनप्लस ने ओपी3 के लिए ओपन बीटा से शुरू करके बीएसपी को एकीकृत किया, और इसे आधिकारिक ओपी3टी ऑक्सीजनओएस रिलीज में एकीकृत रखा। इसका मतलब यह है कि एकीकृत होने के लिए ROM को या तो OP3 के ओपन बीटा बिल्ड या OP3T के आधिकारिक OxygenOS रिलीज़ से स्वामित्व वाली लाइब्रेरी का उपयोग करना होगा। इसमें GPU फर्मवेयर छवि आवश्यकता भी है जिसका मैंने ऊपर वर्णन किया है, और OP3T की टचस्क्रीन भी है फ़र्मवेयर को ROM में भी शामिल करने की आवश्यकता है (यह मेरे द्वारा लिंक किए गए GPU फ़र्मवेयर कमिट में जोड़ा गया था ऊपर)।
इसके अलावा, एकीकृत कर्नेल के लिए एक चेतावनी है: डेवलपर्स को या तो मेरे कर्नेल (जो पहले से ही एकीकृत है) का उपयोग करना होगा, या उन्हें ओपी 3 टी के ऑक्सीजनओएस कर्नेल में ओपी 3 समर्थन जोड़ना होगा। अधूरे स्नैपड्रैगन 821 समर्थन के कारण ओपी3टी के लिए समर्थन को ओपी3 के कर्नेल में आसानी से नहीं जोड़ा जा सकता है, इसलिए एकीकरण के लिए इच्छुक ओपी3 डेवलपर्स से बहुत काम करने की आवश्यकता हो सकती है। जब मुझे ओपी3टी प्राप्त हुआ तो मेरे कर्नेल में पहले से ही पूर्ण स्नैपड्रैगन 821 समर्थन था (चूंकि मेरा कर्नेल सीएएफ से स्नैपड्रैगन 821 शाखा पर आधारित है), इसलिए एकीकरण प्रक्रिया मेरे लिए दर्द रहित थी।
मुझे यकीन है कि बहुत से डेवलपर मेरे कर्नेल के बजाय OP3T के OxygenOS कर्नेल का उपयोग करेंगे, जिसके लिए इसमें OP3 के लिए समर्थन जोड़ने की आवश्यकता होगी। मैंने OxygenOS ROM के लिए एकीकृत कर्नेल बनाने पर विचार नहीं किया, इसलिए ऐसा करने के लिए अतिरिक्त कार्य की आवश्यकता हो सकती है।
क्या अन्य डेवलपर कोड पर नज़र डाल सकते हैं और देख सकते हैं कि यह कैसे किया जाता है?
हाँ। सुल्तानक्सडा का उल्लेख है कि उनका सारा काम सार्वजनिक रूप से उन पर उपलब्ध है गिटहब खाता, इसलिए आवश्यक जानकारी रखने वाला कोई भी व्यक्ति यह देख सकता है कि ROM एकीकरण कैसे किया गया था। माना कि प्रक्रिया थोड़ी उलझी हुई है और इसके लिए विशेषज्ञता के स्तर की आवश्यकता है, लेकिन यह एक बहुत ही सेट-एण्ड-फ़ॉरगेट प्रक्रिया है कम रखरखाव, काम के कम दोहराव और बेहतरी के रूप में होने वाले लाभों के साथ इस आश्वासन की भावना कि लोग दो उपकरणों की फ़ाइलों को भ्रमित नहीं करेंगे क्योंकि दोनों के लिए केवल एक ज़िप काम करता है। एक बार जब ROM या कर्नेल एकीकृत हो जाता है और वनप्लस 3 और वनप्लस 3टी दोनों पर पूरी तरह कार्यात्मक होने की पुष्टि हो जाती है, तो बहुत कम अतिरिक्त काम की आवश्यकता होती है।
हमें उम्मीद है कि हम नई जानकारी सामने लाएंगे जिससे अधिक डेवलपर्स को उपकरणों के लिए एकीकृत बिल्ड चुनने में मदद मिलेगी। वनप्लस 3टी पर विकास बढ़ रहा है, और एकीकृत बिल्ड आगे चलकर दोनों डिवाइसों का भविष्य हैं।