Zip yang dapat di-flash sekarang tersedia yang membawa Xpose Framework ke ROM Android 7.1 Nougat. Zip berfungsi di OnePlus 3T dan juga banyak ponsel lainnya!
Setelah berbulan-bulan menunggu, kami akhirnya mendapatkan dukungan Xpose Framework untuk ROM Nougat (walaupun secara tidak resmi). Terima kasih kepada beberapa pengembang berbakat di Forum XDA kami, kini Anda dapat menginstal Xpose Framework pada ROM Android Nougat melalui zip yang dapat di-flash.
Hingga saat ini, masa depan Xpose di Nougat tampak sedikit goyah. Rovo89 - pengembang di balik Xgged Framework - memberikan pembaruan tentang dukungan untuk Android Nougat lebih dari seminggu yang lalu. Rovo89 pada dasarnya menyatakan bahwa masih banyak pekerjaan yang harus dilakukan agar Xpose berfungsi dengan baik di Nougat, dan kami hanya harus bersabar.
Syukurlah, sepertinya kita telah mendapatkan solusi sementara bagi kita yang sudah cemas menunggu tindakan sementara. Tim PurifyOS mengambil modul ART yang dikembangkannya hilang telah bekerja pada (dan
Saat ini ada tiga versi yang tersedia untuk platform berbeda, termasuk Xpose SDK25 ARM64, Xpose SDK25 LENGAN, dan Xpose SDK25 X86. Tim PurifyOS telah menguji Xpose versi baru ini dengan OnePlus 3T yang menjalankan OxygenOS berbasis Android 7.1, namun seharusnya dapat berfungsi pada ponsel lain yang menjalankan Android Nougat dan pengguna telah melaporkan bahwa mereka berhasil menginstalnya pada ROM yang berbeda dan perangkat. Misalnya, beberapa pengguna OnePlus 5 telah melaporkan bahwa ini berfungsi (tidak mengherankan, mengingat ini berjalan di OnePlus 3T baik-baik saja), namun pengguna yang menjalankan ROM berbasis AOSP untuk Samsung Galaxy S6 juga melaporkan bahwa itu berfungsi untuk mereka.
Akan ada keunikan yang perlu diketahui dan sejauh ini tidak semua orang berhasil menjalankannya, dengan beberapa pengguna mengalami penutupan paksa dan keanehan lainnya. Namun demikian, meskipun demikian, Anda masih dapat mencobanya jika Anda telah menunggu kedatangan Xpose di Nougat sejak versi OS Android sebelumnya dirilis. Tidak semua modul Xpose Framework yang ada akan langsung berfungsi, tetapi beberapa modul yang sangat populer seperti Amplify dilaporkan berfungsi.
Pastikan untuk membuat cadangan rutin dan membaca thread dengan cermat sebelum melanjutkan jika Anda tidak yakin apakah perangkat atau ROM Anda didukung. Terakhir, pastikan untuk menggunakan fungsi "pencarian" sebelum meninggalkan pertanyaan duplikat. Android O mungkin akan segera hadir, tetapi seperti kata pepatah, "lebih baik terlambat daripada tidak sama sekali." Selain itu, banyak pengguna yang tidak akan melihat Android O di perangkat mereka dalam jangka waktu yang cukup lama, jadi Xpose akan menjadi solusi yang bagus agar Anda tidak merasa ketinggalan.
Pembaruan: Tanggapan Rovo89
Yang asli dikembangkan di balik Xgged Framework, Pengembang Senior yang Diakui XDA rovo89, telah merespons di Github dengan pemikirannya tentang perkembangan terkini.
Dari pengalaman saya, saya dapat memberitahu Anda bahwa memang tidak terlalu sulit untuk menyelesaikan dasar-dasarnya, tetapi butuh banyak waktu untuk menyelesaikan detailnya. Ini seperti aturan 80-20, hanya saja lebih seperti 95-5 atau lebih.
Pendekatan hooking yang saya rancang untuk rilis sebelumnya cukup stabil dan dapat diterapkan untuk rilis yang lebih baru juga. Saya berasumsi Anda membutuhkan sebagian besar waktu untuk memeriksa semua tempat
IsProxyMethod()
DanIsDirect()
dipanggil dan memutuskan apakah mereka harus mempertimbangkan pengubah metode baru atau tidak (yaitu menggunakan parametertrue
atau tidak). Jika Anda tidak melakukannya, Anda mungkin melewatkan beberapa tempat di mana mereka baru saja melakukan panggilan semacam itu. Sama untuk metode sepertiInstallStubsForMethod()
, yang perlu beroperasi pada metode asli meskipun dipanggil untuk metode ketagihan. Anda perlu memeriksa lebih banyak tempat yang mungkin relevan dengan hal ini. Itu masih dalam rentang hari, namun jika Anda tidak melakukannya, Anda mungkin akan melihat error yang tidak jelas atau perilaku buruk yang sangat sulit untuk di-debug.Selain itu, Anda mengambil pendekatan di mana hook hanya akan berfungsi dengan baik untuk ROM yang seluruhnya dikompilasi dari awal. Pada ROM stok dan bahkan sebagian besar ROM khusus (yang tidak menyertakan port Anda saat membangun) serta untuk aplikasi apa pun yang mungkin telah dikompilasi oleh perangkat sebelumnya. Jadi, Anda harus memulai dari awal lagi dengan perangkat yang dihapus dan menjalankan ROM khusus. Jika tidak, maka optimasi (misalnya inlining) mungkin mencegah pemanggilan metode sama sekali, dan karenanya hook tidak akan berfungsi. Hal terburuknya adalah perilaku sebenarnya akan bergantung pada ROM, atau bahkan cara pengguna menggunakan perangkat (sekarang aplikasi dikompilasi berdasarkan profil). Modul akan gagal secara acak dan pengembang modul akan bertanya-tanya apa kesalahan mereka (jawaban: tidak ada). Jika tidak semua prasyarat terpenuhi, API tersebut tidak dapat diandalkan. Bayangkan Google menerbitkan pembaruan di mana
OnClickListener
kadang-kadang tombol tidak dipanggil, kecuali Anda mengkompilasi ROM Anda dari awal... Bagi saya pribadi, ini adalah batasan yang besar.
Dia melanjutkan:
Sama sekali tidak masuk akal untuk menerbitkan ZIP yang dapat di-flash dengan ini, karena port tersebut hanya dimaksudkan untuk mengkompilasi ulang ROM dari awal.
Dan seperti yang aku takutkan, tidak ada satu pun peringatan bahwa ini adalah port yang tidak lengkap yang sering kali gagal memenuhi kontrak API. 😠 Itu buruk bagi pengembang dan pengguna, mereka setidaknya harus tahu bahwa ini tidak lengkap sehingga mereka dapat memutuskan apakah mereka ingin mendukung/menggunakannya. Saya tidak akan pernah berani melakukan hal seperti itu tanpa peringatan besar. Sebenarnya, karena saya agak perfeksionis, saya tidak akan menerbitkan versi yang tidak lengkap sama sekali, keandalan sangat penting bagi saya.
Saya baru saja memeriksa log Git saya dan pengait dasar (seperti pada port ini) sudah siap pada bulan Oktober. Sejak itu, saya berupaya menghilangkan batasan-batasan tersebut. Untuk membuatnya lebih dapat diandalkan pada ROM yang telah dikompilasi sebelumnya, saya dapat mem-porting bagian kompilasi ulang juga, namun itu masih belum ideal. Seperti yang dijelaskan di atas, kami sekarang memiliki JIT, yang memungkinkan kami menyimpan semua optimasi, hanya membatalkan validasi (dan mungkin mengkompilasi ulang) metode yang secara langsung terpengaruh oleh hooking. Ini cukup menantang, karena lebih dari sekedar copy & paste. Dan sampai ini selesai, saya tidak akan mempublikasikan apa pun. 9 bulan untuk itu (sampai sekarang) itu waktu yang lama banget ya, tapi hei, ini waktu luangku dan mis. karena pindah ke apartemen baru, saya sama sekali tidak dapat mengerjakan Xpose selama beberapa bulan (!), dan sebaliknya hanya memiliki waktu yang sangat terbatas.
Kami harus memperjelas bahwa perkembangan terkini ini bukanlah "Xpose" yang sebenarnya seperti yang Anda semua ketahui suka, tetapi secara fungsional mereka memungkinkan Anda untuk menggunakan beberapa Modul Kerangka Xpose sekarang di Android Nougat. Kami tidak akan menyalahkan Anda karena tidak menunggu versi Xpose Framework untuk Android yang resmi, lebih stabil, dan lebih kompatibel Nougat, tapi kami ingin memperjelas bahwa iterasi ini hanyalah tindakan sementara yang dimaksudkan untuk memenuhi kebutuhan sebagian pengguna, bukan? Sekarang. Kemungkinan besar hal ini tidak akan terjadi pada Xpose di masa mendatang.
Unduh Kerangka Xpose Tidak Resmi untuk Nougat di Forum XDA