SultanXDA pojasnjuje enoten pristop ROM na OnePlus 3/3T

Obrnili smo se na SultanXDA, da bi se pozanimali, kako delujeta njegov poenoten ROM in jedro za OnePlus 3/3T. Berite naprej, ko bomo izvedeli!

Ko smo obravnavali tistega priznanega razvijalca XDA Sultanxda izdal svojega prilagojen CyanogenMod 13 ROM in jedro za OnePlus 3T, je bilo veliko ljudi presenečenih, ko so videli, da se "ista" zgradba ROM-a, ki je bila izdana za OnePlus 3T, prebija v OnePlus 3 (ali obratno!).

Sultanxda je sprejela enoten pristop k distribuciji ROM-ov za OnePlus 3 in OnePlus 3T zaradi njihove večinoma podobne strojne opreme in nizke ravni programske opreme. To je pomenilo, da je ROM ponujal navzkrižno združljivost med obema napravama, pri čemer je bilo mogoče dvojcu razdeliti isti ROM zip. Navzkrižno združljive zadrge so uporabnikom (in tudi razvijalcem) omogočile, da ne skrbijo, da bi pomotoma utripali napačno zadrgo in dobili zaklenjeno napravo. To ne pomeni, da je OnePlus 3/3T enostavno sestaviti – to le na splošno pomeni manj glavobolov za vse vpletene strani.

Obrnili smo se na XDA Recognized Developer

Sultanxda da nekoliko bolj osvetli celoten postopek, da bi spodbudil prevzem njegove metode. Tu so glavni izsledki pogovora z dodatnim poudarkom:

Kaj je drugače pri OnePlus 3/3T, kar omogoča poenotene ROM-e?

Razlog, zakaj je poenoten ROM mogoč, je ta, da je OnePlus poenotil BSP (lastniške knjižnice) [Board Support Package]. Čeprav je poenotenje jedra preprosto, je poenotenje ROM-a za razvijalce [ROM] običajno nemogoče zaradi nedoslednosti v BSP, ki jih lahko obravnava samo OEM. Z moje strani sem moral samo poenotiti jedro in ločiti nekaj slik vdelane programske opreme GPE. Slike vdelane programske opreme GPE se med Snapdragonom 820 in 821 razlikujejo, zato niso navzkrižno združljive. Spremenil sem jedro, da bi bilo naložite pravilno vdelano programsko opremo GPE za vsako napravo, da to popravite. jaz potem dodal ustrezne slike vdelane programske opreme v ROM v tej objavi. Preostale slike vdelane programske opreme, specifične za napravo (kot so slike modema), se nahajajo na particiji vdelane programske opreme na vsaki napravi, tako da problem GPU je bila edina težava, povezana z vdelano programsko opremo, s katero sem se srečal.

Kako ROM in jedro ugotovita, za katero napravo gre?

Jedro zaradi zagonskega nalagalnika ve, na kateri napravi se izvaja. Zagonski nalagalnik izbere konfiguracijo drevesa naprav (zapakirano v sliko jedra), ki se ujema z ID-jem njegove plošče, in posreduje to konfiguracijo v jedru. To daje jedru prilagodljivost za nalaganje ustreznih konfiguracij tako za OnePlus 3 kot za OnePlus 3T. Najdete lahko ID plošče za OnePlus 3 in OnePlus 3T s sledenjem hiperpovezavam.

Ali potrebujete samo spremenjeno jedro za podporo poenotenih gradenj?

Ne, tudi ROM mora biti poenoten. OnePlus je poenotil BSP, začenši z odprtimi beta različicami za OP3, in ga ohranil poenotenega v uradni izdaji OP3T OxygenOS. To pomeni, da morajo ROM-i uporabljati lastniške knjižnice bodisi iz različic Open Beta OP3 ali iz uradne izdaje OxygenOS OP3T, da so poenoteni. Obstaja tudi zahteva za sliko vdelane programske opreme GPE, ki sem jo opisal zgoraj, in zaslon na dotik OP3T vdelano programsko opremo je treba vključiti tudi v ROM (to je bilo dodano v potrditvi vdelane programske opreme GPE, s katero sem se povezal nad).

Obstaja tudi opozorilo glede poenotenega jedra: razvijalci morajo uporabiti moje jedro (ki je že poenoteno) ali pa morajo jedru OxygenOS OP3T dodati podporo za OP3. Podpore za OP3T ni mogoče preprosto dodati v jedro OP3 zaradi nepopolne podpore za Snapdragon 821, zato bo poenotenje morda zahtevalo veliko dela od voljnih razvijalcev OP3. Moje jedro je že imelo popolno podporo za Snapdragon 821, ko sem prejel OP3T (ker moje jedro temelji na veji Snapdragon 821 iz CAF), tako da je bil postopek poenotenja zame precej neboleč.

Prepričan sem, da bi veliko razvijalcev raje uporabilo jedro OxygenOS OP3T kot moje jedro, kar bi zahtevalo dodajanje podpore za OP3. Nisem razmišljal o izdelavi enotnega jedra za ROM-e OxygenOS, zato bo morda potrebno dodatno delo, da se to zgodi.

Ali lahko drugi razvijalci pogledajo kodo in vidijo, kako se to naredi?

ja Sultanxda omenja, da je vse njegovo delo javno dostopno na njegovem GitHub račun, tako da si lahko vsak s potrebnim znanjem in izkušnjami ogleda, kako je potekalo poenotenje ROM-a. Resda je postopek nekoliko zapleten in zahteva raven strokovnega znanja, vendar gre za zelo nastavljen in pozabljen proces s prednostmi, ki izvirajo iz manjšega vzdrževanja, manjšega podvajanja dela in izboljšanega občutek gotovosti, da ljudje ne bodo zamenjali datotek obeh naprav, saj za obe deluje samo en zip. Ko sta ROM ali jedro poenotena in potrjeno popolnoma funkcionalna na OnePlus 3 in OnePlus 3T, je potrebno zelo malo dodatnega dela.


Upamo, da smo razkrili nove informacije, ki bi morale pomagati več razvijalcem, da se odločijo za poenotene gradnje za naprave. Razvoj na OnePlus 3T raste, poenotene zgradbe pa so prihodnost za obe napravi.