Bagaimana Substratum Memberikan Lebih Banyak Pilihan pada TouchWiz yang Tidak Fleksibel

Sungstratum dari tim [projekt.] menghadirkan semua pernak-pernik tema RRO-OMS ke perangkat Samsung Nougat melalui Substratum! Baca terus untuk mengetahui lebih lanjut!

Tema Android telah berkembang pesat, mulai dari pengeditan hacky hingga Substratum dan sekarang, lapisan bawah. Bertahun-tahun yang lalu, kata "tema" dalam diskusi Android sering kali digantikan oleh kata "pemilih", yang mengacu pada Pemilih Tema T-Mobile ditemukan di CyanogenMod yang meletakkan dasar yang menjadikan Android sebagai tema surga. Kemampuan untuk memodifikasi tampilan OS memberi pengguna dimensi penyesuaian lain, memungkinkan mereka membuat perubahan yang membuat perangkat mereka lebih personal.

Pekerjaan baik berlanjut ke dua arah yang berbeda. Pemilih Tema berevolusi menjadi Mesin Tema CyanogenMod, namun meskipun upaya bertahun-tahun dilakukan pada sumber daya tema, CMTE menjadi usang ketika alternatif lain muncul.


RRO & Lapisan

Fondasi dari salah satu alternatif diletakkan ketika kontribusi kode Sony dalam bentuk kerangka kerja baru disebut

Hamparan Sumber Daya Waktu Proses (RRO) diterima di AOSP. Kerangka kerja ini menyediakan kemampuan untuk mengganti sumber daya aplikasi selama runtime (sesuai dengan namanya). "Overlay" sendiri telah hadir dan didukung di Android sejak Gingerbread (dan mungkin sebelumnya juga), digunakan terutama untuk menukar sumber daya agar aplikasi dapat bekerja pada hal tertentu perangkat. Pendekatan Sony terhadap RRO melibatkan modifikasi manajer aset untuk menerima apk yang menggunakan sumber daya yang dipetakan ke sumber daya terkait lainnya yang ada di perangkat. Sumber daya baru dari apk ini kemudian ditumpangkan di atas sumber daya dasar pada saat runtime saja, sehingga memungkinkan sistem untuk bekerja seolah-olah sumber daya baru ini selalu menjadi bagian darinya.

Kerangka kerja RRO digabungkan ke dalam AOSP sebelum Lollipop 5.0 dipublikasikan, tetapi pada beberapa versi awal 5.0 ada bagian kerangka yang rusak karena perubahan lainnya. Pratinjau Pengembang Android 6.0 Marshmallow adalah yang pertama menambahkan kerangka kerja RRO yang fungsional meskipun terbatas, membuka pintu kemampuan penyesuaian tepat di level stok Android. Jadi, kecuali jika OEM dengan sengaja mencoba menyimpang dari opsi tema Android bawaan, itu pasti tingkat konsistensi dapat dipertahankan dalam pendekatan bagaimana 'tema' akan diterapkan Android.

Saat AOSP sedang bermain-main dengan RRO dan mencari cara terbaik untuk menggabungkan semuanya, tim pengembang menelepon BitSyko bekerja sama dalam upaya kolektif yang disebut "Lapisan". Lapisan diperluas pada fungsionalitas stok RRO di Android 5.1 Lollipop untuk memungkinkan peralihan sumber daya yang lebih kompleks dan memungkinkan lebih banyak kontrol elemen untuk tema dibandingkan dengan RRO stok. Karena Lapisan dibangun di atas RRO, pembuat ROM perlu menambahkan kode tambahan untuk mengaktifkan fungsionalitas Lapisan di ROM mereka karena tidak semua tema Lapisan akan berfungsi pada stok RRO di Marshmallow.

Sementara itu, Sony terus berupaya mewujudkan tema Android. Itu mulai dikerjakan OMS (Layanan Manajer Overlay), klien untuk mengelola overlay yang memungkinkan penyedia mengontrol prioritas secara dinamis serta mengaktifkan dan menonaktifkan overlay. OMS sedang digabungkan ke dalam AOSP dan akan masuk ke Android O. Pengembang yang Diakui XDA nicholaschum dapat mengonfirmasi melalui sumbernya bahwa Android O akan menggunakan "hamparan dinamis", yang diyakini sebagai referensi ke OMS.

OMS menyebabkan konflik dengan Layers, karena secara tradisional, fungsi-fungsi tersebut berada di bawah kendali themer. Untuk mengatasi masalah yang ditimbulkan oleh OMS serta untuk memperluas fungsi Layers, BitSyko bekerja sama lagi (dan mengganti namanya menjadi [proyek.]) untuk membuat Dasar. Substratum adalah klien dengan fungsionalitas OMS yang mencoba merekonsiliasi fungsionalitas Lapisan dengan OMS, dan juga meminjam elemen lain dari solusi tema sebelumnya. Hamparan tidak lagi tumpang tindih satu sama lain untuk menentukan tema masing-masing elemen, karena sekarang, semua elemen yang diperlukan dimasukkan ke dalam satu hamparan. Fitur seperti kompilasi di perangkat memungkinkan tema diterapkan tanpa perlu reboot di antara perubahan, sehingga berhasil secara signifikan lebih mudah bagi pengguna akhir untuk mencoba tema dan bereksperimen. Substratum telah dalam pengembangan aktif sejak awal, dan mencantumkan semua fitur dan fungsionalitas tambahan akan berada di luar cakupan artikel ini, jadi kita akan beralih ke topik sebenarnya bagian.


Substratum menjadi Sungstratum

Seperti yang dijelaskan di bagian sebelumnya, Substratum dimulai sebagai cara untuk memperluas fungsionalitas stok OMS serta fungsionalitas stok RRO (melalui Lapisan). Substratum dimaksudkan untuk digunakan bersama ROM berbasis AOSP, karena sebagian besar OEM lainnya akan membuat perubahan yang bertentangan yang tidak memungkinkan Substratum untuk hidup berdampingan dengan modifikasinya pada kulit UX yang diedit, seperti milik Samsung untuk contoh.

Samsung sendiri juga sedang mengerjakan solusi tema untuk digunakan di seluruh perangkatnya sendiri di Nougat. Tidak seperti Sony, Samsung tidak menunjukkan minat untuk menyumbangkan kembali kode tema ke AOSP. Namun karena solusi Samsung cukup mendasar, AOSP tidak mengalami kerugian besar. Solusi tema Samsung yang dimasukkan ke dalam Touchwiz tampil nyata di Samsung Galaxy S6, namun seperti yang telah disebutkan, solusi tersebut cukup terbatas dalam apa yang dapat dicapai. Sebelumnya, terdapat eksperimen terbatas yang dimulai dengan Galaxy Alpha, meskipun sebagian besar elemen UI sistem berada di luar cakupannya. Tema dapat mengubah wallpaper dan ikon serta beberapa aplikasi bawaan Samsung seperti dialer, kontak, pesan, dan area notifikasi, misalnya.

Ternyata, mesin tema Samsung meluas RRO seperti yang ditemukan di AOSP. Samsung juga membuat ulang OMS versi internalnya sendiri setelah memperluas RRO, sehingga implementasi RRO dan OMS mereka berbeda dari AOSP. Namun yang mengejutkan, jumlahnya tidak terlalu besar -- sebuah perilaku yang tidak wajar jika mempertimbangkan kekhasan dan kompleksitas Touchwiz. Para pembuat tema yang menggunakan ponsel andalan Samsung yang lebih baru melaporkan bahwa mereka dapat memasang overlay RRO dan menjadikannya tema aplikasi pihak ketiga.

Ini adalah isyarat yang dibutuhkan tim [projekt.] untuk mempertimbangkan dukungan resmi perangkat Samsung di Substratum. Tim mengonversi sejumlah kecil kode dari bagian RRO/Legacy di aplikasi mereka, namun sebaliknya meminta root dan meminta untuk reboot, mereka mengaktifkan maksud tertentu sehingga overlay dipasang. Tim kemudian bekerja untuk memastikan bahwa aplikasi yang terpengaruh melalui tema ditutup paksa di latar belakang untuk memastikan penyegaran aset secara penuh pada peluncuran berikutnya.

Kami bertanya kepada Pengembang yang Diakui XDA nicholaschum untuk memberi kami beberapa wawasan tentang tantangan yang dihadapi tim saat bekerja melawan penerapan RRO-OMS sumber tertutup Samsung:

Tantangan yang kami hadapi agak tidak jelas dan tidak diketahui oleh banyak orang yang tidak mempunyai banyak pengetahuan memahami sistem tema, baik open source atau close source - semuanya memiliki uji coba sendiri dan fase kesalahan. Dalam hal ini, saat bekerja dengan Samsung, saya menemukan banyak masalah tetapi yang utama adalah niat sistem tidak ada dipecat untuk overlay setelah instalasi selesai - seperti memanfaatkan penerima siaran dengan “android.intent.aksi. PACKAGE_ADDED” - Layanan Tema menolak apa pun yang bukan bagian dari tanda tangan sistem dengan Samsung tertentu izin layanan tema untuk menerimanya, jadi bagian tersulitnya adalah solusi yang harus kami temukan caranya sekitar.

Cara kami menggunakan Substratum bersama Mesin Tema Samsung adalah dengan memanfaatkan sistem yang sama seperti yang mereka lakukan. Mereka menggunakan versi sistem Resource Runtime Overlay Sony yang telah dimodifikasi, disingkat RRO atau dikenal sebagai warisan di kalangan pengguna Substratum. Namun, yang membedakannya adalah tema Samsung memiliki izin tambahan yang menyembunyikan overlay ini dari Pengaturan, sehingga Anda tidak dapat menghapusnya satu per satu secara manual. Kami menggunakan sistem yang sama namun kami menggunakan implementasi AOSP/Sony, itulah sebabnya Samsung Themes dapat sepenuhnya bertemakan kerangka kerja, sementara Hamparan substrat tidak dapat menyentuh target mediator yang tidak ada "fwk" - seperti yang kita ketahui, kerangka kerja hanyalah paket "android" nama.

Tampaknya aneh bahwa [projekt.] dapat bekerja bersamaan dengan implementasi RRO Samsung dengan relatif mudah. Siapa pun yang pernah bekerja dengan perangkat Samsung dapat membuktikan betapa sulitnya Samsung dalam melakukan sesuatu. Kami menanyakan blok spesifik apa pun yang ditemui tim selama porting mereka:

Memang ada semacam mekanisme keamanan yang mempengaruhi beberapa pengguna - di mana overlay kembali saat start up. Ini karena cara Samsung mem-boot perangkatnya. Karena sebagian besar kami menggunakan versi 7.0 di TouchWiz/Samsung Experience, kami menggunakan metode baru “Mengoptimalkan aplikasi” (Anda dapat melihatnya saat memperbarui ponsel Anda, ini akan menampilkan pemberitahuan dengan ikon Android Nougat, yang mengatakan bahwa itu sedang ditingkatkan di latar belakang), jadi cara mengoptimalkan aplikasi ini juga membongkar target paket, yang pada akhirnya mengganggu proses idmapping saat boot (karena paket target tidak ada) dan dengan demikian, beberapa orang mengalami pembongkaran overlay setelah a menyalakan ulang.

Anda juga dapat melihat hal ini terjadi pada beberapa Tema Samsung, khususnya tema Gelap/Hitam @envy~ - he membuat warna bilah navigasi default di Tampilan -> Bilah navigasi menjadi hitam, di mana warna default sebenarnya berada putih. Setelah mengaturnya menjadi hitam, Anda dapat membuka keyboard dan bilah navigasi tetap hitam. Ini juga akan dikembalikan secara acak saat reboot di banyak perangkat.

Dengan tema yang kembali menonjol, apa rencana Substratum ke depan di cabang samping seperti Sungstratum?

Di masa depan, kami akan menggabungkan aplikasi kecil ke dalam addon kami untuk pengguna kami saat ini sehingga mereka dapat melakukannya dapat menghentikan Layanan Tema Samsung jika semua tema yang diinstal pada perangkat mereka diinstal XDA. Jadi orang-orang yang akan menggunakan tema berformat Samsung dari XDA, Anda akan dapat menggunakan add-on untuk mencegahnya. Layanan Samsung mengembalikannya ke tema stok setelah setiap reboot (karena tidak diinstal dari toko Samsung secara resmi). Ini memerlukan kunci pengembang Samsung gratis yang tersedia untuk diperoleh dari situs mereka, tetapi kunci tersebut sudah dipaketkan sebelumnya dengan unduhan addon sungstratum.


Dengan adanya perubahan baru-baru ini dan yang akan datang pada AOSP dan Android O, sepertinya OS Google yang dulunya masih baru ini akan memiliki lebih banyak personalisasi yang diberikan kepada pengguna. OEM tertentu bahkan berencana untuk menghilangkan antarmuka pengguna khusus dan tambahan UX mereka mendukung AOSP, dan perusahaan lain seperti Samsung cukup dekat dengan solusi tema mereka sendiri. Kami membayangkan masa depan di mana tema memainkan peran utama dalam pengalaman pengguna lebih banyak orang-- sebuah OS tempat Anda benar-benar mengontrol tampilan perangkat Anda, tempat estetika antarmuka pengguna disesuaikan untuk Anda Anda. Dan kita tidak akan mampu mencapai masa depan seperti itu tanpa kekuatan kolektif dari komunitas luar biasa ini, dan proyek seperti Substratum.


Lihat Integrasi Substratum untuk Samsung Nougat di forum Substratum kami!Lapisan bawah di GitHub