SultanXDA пояснює підхід Unified ROM для OnePlus 3/3T

click fraud protection

Ми звернулися до SultanXDA, щоб дізнатися, як його уніфіковане ПЗУ та ядро ​​працюють на OnePlus 3/3T. Читайте далі, коли ми дізнаємося!

Тоді, коли ми розповідали про цього визнаного розробника XDA Sultanxda відпустив його призначений для користувача ПЗУ CyanogenMod 13 і ядро ​​для OnePlus 3T, багато людей були здивовані, побачивши, що «та сама» збірка ПЗУ, яка була випущена для OnePlus 3T, потрапила до OnePlus 3 (або навпаки!).

Sultanxda прийняла єдиний підхід до розповсюдження ПЗУ для OnePlus 3 і OnePlus 3T завдяки їх значною мірою подібному апаратному забезпеченню та низькому рівню програмного забезпечення. Це означало, що ROM забезпечував перехресну сумісність між обома пристроями, де один і той же ROM zip можна було поширювати на дует. Перехресна сумісність архівів дозволила користувачам (і розробникам також) не хвилюватися про те, що випадково буде встановлено неправильний архів, і пристрій буде заблоковано. Це не означає, що OnePlus 3/3T легко зібрати – це просто спричиняє менше головного болю для всіх залучених сторін.

Ми звернулися до визнаного розробника XDA Sultanxda щоб пролити трохи більше світла на всю процедуру, щоб заохотити прийняти його метод. Ось основні висновки з розмови з додатковим акцентом:

Чим OnePlus 3/3T відрізняється від уніфікованих ПЗУ?

Причина, чому можлива уніфікована ПЗУ, полягає в тому, що OnePlus уніфікував BSP (власні бібліотеки) [Пакет підтримки плати]. Хоча уніфікація ядра проста, уніфікація ПЗУ зазвичай неможлива для розробників [ROM] через невідповідності в BSP, які може вирішити лише OEM. Зі свого боку, все, що мені потрібно було зробити, це уніфікувати ядро ​​та відокремити деякі образи прошивки GPU. Образи прошивки графічного процесора Snapdragon 820 і 821 відрізняються, тому вони не сумісні. Я модифікував ядро, щоб зробити це завантажити правильну мікропрограму GPU для кожного пристрою, щоб це виправити. Я тоді додав відповідні образи прошивки до ПЗУ в цьому коміті. Решта образів мікропрограми для певного пристрою (наприклад, образи модему) розташовані в розділі мікропрограми на кожному пристрої, тому проблема GPU це була єдина проблема, пов’язана з прошивкою, з якою я зіткнувся.

Як ПЗУ та ядро ​​визначають, який це пристрій?

Ядро знає, на якому пристрої воно працює, завдяки завантажувачу. Завантажувач вибирає конфігурацію дерева пристроїв (запаковану в образ ядра), яка відповідає ідентифікатору плати, і передає цей конфігурація на ядро ​​Це дає ядру гнучкість для завантаження відповідних конфігурацій як для OnePlus 3, так і для OnePlus 3T. Ви можете знайти ідентифікатор плати для OnePlus 3 і OnePlus 3T за гіперпосиланнями.

Вам потрібно лише модифіковане ядро ​​для підтримки уніфікованих збірок?

Ні, ПЗУ також має бути уніфікованим. OnePlus уніфікував BSP, починаючи з відкритих бета-версій для OP3, і залишив його уніфікованим в офіційному випуску OP3T OxygenOS. Це означає, що ПЗУ мають використовувати власні бібліотеки з відкритої бета-версії OP3 або офіційного випуску OxygenOS OP3T, щоб бути уніфікованими. Існує також вимога до образу прошивки GPU, яку я описав вище, і сенсорний екран OP3T мікропрограму також потрібно включити в ПЗУ (це було додано в коміті прошивки графічного процесора, на який я посилався вище).

Крім того, є застереження щодо уніфікованого ядра: розробники повинні або використовувати моє ядро ​​(яке вже уніфіковано), або вони повинні додати підтримку OP3 до ядра OxygenOS OP3T. Підтримку OP3T неможливо просто додати до ядра OP3 через неповну підтримку Snapdragon 821, тому уніфікація може вимагати багато роботи від зацікавлених розробників OP3. Моє ядро ​​вже мало повну підтримку Snapdragon 821, коли я отримав OP3T (оскільки моє ядро ​​базується на гілці Snapdragon 821 від CAF), тому процес уніфікації пройшов для мене досить безболісно.

Я впевнений, що багато розробників воліли б використовувати ядро ​​OxygenOS OP3T, а не моє ядро, для чого потрібно було б додати до нього підтримку OP3. Я не розглядав можливість створення уніфікованого ядра для ПЗУ OxygenOS, тому для цього може знадобитися додаткова робота.

Чи можуть інші розробники поглянути на код і побачити, як це робиться?

Так. Sultanxda згадує, що всі його роботи є загальнодоступними на його Обліковий запис GitHub, тому будь-хто з необхідним ноу-хау може побачити, як було здійснено уніфікацію ПЗУ. Звісно, ​​процедура складна і вимагає певного рівня досвіду, але це процес «встановив і забув». з перевагами, що виникають у формі меншого обслуговування, меншого дублювання роботи та покращеного почуття впевненості в тому, що люди не плутатимуть файли двох пристроїв, оскільки для обох працює лише один архів. Після уніфікації ПЗУ або ядра та підтвердження їхньої повної роботи на OnePlus 3 і OnePlus 3T, потрібно буде дуже мало додаткової роботи.


Сподіваємося, ми оприлюднили нову інформацію, яка допоможе більшій кількості розробників вибрати уніфіковані збірки для пристроїв. Розробка OnePlus 3T зростає, а уніфіковані збірки — це майбутнє для обох пристроїв.