SultanXDA Menjelaskan Pendekatan ROM Terpadu pada OnePlus 3/3T

click fraud protection

Kami menghubungi SultanXDA untuk menanyakan tentang cara kerja ROM dan kernel terpadunya untuk OnePlus 3/3T. Baca terus selagi kami mengetahuinya!

Dulu ketika kami membahas Pengembang yang Diakui XDA itu Sultanxda melepaskan miliknya ROM dan Kernel CyanogenMod 13 khusus untuk OnePlus 3T, banyak orang terkejut melihat build ROM "sama" yang dirilis untuk OnePlus 3T hadir di OnePlus 3 (atau sebaliknya!).

Sultanxda mengadopsi pendekatan terpadu untuk mendistribusikan ROM untuk OnePlus 3 dan itu OnePlus 3T karena perangkat kerasnya yang sebagian besar serupa dan perangkat lunak tingkat rendah. Ini berarti ROM tersebut menawarkan kompatibilitas silang di antara kedua perangkat, di mana zip ROM yang sama dapat didistribusikan ke keduanya. Ritsleting yang kompatibel secara silang memungkinkan pengguna (dan juga pengembang) tidak perlu khawatir mem-flash zip yang salah secara tidak sengaja dan membuat perangkat menjadi rusak. Hal ini tidak berarti bahwa OnePlus 3/3T mudah untuk di-brick -- ini hanya mengurangi kerumitan secara keseluruhan bagi semua pihak yang terlibat.

Kami menghubungi Pengembang yang Diakui XDA Sultanxda untuk menjelaskan keseluruhan prosedur, guna mendorong penerapan metodenya. Berikut adalah kesimpulan utama dari percakapan dengan penekanan tambahan:

Apa perbedaan pada OnePlus 3/3T yang memungkinkan ROM terpadu?

Alasan mengapa ROM terpadu dimungkinkan adalah karena OnePlus menyatukan BSP (perpustakaan berpemilik) [Board Support Package]. Meskipun menyatukan kernel itu mudah, menyatukan ROM biasanya tidak mungkin dilakukan oleh pengembang [ROM] karena ketidakkonsistenan dalam BSP yang hanya dapat diatasi oleh OEM. Di pihak saya, yang harus saya lakukan hanyalah menyatukan kernel dan memisahkan beberapa image firmware GPU. Gambar firmware GPU berbeda antara Snapdragon 820 dan 821, sehingga tidak kompatibel secara silang. Saya memodifikasi kernel untuk membuatnya memuat firmware GPU yang benar untuk setiap perangkat untuk memperbaikinya. Lalu saya menambahkan gambar firmware yang sesuai ke ROM dalam komit ini. Gambar firmware khusus perangkat lainnya (seperti gambar modem) terletak di partisi firmware pada setiap perangkat, jadi masalah GPU adalah satu-satunya masalah terkait firmware yang saya hadapi.

Bagaimana ROM dan Kernel mengetahui perangkat apa itu?

Kernel mengetahui perangkat mana yang menjalankannya berkat bootloader. Bootloader memilih konfigurasi Device Tree (dipaketkan ke dalam image kernel) yang cocok dengan ID boardnya dan meneruskannya konfigurasi ke kernel Ini memberikan fleksibilitas kernel untuk memuat konfigurasi yang sesuai untuk OnePlus 3 dan OnePlus 3T. Anda dapat menemukan ID papan untuk OnePlus 3 dan itu OnePlus 3T dengan mengikuti hyperlink.

Apakah Anda hanya memerlukan kernel yang dimodifikasi untuk mendukung build terpadu?

Tidak, ROM juga harus disatukan. OnePlus menyatukan BSP mulai dari Open Beta untuk OP3, dan tetap menyatukannya dalam rilis resmi OP3T OxygenOS. Ini berarti bahwa ROM harus menggunakan pustaka berpemilik baik dari versi Open Beta OP3 atau rilis OxygenOS resmi OP3T agar dapat disatukan. Ada juga persyaratan gambar firmware GPU yang saya jelaskan di atas, dan layar sentuh OP3T firmware juga perlu disertakan dalam ROM (ini ditambahkan dalam komitmen firmware GPU yang saya tautkan di atas).

Selain itu, ada peringatan pada kernel terpadu: pengembang harus menggunakan kernel saya (yang sudah terpadu), atau mereka harus menambahkan dukungan OP3 ke kernel OxygenOS OP3T. Dukungan untuk OP3T tidak bisa begitu saja ditambahkan ke kernel OP3 karena dukungan Snapdragon 821 yang tidak lengkap, sehingga penyatuan mungkin memerlukan banyak pekerjaan dari pengembang OP3 yang bersedia. Kernel saya sudah memiliki dukungan lengkap Snapdragon 821 ketika saya menerima OP3T (karena kernel saya didasarkan pada cabang Snapdragon 821 dari CAF), jadi proses penyatuannya tidak terlalu merepotkan saya.

Saya yakin banyak pengembang lebih suka menggunakan kernel OxygenOS OP3T daripada kernel saya, yang memerlukan penambahan dukungan untuk OP3 ke dalamnya. Saya tidak mempertimbangkan untuk membuat kernel terpadu untuk ROM OxygenOS, jadi pekerjaan tambahan mungkin diperlukan untuk mewujudkannya.

Bisakah pengembang lain melihat kodenya dan melihat bagaimana hal ini dilakukan?

Ya. Sultanxda menyebutkan bahwa semua karyanya tersedia untuk umum di miliknya akun GitHub, sehingga siapa pun yang memiliki pengetahuan yang diperlukan dapat melihat bagaimana penyatuan ROM dilakukan. Memang, prosedurnya sedikit rumit dan memerlukan tingkat keahlian, namun ini adalah proses yang sangat ditentukan dan dilupakan dengan manfaat yang berasal dari bentuk pemeliharaan yang lebih sedikit, duplikasi pekerjaan yang lebih sedikit, dan peningkatan rasa yakin bahwa orang tidak akan bingung membedakan file kedua perangkat karena hanya satu zip yang berfungsi untuk keduanya. Setelah ROM atau kernel disatukan dan dipastikan berfungsi penuh pada OnePlus 3 dan OnePlus 3T, hanya diperlukan sedikit pekerjaan tambahan.


Kami berharap kami dapat memberikan informasi baru yang dapat membantu lebih banyak pengembang memilih versi terpadu untuk perangkatnya. Pengembangan OnePlus 3T semakin berkembang, dan build terpadu adalah masa depan kedua perangkat di masa mendatang.