Apakah akses ke logcat perlu di-root?

9

Perangkat saya sudah di-root, ini sebabnya saya bertanya.

Apakah Anda perlu root untuk memantau aliran logcat di telepon? Jika saya menjalankan perintah logcat dari dalam Terminal di telepon, apakah itu akan berhasil?

Wulfbane
sumber

Jawaban:

15

Aplikasi gratis ini di Market mengklaim dapat menampilkan logcat Anda, dan tidak menyebutkan root. Anda hanya perlu beberapa menit untuk mencobanya:

EDIT: Terima kasih kepada @mente untuk mengingatkan saya bahwa aplikasi ini hanya akan membiarkan Anda melihat file log lengkap dalam versi Android yang lebih lama. Android 4.1 membawa model keamanan baru di sekitar file log yang berarti bahwa aplikasi hanya bisa membaca file log dan entri file log mereka sendiri, dan tidak bisa membaca entri file log yang ditulis oleh sistem atau aplikasi lain.

Namun demikian masih ada cara bagi pengguna aplikasi untuk menghasilkan file log dari entri log aplikasi baru-baru ini untuk dikirim ke pengembang, dan bagi pemilik ponsel untuk memberikan izin untuk memungkinkan aplikasi membaca file log tanpa root penuh, tapi ini memang mengharuskan Anda untuk menggunakan perintah ADB, yang sayangnya membawanya keluar dari jangkauan sebagian besar pengguna telepon normal:

Jika Anda ingin pengguna memberi Anda informasi debug, Anda dapat meminta mereka membuat laporan bug dengan daya + volume turun + volume naik yang mencakup log dan banyak data lainnya, dan secara otomatis membuka aplikasi email mereka untuk mengirim semuanya (ditambah tangkapan layar). Kami baru saja mendiskusikan bahwa kami harus memiliki cara yang lebih mudah untuk menghasilkan ini juga, saya akan melihat menambahkan sesuatu ke aplikasi pengaturan.

Saya juga sudah mulai memperkenalkan konsep izin "pengembangan", yang membaca log diklasifikasikan sebagai. Ini memungkinkan aplikasi untuk meminta izin, tetapi tidak mendapatkannya saat dipasang. Namun Anda dapat memberikannya dengan perintah adb shell setelah diinstal. Pada suatu saat nanti saya berharap untuk memiliki UI dalam sistem untuk melakukan ini, tetapi kita akan menunda itu untuk berhati-hati tentang bagaimana kita menyajikan ini.

Kutipan dari pos di Google Groups oleh Dianne Hackborn, Android Framework Engineer. Penekanan saya.

Perintah ADB yang disebutkan untuk memberikan izin aplikasi untuk membaca log adalah:

adb shell pm grant <pkg> android.permission.READ_LOGS

Pengaturan ini harus selamat dari reboot dan peningkatan aplikasi (tetapi tidak mencopot pemasangan / menginstal ulang).

GATambar
sumber
Mulai dari Android 4.1 Anda memerlukan akses root untuk membaca log aplikasi lain. Pengembang CatLog memposting penjelasan . Asumsikan aplikasi ini berfungsi untuk versi <4.1
mente
1
Pintasan ini tidak berfungsi pada Android 4.1.2 saya
mente
Saya membuat sebuah utilitas untuk mengumpulkan log dari PC: gist.github.com/hrj/5983971
HRJ
4

Anda tidak perlu me-root ponsel Anda untuk menjalankan adb logcatdengan Android SDK, tapi saya hanya mengujinya di Terminal Emulator saya dan saya memang harus root (menggunakan superintah - ponsel saya sudah di-root) untuk menjalankan logcat di terminal di ponsel saya.

Jadi ya: jika Anda memiliki root pada ponsel Anda, Anda dapat menjalankan logcat dari terminal di ponsel Anda.

Amanda
sumber
1

Tidak, Anda tidak perlu root untuk mendapatkan informasi logcat.

Untuk melakukannya, Anda mungkin ingin mengunduh Android SDK dan menjalankan "adb logcat", menggunakan alat adb yang disertakan dengan SDK. Atau, Anda dapat menginstal plugin ADT Eclipse dan menggunakan penampil Logcat streaming yang praktis.

Eric Mill
sumber
saya ingin melakukan ini dari telepon, bukan dari mesin jarak jauh dengan SDK
Wulfbane
1

Tidak, Anda tidak perlu root untuk mengakses logcat. Perangkat saya (Samsung Galaxy Note, Gingerbread 2.3.6 dengan stock ROM) belum di-root (belum!) Dan saya telah menggunakan cara-cara berikut untuk mengakses log di perangkat saya:

  • Aplikasi CatLog
  • aplikasi aLogcat
  • Aplikasi SSHDroid diaktifkan, dan terhubung ke terminal perangkat menggunakan klien SSH
  • Menggunakan Android SDK dan menjalankan adb logcat

Namun, aplikasi Terminal tidak memungkinkan Anda untuk menjalankan logcat, dan memberi Anda "izin ditolak". Saya tidak yakin mengapa.

Iravanchi
sumber
ya, di Gingerbread ... tapi Android hari ini memang membutuhkan root.
NH.
1

Tampaknya Anda tidak dapat menjalankan logcat dari Terminal Emulator tanpa melakukan root pada ponsel Anda. Dalam hal ini Anda harus su terlebih dahulu. AFAIK, itu berasal dari Izin Android: Terminal Emulator tidak memiliki cukup izin untuk melihat log perangkat. Jadi sistem mengatakan Izin ditolak.

Di sisi lain, seperti yang dikatakan orang lain, ada banyak aplikasi yang memungkinkan Anda untuk melihat log perangkat hanya karena mereka meminta izin.

atomontage
sumber
0

Aplikasi Android System Info memiliki kemampuan untuk menampilkan info log ke layar yang sejauh yang saya tahu adalah info log yang sama dengan meludahkan logcat.

Bill Best
sumber
Sudahkah Anda memiliki tautan ke aplikasi itu, saya tidak dapat menemukannya di Pasar?
GAT Diambil
@GAThambar Jika Anda masih tertarik: beranda dan tautan Google Play Store .
Zuul
0

Logcat tidak membutuhkan root. Simples - ini adalah standar de-facto di seluruh papan sehubungan dengan versi Android yang berbeda dan merupakan bagian dari Android terlepas dari apakah Anda di-rooting atau tidak, dan merupakan sarana standar untuk mendiagnosis masalah seperti pada contohnya - Anda menginstal aplikasi, aplikasi Tutup paksa, Anda mengeluh kepada pengembang aplikasi tersebut, kemungkinan cukup tinggi pengembang akan bertanya "kirim logcat" terlepas dari apakah Anda telah di-rooting atau tidak!

aLogCat adalah salah satu cara mengumpulkan informasi, dengan opsi masuk ke tata letak halaman web atau teks biasa, ingatlah, jika Anda menjadwalkannya untuk login pada frekuensi tertentu seperti setiap 15 menit, SDCard akan terisi dengan cukup cepat.

Aspek lain, penggunaan logcat akan tergantung pada kernel dalam hal berapa banyak yang dapat disimpan - dalam kernel apa pun yang digunakan oleh ROM, sumber untuk logging dari tingkat kernel, di mana ia menyimpan memori untuk layanan logcat dapat ditemukan dalam drivers/staging/android/logger.cmenggunakan definisi yang sesuai misalnya:

DEFINE_LOGGER_DEVICE (log_main, LOGGER_LOG_MAIN, 64 * 1024) DEFINE_LOGGER_DEVICE (log_events, LOGGER_LOG_EVENTS, 256 * 1024) DEFINE_LOGGER_DEVICE (log_radio, LOGGER_LOG_RAD_RADER_DEVICE (log_radio, LOGG_LOG_RAD_BERDIRI) (log_radio, 10 LOGGER, LOGGER, 1064) LOGFER_OGGER_DEVICE

Sekali lagi, jarak tempuh akan bervariasi, beberapa pengembang ROM semacam itu akan memilih untuk meminimalkan konsumsi untuk mengurangi overhead memori ...

t0mm13b
sumber