Jawaban:
Jika saya memahami pertanyaan Anda dengan benar, Anda bertanya bagaimana mendapatkan akses root secara otomatis ketika Anda menjalankan adb shell
, sehingga Anda tidak perlu masuk ke shell dan mengetik su
untuk menjalankan perintah sebagai root di ponsel Anda.
Ini dikontrol oleh flag di partisi boot Anda, yang diubah oleh sebagian besar custom ROM untuk mengizinkan izin root secara default. Jika Anda jatuh ke suatu $
ketika Anda menggunakan adb shell
maka Anda memiliki dua opsi permanen dan satu opsi sementara (artinya sementara itu tidak menempel jika Anda reboot):
adbd
pada perangkat Anda dengan izin rootNomor 2 sebenarnya tidak terlalu sulit, tetapi bisa agak berbahaya jika Anda ceroboh. Ada artikel wiki di sini yang menjelaskan prosesnya dan menyertakan beberapa skrip Perl untuk membantu Anda. Instruksi ini mengasumsikan lingkungan Linux / Unix. Saya secara pribadi telah menggunakan instruksi ini di Fedora Linux dan dapat memberi tahu Anda bahwa itu berfungsi, tetapi saya tidak tahu tentang * nix environment lain seperti Mac. Saya juga tidak tahu tentang instruksi Windows yang serupa, tetapi saya bisa mencoba melacak beberapa jika Anda menggunakan Windows. Perintah yang tepat akan sedikit berbeda dari ponsel ke ponsel karena perangkat yang berbeda menggunakan tabel partisi yang berbeda.
Secara umum, Anda perlu menarik boot.img Anda saat ini dari ponsel Anda, membukanya, mengekstrak ramdisk, dan menemukan file default.prop . Ini adalah file plaintext, yang harus Anda buka di editor teks dan kemudian temukan baris yang berisi nilai ro.secure
. Jika baris mengatakan ro.secure=1
maka Anda perlu mengubahnya ro.secure=0
. Setelah itu Anda dapat mengemas ulang ramdisk dan boot.img, lalu flash ke ponsel Anda. Setelah Anda reboot, Anda akan disambut dengan #
prompt setiap kali Anda melakukan adb shell
tanpa harus menjalankan su
.
Sebagai alternatif, jika Anda menggunakan ROM khusus tetapi tidak memiliki modifikasi ini, Anda bisa membuka zip ROM dan memodifikasi boot.img yang disertakan dengannya menggunakan langkah-langkah di atas. Kemudian Anda dapat men-zip ROM dengan boot.img yang baru dimodifikasi dan mem-flash file zip seperti biasa.
Ini mungkin tidak perlu dikatakan, tetapi berhati-hatilah saat melakukan ini. Mengobrol dengan partisi boot Anda dapat dengan mudah merusak ponsel Anda dan memaksa Anda untuk pulih melalui HBoot. Saya akan sangat merekomendasikan pengujian Fastboot untuk memastikan Anda dapat menggunakan perintah Fastboot yang diperluas dan melakukan pemulihan. Ini sedikit bervariasi berdasarkan model Anda, tetapi sebagian besar ponsel memiliki beberapa jenis perangkat lunak desktop yang dapat dijalankan untuk merefleksikan ponsel juga.
Opsi ketiga adalah bahwa dalam banyak kasus dimungkinkan untuk me-restart adbd
perangkat Anda dengan hak akses root. Satu kemungkinan adalah untuk mengeksekusi adb root
dari terminal PC, meskipun ini tidak akan bekerja pada semua konfigurasi ROM (ROM harus dibangun sebagai yang "userdebug"). Anda juga dapat mencoba aplikasi tidak aman Chainfire adbd . Ini tidak akan bertahan selama reboot, jadi Anda harus menggunakan aplikasi atau adb root
lagi kapan saja Anda me- restart telepon Anda.
adbd
untuk memiliki izin root di telepon secara default. Ada pos dari anggota tim Android yang menyiratkan ini, tetapi tidak mengatakannya secara eksplisit. Komit ke AOSP ini juga menyiratkan bahwa itu hanyalah sebuah flag yang adbd
memeriksa startup (saya tidak melihatnya di tempat lain di sumber). Seperti yang saya sebutkan, sebagian besar custom ROM yang pernah saya lihat (termasuk CM) telah diatur ke 0.
adb root
perintah untuk me-restart adbd dalam mode auto-su, ternyata itu bergantung pada ini. Tapi saya pikir Anda benar karena itu hanya sebuah bendera.
// ... except we allow running as root in userdebug builds if the service.adb.root property has been set by the "adb root" command"
. Kebetulan, itulah cara kerja versi pertama BurritoRoot untuk Api Kindle, IIRC.
Jika ponsel Anda di-root, Anda dapat menjalankan perintah dengan perintah "su -c".
Berikut adalah contoh perintah kucing pada file build.prop untuk mendapatkan informasi produk ponsel.
adb shell "su -c 'cat /system/build.prop |grep "product"'"
Ini meminta izin root dan menjalankan perintah di dalam ''
Perhatikan 5 kutipan akhir, yang mengharuskan Anda menutup SEMUA kutipan akhir Anda atau Anda akan mendapatkan kesalahan.
Untuk klarifikasi formatnya seperti ini.
adb shell "su -c '[your command goes here]'"
Pastikan Anda memasukkan perintah PERSIS seperti yang biasa Anda lakukan saat menjalankannya di shell.
Cobalah, semoga ini membantu.
Cukup instal adbd Insecure .
Untuk apa Anda mencoba menjalankan root? Anda mengatakan bahwa Anda ingin menjalankan shell ADB dengan root tetapi Anda tidak ingin menggunakan shell ADB? Bisakah Anda mengklarifikasi?
Jika aplikasi meminta akses root, maka aplikasi SuperUser di ponsel Anda harus menangani memberikan izin atau tidak. Proses di mana Anda melakukan root pada ponsel Anda seharusnya sudah termasuk aplikasi SuperUser.
adb shell ps
atau adb shell
dan kemudian ps
untuk mendapatkan daftar proses yang sedang berjalan. Jadi sesuatu membutuhkan akses root, saya ingin dapat melakukan yang pertama.
Sebagai alternatif, Anda dapat menulis skrip di telepon dan menjalankan adb, misalnya:
adb shell sh /sdcard/myscript.sh
Skrip dapat meninggikan dirinya sendiri tanpa intervensi Anda (dengan asumsi SuperUser diatur untuk mengingat persetujuan), misalnya:
su
pm setInstallLocation 1
Saya hanya melakukan ini di ponsel saya dengan sukses, satu-satunya masalah adalah bahwa saya belum cukup tahu cara mengakhiri sesi adb shell dengan bersih. Saya harus Ctrl-C di shell Windows saya untuk kembali ke command prompt Windows - jika adb hanya duduk di #
prompt dan tidak menerima input.
saya gunakan untuk memperbaiki masalah masalah tombol home
perangkat adb
adb shell su -c commands
atau
adb shell root sqlite3 /data/data/com.android.providers.settings/databases/settings.db "INSERT INTO secure (name, value) VALUES ('device_provisioned', '1');"
adb kill-server
Anda juga dapat mengatur bit suid di 'sh' Anda. Saya menggunakan BusyBox sehingga instruksi mungkin tidak cocok dengan pengaturan Anda:
dan Anda harus memiliki prompt root