Pada artikel ini kami mengeksplorasi perbedaan antara rilis Xpose untuk Nougat mendatang dari rovo89 dan implementasi saat ini yang tersedia untuk Nougat.
Kerangka kerja Xpose dulunya -- dan masih -- merupakan cara utama untuk menyesuaikan perangkat Android Anda, kompatibel dengan hampir semua perangkat, memungkinkan Anda memasang modul dengan mudah untuk mengubah hampir semua detail.
Ingin mendapatkan semua fitur yang ditawarkan ROM khusus tanpa harus mem-flash-nya?Kotak Gravitasi atauXTouchwiz akan melakukan itu. Ingin mengubah pengaturan tertentu per aplikasi, seperti mengubah DPI aplikasi tertentu?Pengaturan aplikasi sudahkah kamu meliputnya? Semoga pengembang aplikasi berpikir untuk menambahkan fitur tertentu, seperti yang diizinkan Google kepada Andamempersonalisasi Hangouts atau Facebook mengizinkan Anda melakukannyaunduh postingan Instagram yang Anda suka? Ya, Anda tidak perlu melakukannya karena Xpose memberi pengembang kemampuan untuk memodifikasi hampir semua hal inginkan, baik itu fitur seluruh sistem yang memerlukan ROM khusus, atau penyesuaian untuk hal tertentu aplikasi.
Framework Xpose hadir dengan keuntungan besar bagi pengembang, yaitu kemudahan pengembangan (dibandingkan harus mengkompilasi AOSP untuk tweak ROM, atau harus mengedit kode Smali). Ini juga membawa keuntungan besar bagi pengguna: kenyamanan, karena tidak lagi memaksa mereka untuk mencari dan mem-flash ROM yang menyediakan setiap fitur yang mereka cari (sebaliknya, mereka dapat memadukan dan mencocokkan modul independen) di atas target keseimbangan stabilitas dan pertunjukan. Itu juga berhasil mengutak-atik aplikasi jauh lebih mudah karena tidak perlu berurusan dengan tanda tangan yang berbeda, yang akibatnya mengharuskan pengguna untuk menghapus instalasi yang asli versi atau melewati rintangan tertentu saat aplikasi memeriksa tanda tangannya (misalnya, sesuatu yang ditangani oleh klien YouTube yang dimodifikasi contoh).
Satu-satunya masalah? Karena sifat dan jumlah waktu luang pengembang Xpose (Pengembang Senior Kami yang Diakui,rovo89) sering kali tertinggal dari rilis Android.Butuh waktu sekitar empat bulan untuk mendapatkan pembaruan untuk mendukung Lollipop, dan butuh waktu sekitar satu tahun untuk sampai ke Nougat. Ini tidak seburuk kelihatannya jika Anda memikirkannya berapa banyak sebenarnya pengguna Android yang menggunakan Nougat (sekitar 13,5%, namun perlu diingat bahwa penggemar Android, target audiens Xpose, juga lebih cenderung menggunakan Nougat). Namun, masih cukup menjengkelkan jika tidak dapat menggunakan modul Xpose favorit Anda dan memiliki versi Android terbaru dan terhebat pada saat yang bersamaan.
Dengan tersedianya kode sumber kerangka Xpose (setidaknya untuk versi stabil dan dirilis), developerhilang memutuskan untuk mengotori tangannya dan melihat apakah dia dapat memindahkan beberapa modifikasi rovo89 ke Nougat. Memilih pendekatan yang berbeda dan lebih sederhana, abforce pada dasarnya mengadaptasi bagian dari Xpose yang sebenarnya melakukan keajaiban setelah diinstal, dan memungkinkan untuk memasukkannya saat mengkompilasi ROM Anda sendiri (setelah itu, solusi lain muncul). Pendekatan ini bisa dibilang sangat berbeda karena mengabaikan salah satu keunggulan inti Xpose, yang tersedia untuk semua orang dengan mudah. Namun, semua kemajuan disambut baik dan banyak kepala yang menangani suatu tugas dapat bermanfaat dan menawarkan wawasan baru. Masalah utamanya, menurut kami, adalah misinformasi seputar perkembangan ini (disebarkan oleh beberapa "pengembang" lain dan beberapa blog), serta beberapa reaksi dari komunitas. Semoga artikel ini dapat memperjelas gambaran keseluruhannya.
Pertama-tama, untuk memahami pekerjaan yang dilakukan -- dan masih berjalan -- pada kerangka resmi Xgged serta versi abforce, kita perlu melihat cara kerja kerangka tersebut. Sedangkan kerangkanya sendiri adalah hanya sebagian dari proyek, yang biasanya kami maksud adalah kerangka kerja dan penginstal karena kerangka kerja kehilangan banyak kelebihannya tanpa penginstal universal, yang juga memerlukan banyak pekerjaan.
Kekuatan Xpose berasal dari konsep sederhana: metode apa pun dapat "terpikat" (metode menjadi metode kecil bagian yang membentuk program apa pun) agar kode modul Xpose dijalankan sebelum, sesudah, atau sebagai gantinya dia. Mari kita ambil contoh sederhana: asumsikan Instagram menggunakan metode yang disebut "showMenuOptions" ketika Anda mengklik tombol menu, dan metode tersebut menangani tampilan tombol "Laporkan" dan "Bagikan". Dengan membuat modul Xpose, Anda dapat memodifikasi metode tersebut untuk menambahkan tombol tambahan untuk mengunduh gambar alih-alih membagikannya, misalnya. Modifikasi dapat berkisar dari perubahan sederhana (mis. Log Perubahan Play Store) hingga perombakan besar-besaran (seperti Kotak Gravitasi, yang bertujuan untuk menyediakan semua fitur yang dimiliki ROM khusus)!
Hal ini membuat Xpose kuat, namun itu hanya sebagian saja. Bagian lainnya adalah keserbagunaan -- atau kemampuan untuk menggunakan Xpose di hampir semua perangkat di luar sana (dengan versi Android yang didukung), dan kemudahan penggunaan. Yang harus dilakukan pengguna hanyalah mengambil penginstal, yang melakukan keajaibannya dan menambal sistem mereka secara dinamis untuk mengintegrasikan Xpose. Untuk menerapkan modul, Anda hanya perlu menginstalnya, mengaktifkannya, dan melakukan boot ulang. Tidak perlu repot, tidak perlu mem-flash ROM khusus (terutama ketika ROM khusus tidak selalu merupakan pilihan yang tepat), tidak perlu menghapus instalasi APK untuk menginstal APK lain yang ditandatangani dengan tanda tangan berbeda. Yang Anda butuhkan hanyalah root (Anda benar-benar dapat memiliki ROM khusus dan itu sering kali masuk akal; tetapi meskipun Xpose dapat menyediakan sebagian besar fungsi yang dapat disediakan oleh ROM khusus, Xpose juga lebih dari itu).
Namun, di balik kesederhanaan ini terdapat banyak pekerjaan:
- Bagi pengembang modul, API yang disediakan harus stabil dan dijamin berfungsi. Kerangka kerja Xpose tidak dapat gagal secara acak dengan ROM dan/atau kombinasi kait tertentu (kecuali dalam kasus luar biasa). Dengan kata lain, jika pengguna mengalami masalah, masalah tersebut seharusnya merupakan kesalahan pengguna (jika tidak menginstal/mengaktifkan sesuatu dengan benar) atau kesalahan pengembang modul (karena terdapat bug di file modul). Namun harus dipastikan bahwa kerangka kerja itu sendiri berfungsi sebagaimana mestinya, dan bukan sumber kesalahan yang akan membuat pengguna frustrasi dan pengembang bingung.
- Bagi pengguna, framework tersebut harus mudah dipasang di perangkat dan ROM mereka, tidak peduli apakah mereka memiliki Samsung yang menjalankan TouchWiz versi terbaru atau Nexus dengan LineageOS terinstal. Pemasang Xpose menangani semua itu di balik layar. Banyak pekerjaan yang harus dilakukan untuk menguji penginstal dan kerangka kerja pada berbagai perangkat dan kombinasi ROM. Kesalahan ditemukan, sering kali disebabkan oleh perbedaan implementasi oleh OEM, dan harus diperbaiki untuk memastikan keandalan bagi semua pengguna.
- Revisi besar-besaran Android terkadang dapat membawa perubahan besar, sehingga memerlukan pemikiran ulang pada bagian arsitektur framework untuk beradaptasi dengan perubahan tersebut. Terkadang, peluang tambahan juga muncul dengan versi yang lebih baru, sehingga memerlukan waktu ekstra untuk memiliki produk yang lebih baik. Saat ART pertama kali diperkenalkan, misalnya, Xpose menonaktifkan optimasi tertentu sehingga hooking dapat bekerja dengan benar. Dalam kasus Nougat, itukompiler just-in-time (JIT). membawa peluang untukpertahankan optimasi tersebut.
Banyak dari pekerjaan di atas masuk ke rincian kecil, di mana sebagian besar kerangka kerja berfungsi sebagaimana mestinya tetapi inkonsistensi dan masalah kecil akan menjadikannya pertaruhan bagi pengguna, dan merupakan mimpi buruk dukungan dan pengembangan untuk modul pengembang. Namun, produk yang dirilis bertujuan untuk dapat digunakan oleh semua orang dan tanpa kejutan. Tentu saja ada beberapa pengecualian, karena beberapa perubahan OEM memerlukan lebih banyak upaya untuk beradaptasi, tetapi itu adalah pengecualian masih kecil dan sebagian besar pengguna (dan pengembang) dapat menikmati Xpose yang stabil dan andal pengalaman. Setiap pengecualian yang ditemui akan didokumentasikanpenafian yang jelas agar tidak ada yang terkejut.
Dengan mengingat hal di atas, visi rovo89 untuk Xpose adalah menjadi solusi stabil yang menyediakan kontrak yang andal dan mudah digunakan bagi pengguna dan pengembang. Filosofinya, meskipun Anda mungkin tidak setuju dengannya, sederhana dan dapat dimengerti: sebuah produk seharusnya begitu dilepaskan ketika sudah siap untuk digunakan sebagaimana mestinya, karena melepaskannya sebelum menyebabkan lebih banyak masalah daripada manfaat.
submodul Xpose ART abforce untuk Nougat
Kami enggan menyebut karya abforce sebagai "port" atau "Xpose tidak resmi" karena tidak akurat dan menyesatkan. Seperti yang telah kita lihat, Xpose memiliki dua komponen utama:
- Inti dari kerangka Xpose itu sendiri, yang menangani keajaiban metode pengait.
- Penginstal Xpose, yang memastikan kerangka mudah dipasang di semua perangkat dengan benar.
Apa yang dilakukan abforce adalah mem-porting kode Marshmallow rovo89 pada bagian pertama (hanya kerangka Xgged) ke Nougat, dengan cara yang memerlukan perubahan untuk dipanggang saat mengkompilasi ROM khusus. Selain itu, banyak bagian kecil (tapi penting) dari kerangka kerja yang tidak sepenuhnya disesuaikan dengan Nougat. Oleh karena itu, perilaku bisa jadi tidak konsisten dan meskipun sebagian besar berhasil (meskipun demikian bukanuntuksetiap orang), itu tidak dapat diandalkan. Bagi pengembang dan pengguna modul, mengandalkan implementasi yang tidak lengkap dan tidak konsisten adalah hal yang tepat memberikan pengalaman buruk bagi semua pihak yang terlibat, dengan beberapa modul tidak berfungsi sama sekali atau menyebabkan perangkat tidak bisa boot. Meskipun banyak pengguna mungkin baik-baik saja dengan memilikinya sesuatu daripada tidak sama sekali, sudut pandang pengembang masih dapat dimengerti (terutama jika Anda ingat bahwa penafian tidak menghentikan pertanyaan dan keluhan dukungan palsu).
(Selain dua poin utama di atas, kami juga mengharapkan perubahan lebih lanjut pada kerangka resmi Xpose final untuk memanfaatkan perubahan yang diperkenalkan di Nougat.)
Perlu dicatat bahwa abforce melakukan pekerjaan yang sangat baik ketika sebagian besar puas hanya dengan berbicara, tetapi karyanya jauh dari pengalaman Xpose seutuhnya dan tidak ada pengembang atau blog yang mengklaim sebaliknya (dan tentunya tidak abforce; sekali lagi, kami hanya menghormati semua pengembang yang telah melakukan kerja keras dan upaya nyata dalam hal ini). Faktanya, seperti yang akan kita bahas sebentar lagi, sebagian tanggapan komunitas (baik itu pengguna atau "pengembang") adalah satu-satunya bagian yang buruk dalam rantai perkembangan ini.
Mari kita selesaikan pembahasan ini dan langsung ke pokok persoalan: komunitas mana pun mempunyai elemen dan aspek yang buruk. Dengan komunitas sebesar penggemar Android, elemen-elemen buruk mungkin tampak seperti porsi besar padahal sebenarnya hanya sebagian kecil (cukup besar, namun secara relatif masih kecil). Namun, tanpa basa-basi lagi, banyak tanggapan komunitas terhadap pengembangan Xpose untuk Nougat yang sangat kekanak-kanakan, tidak pengertian, atau tidak bertanggung jawab.
Masalah besar pertama adalah sikap merendahkan yang ditunjukkan oleh banyak orang tentang "kematian Xgged" karena terlalu lama dirilis untuk Nougat. Ini meskipun ada rovo89 pembaruanDanjaminan, dan meskipun skenario yang sama terjadi dengan Lollipop ketika versi awal ART diperkenalkan. Berhenti menggunakan Xpose boleh-boleh saja, namun tidak bermaksud menghina kemampuan seseorang atau menyerang orang lain karena mempunyai filosofi berbeda atau tidak memastikan kebutuhan flashing Anda segera terpenuhi. Hal ini bahkan lebih berlaku untuk proyek yang sepenuhnya gratis, di mana pengembang telah menyatakan metodologi pengembangannya dan alasan di baliknya.
Masalah lain dalam respons komunitas adalah kesalahpahaman tentang sifat pekerjaan abforce, dengan banyak yang memujinya sebagai Xpose baru atau mengiklankannya sebagai port untuk Nougat. Masalah utama dalam hal ini adalah "pengembang" yang terburu-buru menawarkan versi yang dapat di-flash tanpa memahami (atau mempedulikan) kekurangannya, karena tidak ada penafian yang diberikan. ditawarkan sama sekali di beberapa thread, bahkan ada yang memuji abforce dan bukan rovo89 (siapa yang berada di belakang sebagian besar pekerjaan di Xpose) dan lainnya kontributor.
Sebagai poin terakhir, kami merasa harus mengangkat kembali filosofi pengembangan rovo89. Dengan banyaknya pengguna vokal yang mengklaim bahwa menjadikan perubahan terbaru sebagai sumber terbuka akan bermanfaat. Meskipun secara teori ini terdengar bagus, namun memang demikiantidak semudah dalam praktiknya apalagi jika kita memperhatikan penjelasan rovo89 :
[...] Saya percaya bahwa memaksakan keadaan saat ini tidak akan membantu proyek ini. Kita mungkin akan melihat "beberapa" dirilis dengan sangat cepat oleh orang-orang yang mengkompilasi kodenya, melihat hal itu terlihat seperti itu berfungsi dengan baik dan mempublikasikannya sebagai "pelabuhan mereka", meskipun ada masalah dan hal yang harus dilakukan yang tidak mereka sadari dari. Jadi sebut saja saya egois, tapi saya tidak ingin melihat rilis setengah jadi.[Sumber]
Yang sebenarnya terbukti menjadi prediksi yang cukup bagus untuk situasi saat ini, dengan beberapa "pengembang" yang menerapkannya perubahan abforce dan menawarkan ZIP yang dapat di-flash dengan sedikit atau tanpa peringatan, kredit tidak lengkap, semuanya sambil meminta sumbangan.
Kami harap penjelasan ini dapat menghilangkan keraguan Anda dan mengatasi kemungkinan kesalahpahaman yang mungkin Anda alami. Xpose telah menjadi proyek luar biasa yang telah menjangkau sebagian besar komunitas antusias dan flashaholic kami, dan Xpose untuk Nougat harus menjadi tonggak sejarah besar lainnya yang penuh dengan peluang. Dengan modul seperti GravityBox sudah menawarkan dukungan Nougat, proyek rovo89 yang telah selesai akan kembali ke sejumlah opsi.
Apakah Anda bersemangat untuk Xpose di ROM Nougat Anda? Beri tahu kami di komentar!