SultanXDA vysvětluje jednotný přístup ROM na OnePlus 3/3T

Oslovili jsme SultanXDA, abychom se zeptali, jak funguje jeho sjednocená ROM a jádro pro OnePlus 3/3T. Čtěte dál, jak to zjistíme!

Když jsme se zabývali tímto uznávaným vývojářem XDA Sultanxda propustil jeho vlastní CyanogenMod 13 ROM a jádro pro OnePlus 3T, mnoho lidí bylo překvapeno, když vidělo, že se „stejné“ sestavení ROM, které bylo vydáno pro OnePlus 3T, dostává do OnePlus 3 (nebo naopak!).

Sultanxda přijala jednotný přístup k distribuci ROM pro OnePlus 3 a OnePlus 3T kvůli jejich do značné míry podobnému hardwaru a softwaru na nízké úrovni. To znamenalo, že ROM nabízela křížovou kompatibilitu mezi oběma zařízeními, kde bylo možné duo distribuovat stejný zip ROM. Křížově kompatibilní zipy umožnily uživatelům (a také vývojářům) nestarat se o náhodné blikání špatného zipu a získání zablokovaného zařízení. To neznamená, že OnePlus 3/3T lze snadno postavit - znamená to pouze celkově menší bolesti hlavy pro všechny zúčastněné strany.

Oslovili jsme XDA Recognized Developer Sultanxda vrhnout více světla na celý postup, aby podpořil přijetí jeho metody. Zde jsou hlavní poznatky z rozhovoru s přidaným důrazem:

Co se liší na OnePlus 3/3T, který umožňuje unifikované ROM?

Důvod, proč je možná jednotná ROM, je ten, že OnePlus sjednotil BSP (proprietární knihovny) [Board Support Package]. Ačkoli je sjednocení jádra snadné, sjednocení ROM je pro vývojáře [ROM] normálně nemožné kvůli nekonzistentnostem v BSP, které může vyřešit pouze OEM. Vše, co jsem musel udělat, bylo sjednotit jádro a oddělit některé obrazy firmwaru GPU. Obrázky firmwaru GPU se mezi Snapdragonem 820 a 821 liší, takže nejsou vzájemně kompatibilní. Upravil jsem jádro, aby to bylo nahrajte správný firmware GPU pro každé zařízení to opravit. Já pak přidal odpovídající obrázky firmwaru do ROM v tomto potvrzení. Zbývající obrazy firmwaru specifické pro zařízení (jako jsou obrazy modemu) jsou umístěny v oddílu firmwaru na každém zařízení, takže problém s GPU byl jediný problém související s firmwarem, kterému jsem čelil.

Jak ROM a jádro zjistí, které zařízení to je?

Jádro díky bootloaderu ví, na kterém zařízení běží. Bootloader vybere konfiguraci stromu zařízení (zabalenou do obrazu jádra), která odpovídá jeho ID desky, a předá ji konfigurace do jádra To dává jádru flexibilitu při načítání vhodných konfigurací pro OnePlus 3 a OnePlus 3T. Můžete najít ID desky pro OnePlus 3 a OnePlus 3T pomocí hypertextových odkazů.

Potřebujete pouze upravené jádro pro podporu unifikovaných sestavení?

Ne, ROM musí být také sjednocená. OnePlus sjednotil BSP počínaje Open Betas pro OP3 a ponechal jej sjednocený v oficiální verzi OP3T OxygenOS. To znamená, že ROM musí používat proprietární knihovny buď z Open Beta sestavení OP3, nebo z oficiálního vydání OxygenOS OP3T, aby byly sjednoceny. Existuje také požadavek na obrázek firmwaru GPU, který jsem popsal výše, a dotykový displej OP3T firmware musí být také součástí ROM (toto bylo přidáno do potvrzení firmwaru GPU, na které jsem odkazoval výše).

Existuje také upozornění na unifikované jádro: vývojáři musí buď použít moje jádro (které je již sjednocené), nebo musí přidat podporu OP3 do jádra OxygenOS OP3T. Podpora pro OP3T nemůže být jednoduše přidána do jádra OP3 kvůli neúplné podpoře Snapdragon 821, takže sjednocení může vyžadovat hodně práce od ochotných vývojářů OP3. Moje jádro již mělo kompletní podporu Snapdragon 821, když jsem obdržel OP3T (protože moje jádro je založeno na větvi Snapdragon 821 od CAF), takže proces sjednocení byl pro mě docela bezbolestný.

Jsem si jistý, že mnoho vývojářů by raději použilo jádro OxygenOS od OP3T než moje jádro, což by vyžadovalo přidání podpory pro OP3. Nesnažil jsem se vytvořit jednotné jádro pro ROM OxygenOS, takže k tomu může být zapotřebí další práce.

Mohou se ostatní vývojáři podívat na kód a zjistit, jak se to dělá?

Ano. Sultanxda uvádí, že veškerá jeho práce je veřejně dostupná na jeho účet GitHub, takže každý, kdo má potřebné know-how, může vidět, jak bylo sjednocení ROM provedeno. Je pravda, že postup je trochu komplikovaný a vyžaduje určitou úroveň odbornosti, ale je to velmi proces nastav a zapomeň s výhodami ve formě menší údržby, menší duplicitní práce a lepší pocit jistoty, že si lidé nebudou plést soubory těchto dvou zařízení, protože pouze jeden zip funguje pro obě. Jakmile jsou ROM nebo jádro sjednoceny a potvrzeno, že jsou plně funkční na OnePlus 3 i OnePlus 3T, je potřeba jen velmi málo další práce.


Doufáme, že jsme přinesli na světlo nové informace, které by měly pomoci více vývojářům rozhodnout se pro unifikovaná sestavení pro zařízení. Vývoj na OnePlus 3T rostea sjednocená sestavení jsou budoucností obou zařízení.