SultanXDA განმარტავს ROM-ის ერთიან მიდგომას OnePlus 3/3T-ზე

ჩვენ მივმართეთ SultanXDA-ს, რათა გვეკითხა, როგორ მუშაობს მისი ერთიანი ROM და ბირთვი OnePlus 3/3T-ისთვის. წაიკითხეთ, როგორც გავიგებთ!

მაშინ, როდესაც ჩვენ გავაშუქეთ ის XDA აღიარებული დეველოპერი სულთანხდა გაათავისუფლეს მისი მორგებული CyanogenMod 13 ROM და ბირთვი OnePlus 3T-ისთვის, ბევრს გაუკვირდა, რომ დაინახა, რომ OnePlus 3T-ისთვის გამოშვებული "იგივე" ROM-ის კონსტრუქცია აგრძელებდა გზას OnePlus 3-ისკენ (ან პირიქით!).

Sultanxda-მ მიიღო ერთიანი მიდგომა ROM-ების განაწილებისთვის OnePlus 3 და OnePlus 3T მათი დიდწილად მსგავსი ტექნიკისა და დაბალი დონის პროგრამული უზრუნველყოფის გამო. ეს იმას ნიშნავდა, რომ ROM სთავაზობდა ჯვარედინი თავსებადობას ორივე მოწყობილობას შორის, სადაც იგივე ROM zip შეიძლება განაწილებულიყო დუეტზე. ჯვარედინი თავსებადი ზიპები საშუალებას აძლევს მომხმარებლებს (და დეველოპერებსაც) არ ინერვიულონ არასწორი zip-ის შემთხვევით გამორთვაზე და აგურის მოწყობილობის მიღებაზე. ეს არ ნიშნავს იმას, რომ OnePlus 3/3T ადვილად გამოსაყენებელია - ეს უბრალოდ იწვევს ნაკლებად თავის ტკივილს ყველა მონაწილე მხარისთვის.

ჩვენ მივმართეთ XDA-ს აღიარებულ დეველოპერს სულთანხდა მეტი სინათლე მოჰფინოს მთელ პროცედურას, რათა წაახალისოს მისი მეთოდის მიღება. აქ მოცემულია საუბრის ძირითადი ასპექტები დამატებითი აქცენტით:

რით განსხვავდება OnePlus 3/3T, რომელიც საშუალებას იძლევა ერთიანი ROM-ები?

მიზეზი, რის გამოც შესაძლებელია ერთიანი ROM, არის ის, რომ OnePlus-მა გააერთიანა BSP (დასაკუთრებული ბიბლიოთეკები) [Board Support Package]. მიუხედავად იმისა, რომ ბირთვის გაერთიანება მარტივია, ROM-ის გაერთიანება, როგორც წესი, შეუძლებელია [ROM] დეველოპერებისთვის BSP-ში არსებული შეუსაბამობების გამო, რომელთა მოგვარებაც მხოლოდ OEM-ს შეუძლია. ბოლოს, რაც მე უნდა გამეკეთებინა, იყო ბირთვის გაერთიანება და GPU-ს პროგრამული უზრუნველყოფის რამდენიმე სურათის გამოყოფა. GPU-ს პროგრამული უზრუნველყოფის სურათები განსხვავდება Snapdragon 820-სა და 821-ს შორის, ამიტომ ისინი არ არიან თავსებადი. მე შევცვალე ბირთვი მის გასაკეთებლად ჩატვირთეთ სწორი GPU firmware თითოეული მოწყობილობისთვის ამის გამოსწორება. მე მაშინ დაამატა შესაბამისი firmware სურათები ROM-ს ამ commit-ში. მოწყობილობის სპეციფიკური პროგრამული უზრუნველყოფის დანარჩენი სურათები (როგორიცაა მოდემის სურათები) განლაგებულია თითოეულ მოწყობილობაზე პროგრამული უზრუნველყოფის დანაყოფში, ასე რომ GPU პრობლემა იყო ერთადერთი პროგრამულ უზრუნველყოფასთან დაკავშირებული პრობლემა, რომელიც მე შემექმნა.

როგორ გაარკვიოს ROM და Kernel რომელი მოწყობილობაა?

ბირთვმა იცის, რომელ მოწყობილობაზე მუშაობს ჩამტვირთველის წყალობით. ჩამტვირთველი ირჩევს Device Tree-ის კონფიგურაციას (შეფუთულია ბირთვის სურათში), რომელიც შეესაბამება მის დაფის ID-ს და გადასცემს ამას კონფიგურაცია ბირთვზე ეს აძლევს ბირთვს მოქნილობას, ჩატვირთოს შესაბამისი კონფიგურაციები როგორც OnePlus 3-ისთვის, ასევე OnePlus 3T. თქვენ შეგიძლიათ იპოვოთ დაფის ID OnePlus 3 და OnePlus 3T ჰიპერბმულების მიყოლებით.

გჭირდება მხოლოდ შეცვლილი ბირთვი ერთიანი build-ების მხარდასაჭერად?

არა, ROM-იც უნდა იყოს უნიფიცირებული. OnePlus-მა გააერთიანა BSP დაწყებული Open Betas-დან OP3-ისთვის და შეინარჩუნა იგი ერთიან OP3T OxygenOS-ის ოფიციალურ გამოშვებაში. ეს ნიშნავს, რომ ROM-ებმა უნდა გამოიყენონ საკუთრების ბიბლიოთეკები OP3-ის Open Beta-ის ან OP3T-ის ოფიციალური OxygenOS გამოშვებიდან, რათა გაერთიანდნენ. ასევე არსებობს GPU firmware გამოსახულების მოთხოვნა, რომელიც ზემოთ აღვწერე, და OP3T-ის სენსორული ეკრანი პროგრამული უზრუნველყოფა ასევე უნდა იყოს ჩართული ROM-ში (ეს დამატებულია GPU-ს firmware commit-ში, რომელსაც მე მივუერთე ზემოთ).

ასევე, არის სიფრთხილე ერთიან ბირთვთან დაკავშირებით: დეველოპერებმა ან უნდა გამოიყენონ ჩემი ბირთვი (რომელიც უკვე ერთიანია), ან მათ უნდა დაამატონ OP3 მხარდაჭერა OP3T-ის OxygenOS ბირთვს. OP3T-ის მხარდაჭერა უბრალოდ არ შეიძლება დაემატოს OP3-ის ბირთვს Snapdragon 821-ის არასრული მხარდაჭერის გამო, ამიტომ გაერთიანებამ შეიძლება მოითხოვოს დიდი შრომა OP3-ის მსურველი დეველოპერებისგან. ჩემს ბირთვს უკვე ჰქონდა სრული Snapdragon 821 მხარდაჭერა, როდესაც მივიღე OP3T (რადგან ჩემი ბირთვი დაფუძნებულია CAF-ის Snapdragon 821 ფილიალზე), ამიტომ გაერთიანების პროცესი საკმაოდ უმტკივნეულო იყო ჩემთვის.

დარწმუნებული ვარ, ბევრი დეველოპერი ურჩევნია გამოიყენოს OP3T-ის OxygenOS ბირთვი, ვიდრე ჩემი ბირთვი, რაც მოითხოვს მასში OP3-ის მხარდაჭერის დამატებას. მე არ მიფიქრია ერთიანი ბირთვის შექმნა OxygenOS ROM-ებისთვის, ამიტომ შესაძლოა დამატებითი სამუშაო იყოს საჭირო ამის განსახორციელებლად.

შეუძლიათ სხვა დეველოპერებს გადახედონ კოდს და ნახონ, როგორ კეთდება ეს?

დიახ. Sultanxda აღნიშნავს, რომ მისი ყველა ნამუშევარი საჯაროდ არის ხელმისაწვდომი GitHub ანგარიშიასე რომ, ყველას, ვისაც აქვს საჭირო ნოუ-ჰაუ, შეუძლია ნახოს, როგორ განხორციელდა ROM-ის გაერთიანება. მართალია, პროცედურა ცოტა ჩართულია და მოითხოვს ექსპერტიზის დონეს, მაგრამ ეს არის ძალიან ბევრი დაყენების და დავიწყების პროცესი შეღავათებით, რომლებიც წარმოიქმნება მცირე შენარჩუნების, სამუშაოს ნაკლები დუბლირებისა და გაძლიერების სახით დარწმუნების გრძნობა, რომ ხალხი არ აგრევს ორი მოწყობილობის ფაილებს, რადგან მხოლოდ ერთი zip მუშაობს ორივესთვის. მას შემდეგ, რაც ROM ან ბირთვი გაერთიანებულია და დადასტურდება, რომ იგი სრულად ფუნქციონირებს როგორც OnePlus 3-ზე, ასევე OnePlus 3T-ზე, ძალიან ცოტა დამატებითი სამუშაოა საჭირო.


ვიმედოვნებთ, რომ გამოვავლინეთ ახალი ინფორმაცია, რომელიც უფრო მეტ დეველოპერს უნდა დაეხმაროს მოწყობილობების ერთიანი კონსტრუქციების არჩევაში. განვითარება OnePlus 3T-ზე იზრდებადა ერთიანი კონსტრუქციები მომავალი ორივე მოწყობილობის მომავალია.