SultanXDA selittää yhtenäisen ROM-lähestymistavan OnePlus 3/3T: ssä

click fraud protection

Otimme yhteyttä SultanXDA: han kysyäksemme, kuinka hänen yhdistetty ROM ja ydin toimivat OnePlus 3/3T: ssä. Lue eteenpäin, kun saamme tietää!

Kun käsittelimme XDA Recognized Developeria Sultanxda vapautti omansa mukautettu CyanogenMod 13 ROM ja ydin OnePlus 3T: lle, monet ihmiset olivat yllättyneitä nähdessään "sama" ROM-koontiversion, joka julkaistiin OnePlus 3T: lle, saapuvan OnePlus 3:een (tai päinvastoin!).

Sultanxda otti käyttöön yhtenäisen lähestymistavan ROM-levyjen jakeluun OnePlus 3 ja OnePlus 3T niiden suurelta osin samankaltaisten laitteistojen ja matalan tason ohjelmistojen vuoksi. Tämä tarkoitti, että ROM tarjosi ristiinyhteensopivuuden molempien laitteiden välillä, jolloin sama ROM-zip voitiin jakaa duolle. Ristiyhteensopivien vetoketjujen ansiosta käyttäjät (ja myös kehittäjät) eivät voineet huolehtia väärän vetoketjun vilkkumisesta vahingossa ja laitteen saamisesta muurattua. Tämä ei tarkoita, että OnePlus 3/3T olisi helppo rakentaa - se aiheuttaa vain vähemmän päänsärkyä kaikille osapuolille.

Otimme yhteyttä XDA Recognized Developeriin Sultanxda Valaisemaan hieman koko menettelyä kannustaakseen omaksumaan hänen menetelmänsä. Tässä keskustelun tärkeimmät poimintakohdat korostetusti:

Mitä eroa on OnePlus 3/3T: ssä, joka sallii yhdistetyt ROM-levyt?

Syy siihen, miksi yhtenäinen ROM on mahdollista, johtuu siitä, että OnePlus on yhdistänyt BSP: n (omistusoikeudelliset kirjastot) [Board Support Package]. Vaikka ytimen yhdistäminen on helppoa, ROM-levyn yhdistäminen on yleensä mahdotonta [ROM]-kehittäjille johtuen BSP: n epäjohdonmukaisuudesta, joihin vain OEM voi puuttua. Minun täytyi vain yhdistää ydin ja erottaa joitakin GPU-laiteohjelmistokuvia. GPU: n laiteohjelmistokuvat eroavat Snapdragon 820:n ja 821:n välillä, joten ne eivät ole ristiinsopivia. Muokkasin ydintä niin lataa oikea GPU-laiteohjelmisto kunkin laitteen korjaamiseksi. minä sitten lisäsi vastaavat laiteohjelmistokuvat ROM-muistiin tässä toimituksessa. Loput laitekohtaisista laiteohjelmistokuvista (kuten modeemikuvat) sijaitsevat kunkin laitteen laiteohjelmisto-osiossa, joten GPU-ongelma oli ainoa laiteohjelmistoon liittyvä ongelma, jonka kohtasin.

Miten ROM ja ydin selvittävät, mikä laite se on?

Ydin tietää, millä laitteella se on käynnissä käynnistyslataimen ansiosta. Käynnistyslatain valitsee Device Tree -kokoonpanon (pakattu ytimen otteeseen), joka vastaa sen korttitunnusta ja välittää tämän määritykset ytimeen Tämä antaa ytimelle joustavuutta ladata sopivat kokoonpanot sekä OnePlus 3:lle että OnePlus 3T. Löydät taulun tunnuksen OnePlus 3 ja OnePlus 3T seuraamalla hyperlinkkejä.

Tarvitsetko vain muokatun ytimen tukemaan yhtenäisiä koontiversioita?

Ei, ROM: in on myös oltava yhtenäinen. OnePlus yhtenäisti BSP: n OP3:n avoimesta betaversiosta alkaen ja piti sen yhtenäisenä virallisessa OP3T OxygenOS -julkaisussa. Tämä tarkoittaa, että ROM-levyjen on käytettävä omaa kirjastoa joko OP3:n Open Beta -versiosta tai OP3T: n virallisesta OxygenOS-julkaisusta, jotta ne voidaan yhdistää. Mukana on myös GPU-laiteohjelmiston kuvavaatimus, jonka kuvasin edellä, ja OP3T: n kosketusnäyttö laiteohjelmisto on myös sisällytettävä ROM: iin (tämä lisättiin GPU-laiteohjelmiston sitoumukseen, johon linkitin edellä).

Yhdistetyssä ytimessä on myös varoitus: kehittäjien on joko käytettävä ydintäni (joka on jo yhdistetty) tai heidän on lisättävä OP3-tuki OP3T: n OxygenOS-ytimeen. Tukea OP3T: lle ei voida yksinkertaisesti lisätä OP3:n ytimeen puutteellisen Snapdragon 821 -tuen vuoksi, joten yhdistäminen voi vaatia paljon työtä halukkailta OP3-kehittäjiltä. Ytimelläni oli jo täydellinen Snapdragon 821 -tuki, kun sain OP3T: n (koska ytimeni perustuu CAF: n Snapdragon 821 -haaraan), joten yhdistämisprosessi oli minulle melko kivuton.

Olen varma, että monet kehittäjät käyttäisivät mieluummin OP3T: n OxygenOS-ydintä kuin minun ydintäni, mikä vaatisi OP3-tuen lisäämistä siihen. En halunnut tehdä yhtenäistä ydintä OxygenOS-ROM-levyille, joten sen toteuttaminen saattaa vaatia lisätyötä.

Voivatko muut kehittäjät katsoa koodia ja nähdä, miten tämä tehdään?

Joo. Sultanxda mainitsee, että kaikki hänen työnsä ovat julkisesti saatavilla hänellä GitHub-tili, joten jokainen, jolla on tarvittava tietotaito, voi nähdä, kuinka ROM-yhdistäminen tehtiin. Tosin menettely on hieman vaativa ja vaatii asiantuntemusta, mutta se on hyvin pitkälle asetettu ja unohda prosessi etuja, jotka ovat peräisin pienemmästä ylläpidosta, vähemmän päällekkäisistä töistä ja parannetusta varmuus siitä, että ihmiset eivät sekoita kahden laitteen tiedostoja, koska vain yksi zip toimii molemmissa. Kun ROM tai ydin on yhdistetty ja varmistettu täysin toimivaksi sekä OnePlus 3:ssa että OnePlus 3T: ssä, tarvitaan vain vähän lisätyötä.


Toivomme, että tuomme esiin uutta tietoa, jonka pitäisi auttaa useampia kehittäjiä valitsemaan laitteille yhtenäiset koontiversiot. OnePlus 3T: n kehitys on kasvussa, ja yhtenäiset koontiversiot ovat molempien laitteiden tulevaisuus tulevaisuudessa.