SuperSU BETA: Rooting Android Lollipop pada Stock Kernel

Breaking: Chainfire hari ini mengumumkan SuperSU Beta 2.27, menghilangkan kebutuhan modifikasi kernel ramdisk untuk memanfaatkan akses root pada Android 5.0

Hingga saat ini, jika Anda ingin mendapatkan root pada Android 5.0, Anda perlu mem-flash kernel yang dimodifikasi ke perangkat Anda untuk mengatasi beberapa batasan SELinux. Pengembang Senior yang Diakui XDA api unggun baru-baru ini merilis yang sebelumnya diperlukan CF-Root Otomatis paket, yang membuat modifikasi ramdisk kernel yang diperlukan untuk menghapus batasan SELinux dari skrip install-recovery.sh di AOSP. Namun pagi ini, Chainfire membuat banyak orang tersenyum, begitu pula dia diumumkan di Twitter bahwa hal ini tidak lagi diperlukan di masa mendatang.

Hingga saat ini, Chainfire telah merencanakan untuk merilis alat patching otomatis berbasis ZIP, secara otomatis menambal gambar kernel dari dalam pemulihan TWRP, hingga ia menemukan metode yang cocok untuk menghilangkan kebutuhan tersebut ini.

Pengungkapan ini berarti bahwa pengguna Android 5.0 tidak perlu lagi menjalankan kernel yang dimodifikasi untuk mendapatkan akses root melalui SuperSU (atau solusi root lainnya). Meskipun bukan masalah besar pada perangkat Nexus dengan bootloader yang tidak dapat dibuka, perlunya modifikasi ramdisk mengkhawatirkan bagi banyak pengguna perangkat yang terkunci bootloader yang tidak dapat dibuka kuncinya (ya, sayangnya mereka melakukannya ada). Jawaban atas doa mereka kini ada di sini, dan kami dapat menyajikan penjelasan eksklusif mengenai perubahan yang diperlukan. Setidaknya untuk saat ini (sampai/kecuali Google menambalnya), dimungkinkan untuk mendapatkan akses root dan kemudian menginstal dan menggunakan SuperSU pada perangkat Android 5.0 bawaan, tanpa penyesuaian ramdisk kernel apa pun. Alasannya adalah SuperSU perlu menjalankan layanan sebagai root, untuk memungkinkan akses root tanpa batasan pada perangkat yang dilindungi SELinux.

Sebelumnya, SuperSU akan memanfaatkan AOSP yang sudah diinstal sebelumnya flash_recovery layanan (digunakan di AOSP untuk memperbarui pemulihan setelah instalasi OTA) untuk memulai daemon SuperSU (yang sebenarnya memberikan hak akses root untuk aplikasi yang memintanya). Dengan dirilisnya Lollipop, layanan ini telah ditambahkan ke konteks SELinux yang terbatas, artinya layanan ini tidak lagi memiliki akses murni ke sistem. Modifikasi kernel sebelumnya berupaya menghilangkan batasan SELinux dari skrip ini.

Rilisan beta terbaru SuperSU dari Chainfire menyelesaikan masalah ini dengan menggunakan layanan inti 'Zygote' (bertanggung jawab untuk meluncurkan semua layanan Java, dan dengan demikian semua aplikasi yang diinstal pada perangkat). Karena Zygote adalah satu-satunya layanan yang tersedia di Android L, yang dimulai sebagai root di dalam konteks SELinux "init" yang tidak dibatasi, ini menjadikannya target utama untuk digunakan dalam pengoperasian SuperSU. Setelah boot, layanan Zygote memiliki konteks "init" SELinux yang dialihkan ke konteks "Zygote" finalnya (terbatas). Chainfire telah berhasil memodifikasi file Zygote, untuk menjalankan kode sebagai pengguna root, dalam konteks "init" yang tidak dibatasi, sehingga mengembalikan SuperSU ke Android L, tanpa kernel modifikasi.

Ini bukan pertama kalinya Chainfire beralih ke Zygote untuk memecahkan masalah ini; versi 2.23 beta sebelumnya menggunakan Zygote sebagai sarana untuk menghindari beberapa masalah SELinux lainnya (yang menyebabkan aplikasi root rusak di Android L). Hal ini memungkinkan beberapa (tetapi tidak semua) aplikasi yang tidak berfungsi dapat berfungsi - sisanya memerlukan beberapa pembaruan oleh pengembangnya. Sayangnya, ketika kode 5.0 AOSP dikonsultasikan, ternyata Google telah melanggar metode pengambilalihan layanan Zygote ini. Mengingat semua upaya sebelumnya untuk mengambil alih Zygote telah gagal, ini merupakan langkah maju yang menjanjikan.

Chainfire ingin menunjukkan bahwa SuperSU telah lama mampu mengubah kebijakan SELinux pada sistem yang sedang berjalan (dan memperingatkan kemudahan dalam hal ini). mana yang dapat dinonaktifkan oleh OEM, dan benar-benar mencegah akses root yang berarti dan sederhana), dan bagaimana modifikasi apa pun yang dilakukan pada Zygote harus dilakukan hati-hati, mengingat layanan dijalankan dari berbagai konteks yang berbeda, untuk tugas yang berbeda, dan ini menimbulkan kemungkinan sejumlah (jahat) kegagalan halus. SuperSU beta 2.27 baru ini dibuat untuk para antusias dan teknisi lainnya untuk bermain, untuk mengetahui apa yang rusak. Semoga saja--tidak ada bug penghenti yang tidak terduga, dan ini adalah cara yang layak untuk maju.

Perhatikan - bahkan jika versi beta ini berhasil dan Zygote adalah cara yang lebih disukai untuk mendapatkan akses root, ke depannya, keseluruhan proses hanya berupa perubahan satu baris saja. agar tidak dibobol oleh Google, yang akan membuat ramdisk kernel yang dipatch menjadi masa depan untuk akses root pada Android (sehingga mengesampingkan root untuk bootloader-locked perangkat). Memang, sebagai peringatan, proses baru ini bahkan mungkin tidak berfungsi pada build AOSP yang sepenuhnya mutakhir, karena beberapa SELinux yang cukup besar. perubahan dalam beberapa bulan terakhir, yang tidak termasuk dalam perangkat ritel, namun pasti akan ada di masa depan rilis. Cepat atau lambat, tampaknya ramdisk kernel yang dimodifikasi akan diperlukan untuk root, namun beta baru ini mungkin menawarkan penundaan eksekusi yang singkat sebelum kita harus menuju ke arah itu.

Periksa catatan rilis untuk informasi lebih lanjut tentang risiko yang terlibat dalam pengujian ini, dan untuk tautan. Pengembang juga harus menyadari bahwa Chainfire saat ini sedang bekerja keras untuk mengembangkannya Panduan "Cara SU". (diperbarui sepenuhnya untuk Android 5.0), yang akan tersedia dalam beberapa hari ke depan.

[Terima kasih banyak kepada Chainfire atas karyanya di sini, dan bantuannya dalam mempersiapkan artikel ini.]