Atau, bagaimana cara saya me-root perangkat saya tanpa rooter?
Petunjuk rooting untuk perangkat Android yang telah saya lihat biasanya dalam bentuk berikut:
- Unduh
Gingerbreak.apk
- Jalankan Gingerbreak, klik "root device"
- Amati yang
Superuser.apk
telah diinstal secara ajaib, mungkin bersama denganbusybox
dan hal-hal lain, dan nikmati kebaikanmu yang tak terkendali.
Yang ingin saya ketahui adalah ini: bagaimana rooting sebenarnya terjadi? Apa yang dilakukan Gingerbreak?
Saya mengerti hasil akhir rooting:
su
hadir dan berfungsiSuperuser.apk
diinstal dan mengontrol akses kesu
- Berbagai utilitas hadir, disediakan oleh BusyBox (opsional?)
Saya juga berpikir saya memahami ide dasar tentang bagaimana Gingerbreak memulai - ia mengeksploitasi beberapa kerentanan eskalasi hak istimewa lokal dan menggunakan kekuatannya yang baru ditemukan untuk menyebarkan Superuser dan apa pun yang diperlukan.
Jadi, kecuali saya salah dalam beberapa pemahaman yang saya paparkan di atas, inti dari hal yang ingin saya ketahui adalah apa yang dilakukan oleh root installer untuk menggunakan dan mengaktifkan Superuser. Tampaknya hanya menempatkan Superuser.apk
di tempat yang tepat tidak akan cukup - bagaimana cara mendapatkan akses root? Bagaimana cara terhubung ke akses itu untuk aplikasi lain?
Apa yang dilakukan Gingerbreak pasca-eksploitasi untuk mengaktifkan dan mengamankan akses root?
Jawaban:
Apa yang dilakukan oleh APK dan exploit (biasanya) adalah sebagai berikut:
Sebagai contoh, halaman ini merinci bagaimana eksploitasi rageagainstthage mencoba untuk mendapatkan hak istimewa yang ditingkatkan.
sumber
Setelah banyak menggali, saya akhirnya menemukan jawabannya. Saya salah tentang di mana keajaiban itu - tidak ada dalam skrip penginstal; yang harus dilakukan hanyalah meletakkan
su
danSuperuser.apk
binari di tempat yang tepat dan mengatur izinnya. Jadi itu benar-benar sesederhana menjatuhkan file di tempat dan mengatur izin. Tidak ada kabel ajaib.Keajaiban terjadi dalam
su
biner (lihat sumber dan juga pertanyaan ini ). Saya (secara keliru) berpikir bahwasu
itu adalah standarsu
, dan bahwa segala sesuatu terhubung dengan baik ke akses moderat ke biner tersebutSuperuser.apk
.Salah. Apa yang sebenarnya terjadi jauh lebih sederhana: Superuser menyediakan implementasi kustom
su
yang mengotentikasi akses melalui Superuser dan basis data aplikasi resminya.Jadi proses rooting sesederhana kata @Sparx. Perangkat lunak yang digunakan berisi keajaiban.
sumber
su
itu sendiri bukan sihir sama sekali, satu-satunya keajaiban tentang itu adalah bahwa OS memperlakukannya secara khusus. Yang harus dilakukan adalah mengembalikan "OK" atau "Tidak OK" ketika ditanya oleh OS apakah akan mengizinkan aplikasi tertentu untuk meningkatkan izin. Jika hilang, atau selalu mengembalikan "Tidak OK" maka aplikasi normal tidak akan pernah mendapatkan root. Jadi rooting pada dasarnya adalah proses menempatkansu
biner yang kadang-kadang dapat mengembalikan "OK", ke lokasi yang dilindungi pada sistem yang seharusnya tidak memungkinkan ini dilakukan.all that has to do is put the su and Superuser.apk binaries in the right place and set their permissions
seolah-olah ini akan mudah tanpa eksploit, eksploit adalah keajaiban.