Isi kandungan:
Kami suka mendapatkan soalan anda. Ia sentiasa menjadi satu perkara yang baik apabila kita dapat membantu antara satu sama lain, dan kita mempelajari perkara-perkara apabila kita mencari jawapan. Walaupun kita tidak dapat mencari masa untuk menjawab semuanya, kadang-kadang soalan tertentu muncul cukup bahawa ia patut mendapat jawapan terperinci.
"Apa maksudnya akar?" adalah salah satu soalan itu. Konsep ini mungkin mudah bagi sebahagian daripada kita, tetapi bagi ramai orang yang tidak menghabiskan masa mengutak-atik dengan Android atau mana-mana sistem operasi berasaskan kebenaran, ada sesuatu yang perlu ditanyakan. Saya akan cuba dan menjawab semuanya sebaik mungkin.
Kebenaran
Sebelum kita menentukan akar, penting untuk memahami mengapa ia wujud dan bagaimana ia berfungsi. Ini kerana Android menggunakan kebenaran (kebenaran berasaskan Linux, tepat) dalam struktur fail. Setiap fail, setiap folder dan setiap partition mempunyai satu set keizinan. Kebenaran ini menentukan siapa yang boleh membaca fail (lihat atau mengakses kandungan tanpa mengubahnya), tulis pada fail (boleh menukar kandungan fail itu, atau buat fail baru dalam folder atau partition) dan laksanakan fail (jalankan fail jika ia jenis yang boleh dijalankan, seperti aplikasi). Ini dilakukan berdasarkan kepada pengguna dan keizinan - pengguna tertentu mempunyai akses, sementara pengguna yang tidak mempunyai kebenaran yang tepat disekat daripada mempunyai akses.
Apabila anda mula-mula menyediakan telefon anda dan hidupkannya buat kali pertama, anda diberikan ID pengguna. Jika pengguna lain melog masuk melalui Google, mereka diberikan ID pengguna yang lain. Apabila aplikasi dipasang pada telefon anda, ia juga diberikan ID pengguna sendiri. Sistem itu sendiri adalah pengguna dan proses lain yang perlu dijalankan pada telefon anda mungkin mempunyai ID pengguna mereka sendiri. Segala-galanya yang boleh berbuat apa-apa kepada mana-mana fail pada Android anda adalah pengguna.
Sistem pengguna dan keizinan adalah bagaimana Android menjejaki siapa yang boleh melakukan apa.
Katakan anda memasang apl pemesejan. Ia akan diberikan ID pengguna apabila anda memasangnya. Ia juga mendapat tempat pada partition data anda sendiri, bahawa ia hanya mempunyai akses kepada. Anda mempunyai keizinan untuk melaksanakan aplikasinya, dan apabila apl berjalan ia mempunyai kebenaran untuk mengakses folder data dan failnya sendiri. Aplikasi ini juga mungkin meminta kebenaran untuk mengakses perkara seperti buku alamat anda atau kad SD atau pustaka foto. Jika anda mengatakan ya kepada permintaan ini (atau jika anda bersetuju dengan keizinan pada versi Android yang lebih lama) ID pengguna apl diberikan kebenaran kepada fail data bagi perkara tersebut, bermakna ia boleh melihat folder data dan isinya dan mungkin berubah mereka atau menambah fail baru. Aplikasi ini tidak dapat mengakses sebarang fail data yang tidak mempunyai kebenaran untuk "melihat" di. Ini bermakna (dalam contoh kita) ia tidak boleh melakukan perkara-perkara seperti melihat pangkalan data tetapan, atau mengakses folder data aplikasi lain. Istilah kotak pasir sering digunakan untuk ini - apl adalah kotak pasir dan hanya boleh dimainkan di kotak pasir yang mereka mempunyai kebenaran untuk masuk.
Untuk fail yang program dan boleh dijalankan (seperti aplikasi), model kebenaran yang sama terpakai. ID pengguna anda mempunyai kebenaran untuk menjalankan aplikasi yang anda pasangkan semasa anda log masuk. Pengguna sistem mempunyai kebenaran untuk menjalankannya dan pengguna peringkat sistem lain mungkin mempunyai akses ke aplikasi atau proses tertentu aplikasi yang digunakan. Aplikasi lain tidak dapat memulakan apl yang tidak mempunyai kebenaran untuk dimulakan. Jika anda menambah pengguna sekunder, mereka tidak mempunyai akses ke aplikasi atau fail anda dan sebaliknya. Terdapat fail, folder dan aplikasi di telefon anda bahawa ID pengguna anda tidak mempunyai kebenaran untuk melihat, mengubah atau menjalankan. Biasanya bahagian Android memerlukan keizinan sistem peringkat (ID pengguna sistem) untuk melakukan apa-apa, dan anda bukan pengguna sistem atau pengguna yang mempunyai keizinan peringkat sistem.
Menukar kebenaran
Walaupun secara teknikalnya mungkin untuk menukar cara telefon anda menaikkan dan fail yang digunakan untuk memulakan sistem yang berjalan dan memberikan kebenaran pengguna ID anda yang tinggi, itu tidak selamat dan praktikal. Tetapi Android (dan kebanyakan sistem berasaskan Unix atau Linux) mempunyai apa yang dipanggil pengguna root, dan menyokong binary SubstituteUser (memikirkan perduaan sebagai aplikasi kecil) untuk menukar ID pengguna. Mereka digunakan untuk mentadbir sistem pada peringkat teras.
Kerana orang-orang yang membuat telefon anda tidak mahu anda mempunyai akses mudah kepada ID pengguna root - dan tidak semua sebabnya egois kerana ia juga melindungi anda dan data peribadi anda - biner SubstituteUser tidak termasuk dalam kebanyakan binaan Android. Tanpa SubstituteUser, kami tidak boleh menukar ID pengguna kami. Kebanyakan perkara tahap sistem di Android mempunyai nama mudah yang serupa, dengan cara ini. Keselamatan teras (fail dalam bootloader dan / atau kernel itu sendiri) juga dibina dengan cara untuk menghalang anda daripada menukar ID pengguna sebagai sebahagian daripada SELinux (S ekologi - E nhanced Linux - memberitahu anda nama mudah) modul kernel. Sesetengah telefon (Samsung Knox datang ke fikiran) mempunyai perlindungan lebih lanjut, dan hampir semua syarikat yang membuat Androids memerlukannya, untuk membuat perubahan, bootloader perlu dikunci supaya fail-fail ini boleh ditukar dan membolehkan anda menukar ID pengguna. Sesetengah telefon, seperti BlackBerry Priv bahkan melangkah lebih jauh dan tidak akan boot jika kita mengubah apa-apa (walaupun kita boleh).
Untuk menjadi root, anda memerlukan cara untuk mengubah ID pengguna anda.
Sekali kita melewati semua itu - sama ada dengan mengunci pembuat boot melalui cara yang diberi kuasa atau menggunakan sejenis eksploitasi - kita boleh meletakkan binary SU (SubstituteUser) di tempat yang ia dapat berjalan ketika ia dipanggil untuk menjalankan - yang dipanggil PATH. Jika mana-mana aplikasi berada di PATH ID pengguna anda, ia akan berjalan tanpa memberitahu sistem dengan tepat di mana ia berada. Anda juga perlu memastikan binari SU berada di tempat yang ID pengguna anda mempunyai kebenaran untuk melaksanakan (menjalankan) fail. Sebarang aplikasi lain (Google Play mempunyai banyak aplikasi yang memerlukan kebenaran root) juga memerlukan akses yang sama. Apabila anda menggunakan kaedah untuk memandikan telefon anda, semua ini disusun oleh orang yang membina kaedah root.
Setelah semua yang ada, kami boleh menjalankan binari SU (atau aplikasi lain boleh menjalankan binari SU).
Mendapatkan akses root
Di sinilah akar masuk. Binari SU menggunakan bendera apabila ia dijalankan untuk memberitahu sistem ID pengguna yang ingin ditukar. Sebagai contoh, jika saya menjalankan binari SU pada komputer Ubuntu saya seperti ini "su Jim -c nano" saya akan menjalankan perintah nano sebagai pengguna Jim (selepas membekalkan kata laluan Jim). Sekiranya anda menjalankan SU binari tanpa bendera atau hujah, ia akan menukar anda kepada pengguna root. Biasanya anda perlu membekalkan kata laluan, tetapi sejak "root" adalah pengguna yang tidak digunakan pada Android ia tidak mempunyai kata laluan. Menjalankan arahan "su" akan mengalihkan anda ke root pengguna, dan memberikan anda ID pengguna 0, dan meletakkan anda dalam kumpulan root. Anda kini Pengguna Super.
Sebagai Pengguna Super, anda boleh melakukan apa saja untuk sebarang fail, folder atau partition pada Android anda. Dengan apa-apa, kami bermaksud apa-apa secara harfiah. Anda boleh mengalih keluar aplikasi bloatware dan anda juga boleh mengalih keluar fail sistem penting yang memecahkan telefon anda. Anda juga boleh melakukan perkara-perkara untuk perkakasan seperti menukar kekerapan CPU dan merosakkan telefon anda selama-lamanya.
Akar adalah pengguna super, yang boleh berbuat apa-apa. Dan kami bermaksud apa-apa.
Apl boleh melakukan perkara yang sama. SU diletakkan di mana ia berada dalam aplikasi PATH dan mana-mana aplikasi boleh memanggilnya dan menjalankannya. Apl itu kemudian mempunyai keizinan Pengguna Super, dan boleh melakukan apa sahaja yang disukai untuk sebarang fail di mana-mana tempat di telefon anda. Inilah sebabnya mengapa orang yang membuat telefon anda benar-benar tidak mahu anda mempunyai tahap akses ini, dan syarikat-syarikat yang membolehkan anda membuka kunci pemuat dan mengubah perkara masih tidak meletakkan binary SU pada telefon anda secara lalai. Mempunyai akses root tanpa cara untuk mengawal siapa atau apa yang boleh menggunakannya berbahaya kepada perisian telefon anda dan data peribadi anda.
Itulah sebabnya anda perlu memasang aplikasi yang memaksa anda untuk membenarkan akses root bila-bila masa anda atau aplikasi lain cuba untuk memohon izin Pengguna Super. Kebanyakan kali apabila anda menggunakan kaedah root untuk telefon anda, satu akan dimasukkan, bersama dengan beberapa binari berguna yang lain seperti toolset BusyBox. Jika anda melakukan perkara dengan tangan, anda perlu memasang sendiri. SuperSU oleh Chainfire di Google Play adalah yang baik untuk bermula dengan.
Kemungkinan dan berakhir
Banyak telefon dan beberapa kaedah root melakukan perkara-perkara yang sedikit berbeza (Android 4.3 membawa banyak perubahan) dan memerlukan skrip atau daemon (anda akan melihat perkataan seperti daemonsu atau su.d disebut) daripada hanya menjatuhkan binari SU di tempat. Ini digunakan untuk memanggil SubstituteUser supaya anda boleh beralih kepada pengguna root seperti kaedah binari mentah. Orang-orang yang mengetahui bagaimana untuk mengaitkan telefon anda telah menyusun semua ini dan ia akan berfungsi sama pada sisi pengguna yang menghadap.
Ia juga mungkin untuk "temp-root" beberapa Androids. Ini bermakna anda boleh mempunyai keizinan Pengguna Super dan melakukan beberapa perkara yang perlu anda lakukan, tetapi reboot memerlukan akses root. Begitu juga, anda boleh mempunyai "shell-root" di mana anda hanya boleh mengakses pengguna root melalui adb dari komputer anda.
Akhirnya, saya ingin menekankan bahawa jika anda mempunyai soalan ini, anda perlu mempertimbangkan jika anda sudah bersedia untuk memiliki Android yang berakar. Kami tidak bergurau apabila kami berkata mudah untuk merosakkan telefon anda dengan akses SuperUser. Tidak ada sebab untuk malu bahawa anda perlu melakukan sedikit bacaan atau bertanya beberapa soalan sebelum anda melakukan perkara-perkara yang boleh memecahkan telefon anda atau memberikan akses aplikasi rawak kepada semua data anda.
Itulah yang kita ada di sini.