SultanXDA izskaidro vienoto ROM pieeju OnePlus 3/3T

Mēs sazinājāmies ar SultanXDA, lai noskaidrotu, kā viņa vienotais ROM un kodols darbojas OnePlus 3/3T. Lasiet tālāk, kad to uzzināsim!

Kad mēs aprakstījām šo XDA atzīto izstrādātāju Sultanksda atlaida savu pielāgots CyanogenMod 13 ROM un kodols OnePlus 3T, daudzi cilvēki bija pārsteigti, redzot, ka "tā pati" ROM versija, kas tika izlaista OnePlus 3T, nonāk pie OnePlus 3 (vai otrādi!).

Sultanxda pieņēma vienotu pieeju ROM izplatīšanai OnePlus 3 un OnePlus 3T to lielā mērā līdzīgās aparatūras un zemā līmeņa programmatūras dēļ. Tas nozīmēja, ka ROM piedāvāja savstarpēju savietojamību starp abām ierīcēm, kur duetam varēja izplatīt vienu un to pašu ROM zip. Savstarpēji saderīgi rāvējslēdzēji ļāva lietotājiem (un arī izstrādātājam) neuztraukties par to, ka nejauši tiks parādīts nepareizs rāvējslēdzējs un ierīce tiks sabojāta. Tas nenozīmē, ka OnePlus 3/3T ir viegli montējams — tas tikai rada mazākas galvassāpes visām iesaistītajām pusēm.

Mēs sazinājāmies ar XDA atzīto izstrādātāju Sultanksda lai vairāk izskaidrotu visu procedūru, lai veicinātu viņa metodes pieņemšanu. Šeit ir galvenās sarunas atziņas ar papildu uzsvaru:

Kas atšķiras no OnePlus 3/3T, kas ļauj izmantot vienotus ROM?

Iemesls, kāpēc ir iespējama vienota ROM, ir tāpēc, ka OnePlus ir apvienojis BSP (patentētās bibliotēkas) [Board Support Package]. Lai gan kodola apvienošana ir vienkārša, [ROM] izstrādātājiem parasti nav iespējams apvienot ROM, jo BSP ir nekonsekvences, kuras var novērst tikai OEM. Manuprāt, viss, kas man bija jādara, bija apvienot kodolu un atdalīt dažus GPU programmaparatūras attēlus. GPU programmaparatūras attēli atšķiras starp Snapdragon 820 un 821, tāpēc tie nav savstarpēji saderīgi. Es modificēju kodolu, lai to izveidotu ielādējiet pareizo GPU programmaparatūru katrai ierīcei, lai to labotu. ES tad pievienoja atbilstošos programmaparatūras attēlus uz ROM šajā saistībā. Pārējie ierīcei specifiskie programmaparatūras attēli (piemēram, modema attēli) atrodas katras ierīces programmaparatūras nodalījumā, tāpēc GPU problēma bija vienīgā ar programmaparatūru saistītā problēma, ar kuru saskāros.

Kā ROM un kodols nosaka, kura ierīce tā ir?

Kodols zina, kurā ierīcē tas darbojas, pateicoties bootloader. Sāknēšanas ielādētājs atlasa ierīces koka konfigurāciju (iepakots kodola attēlā), kas atbilst tā dēļa ID un nodod šo konfigurācija kodolā Tas nodrošina kodolam elastību, lai ielādētu atbilstošās konfigurācijas gan OnePlus 3, gan OnePlus 3T. Jūs varat atrast tāfeles ID OnePlus 3 un OnePlus 3T sekojot hipersaitēm.

Vai jums ir nepieciešams tikai modificēts kodols, lai atbalstītu vienotas versijas?

Nē, arī ROM ir jābūt vienotam. OnePlus apvienoja BSP, sākot no OP3 atvērtajām beta versijām, un saglabāja to vienotu oficiālajā OP3T OxygenOS laidienā. Tas nozīmē, ka ROM ir jāizmanto patentētas bibliotēkas no OP3 atvērtās beta versijas vai OP3T oficiālā OxygenOS laidiena, lai tās būtu vienotas. Ir arī iepriekš aprakstītā GPU programmaparatūras attēla prasība un OP3T skārienekrāns programmaparatūra ir jāiekļauj arī ROM (tas tika pievienots GPU programmaparatūras apņemšanā, ar kuru es saitiju virs).

Ir arī brīdinājums attiecībā uz vienoto kodolu: izstrādātājiem ir vai nu jāizmanto mans kodols (kas jau ir vienots), vai arī jāpievieno OP3 atbalsts OP3T OxygenOS kodolam. Atbalstu OP3T nevar vienkārši pievienot OP3 kodolam nepilnīgā Snapdragon 821 atbalsta dēļ, tāpēc apvienošana var prasīt daudz darba no labprātīgiem OP3 izstrādātājiem. Manam kodolam jau bija pilnīgs Snapdragon 821 atbalsts, kad es saņēmu OP3T (jo mans kodols ir balstīts uz Snapdragon 821 atzaru no CAF), tāpēc apvienošanas process man bija diezgan nesāpīgs.

Esmu pārliecināts, ka daudzi izstrādātāji labprātāk izmantotu OP3T OxygenOS kodolu, nevis manu kodolu, tāpēc tam būtu jāpievieno atbalsts OP3. Es nedomāju izveidot vienotu kodolu OxygenOS ROM, tāpēc, iespējams, būs nepieciešams papildu darbs, lai tas notiktu.

Vai citi izstrādātāji var apskatīt kodu un redzēt, kā tas tiek darīts?

Jā. Sultanxda min, ka visi viņa darbi ir publiski pieejami viņa vietnē GitHub konts, tāpēc ikviens, kam ir nepieciešamās zināšanas, var redzēt, kā tika veikta ROM apvienošana. Protams, procedūra ir nedaudz iesaistīta un prasa zināmu zināšanu līmeni, taču tas ir ļoti daudz iestatīšanas un aizmirstības process ar priekšrocībām, kas izriet no mazākas uzturēšanas, mazākas darba dublēšanās un uzlabotas pārliecības sajūta, ka cilvēki nesajauks abu ierīču failus, jo abās darbojas tikai viens zip. Kad ROM vai kodols ir apvienots un apstiprināts, ka tas pilnībā darbojas gan OnePlus 3, gan OnePlus 3T, ir jāveic ļoti maz papildu darba.


Mēs ceram, ka esam atklājuši jaunu informāciju, kas palīdzēs lielākam skaitam izstrādātāju izvēlēties vienotas ierīču versijas. OnePlus 3T attīstība pieaug, un vienotas versijas ir abu ierīču nākotne.