Logcat'e erişim için root gerekli mi?


9

Cihazım zaten köklü, bu yüzden soruyorum.

Telefondaki logcat akışını izlemek için root'a ihtiyacınız var mı? Logcat komutunu telefondaki bir Terminal içinden çalıştırırsam, bu işe yarar mı?

Yanıtlar:


15

Market'teki bu ücretsiz uygulamalar, logcat'inizi gösterebildiğini iddia ediyor ve kökten bahsetmiyor. Bunları denemeniz için yalnızca birkaç dakikanızı ayırın:

DÜZENLEME: @mente sayesinde bu uygulamaların yalnızca Android'in eski sürümlerinde tam günlük dosyasını görüntülemenize izin vereceğini hatırlattığı için. Android 4.1, uygulamaların yalnızca kendi günlük dosyalarını ve günlük dosyası girdilerini okuyabileceği ve sistem veya diğer uygulamalar tarafından yazılan günlük dosyası girdilerini okuyamayacağı anlamına gelen günlük dosyalarının etrafında yeni bir güvenlik modeli getirdi.

Bununla birlikte, bir uygulamanın kullanıcısının uygulamanın son günlük girişlerinin bir geliştiriciye gönderilmesi için bir günlük dosyası oluşturmasının ve bir telefon sahibinin bir uygulamanın günlük dosyasını tam kök olmadan okumasına izin vermek için izin vermesinin bir yolu vardır, ancak bu bir ADB komutu kullanmanızı gerektirir; bu komut, maalesef çoğu normal telefon kullanıcısının erişemeyeceği bir durumdur:

Kullanıcının size hata ayıklama bilgileri vermesini istiyorsanız , günlükleri ve diğer pek çok veriyi içeren güç + ses kısma + ses açma özelliğine sahip bir hata raporu oluşturmalarını ve tümünü göndermek için otomatik olarak e-posta uygulamasını açmalarını sağlayabilirsiniz. (artı bir ekran görüntüsü). Sadece bunları oluşturmak için daha kolay bir yolumuz olması gerektiğini tartışıyorduk, ayarlar uygulamasına bir şey eklemeye bakacağım.

Ayrıca okuma günlükleri olarak sınıflandırılan bir "geliştirme" izni kavramını tanıtmaya başladım . Bu, uygulamanın izin istemesine izin verir, ancak yükleme sırasında almaz. Ancak kurulduktan sonra bir adb shell komutuyla verebilirsiniz . Bir noktada daha sonra bunu yapmak için sistemde bir kullanıcı arayüzü olmasını bekliyorum, ancak bunu nasıl sunduğumuza dikkat etmek için bunu tutacağız.

Android Framework Engineer Dianne Hackborn'un Google Grupları'ndaki bir yayınından alıntı . Vurgu.

Günlüklere okuma izni vermek için belirtilen ADB komutu:

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

Bu ayar, uygulamanın yeniden başlatılmasından ve yükseltmelerinden hayatta kalmalıdır (ancak yüklemeleri kaldırmaz / yeniden yüklemez).


Android 4.1'den başlayarak diğer uygulama günlüklerini okumak için root erişimine ihtiyacınız var. CatLog geliştiricisi açıklama yaptı . Bu uygulamaların <4.1 sürümleri için çalıştığını varsayalım
mente

1
Bu kısayol benim Android 4.1.2 üzerinde çalışmıyor
mente

Bir PC'den toplamak günlüklerine bir yardımcı program oluşturuldu: gist.github.com/hrj/5983971
HRJ

4

Sen çalıştırmak için root telefonunuzu gerekmez adb logcatAndroid SDK ile, ama az önce de test yaptım Terminal Emülatörü ve ben kök (kullanılmış olmak zorundaydı ki sukomut - benim telefon zaten köklü bir) içinde logcat çalıştırmak için telefonumdaki terminal.

Evet, telefonunuzda root varsa, telefonunuzdaki bir terminalden logcat'i çalıştırabilirsiniz.


1

Hayır, logcat bilgilerini almak için root'a ihtiyacınız yoktur.

Bunu yapmak için, muhtemelen Android SDK'yı indirmek ve SDK ile birlikte gelen adb aracını kullanarak "adb logcat" i çalıştırmak istersiniz. Alternatif olarak, ADT Eclipse eklentisini yükleyebilir ve kullanışlı akışlı Logcat görüntüleyicisini kullanabilirsiniz.


SDK ile uzak bir makineden değil, telefondan bunu yapmak istiyorum
Wulfbane

1

Hayır, logcat'e erişmek için root'a ihtiyacınız yok. Cihazım (Samsung Galaxy Note, stok ROM'lu Gingerbread 2.3.6) köklü değil (henüz!) Ve cihazımdaki günlüğe erişmek için aşağıdaki yolları kullandım:

  • CatLog uygulaması
  • aLogcat uygulaması
  • SSHDroid uygulaması etkinleştirildi ve bir SSH istemcisi kullanılarak cihaz terminaline bağlandı
  • Android SDK kullanma ve çalıştırma adb logcat

Ancak, Terminal uygulaması logcat'i çalıştırmanıza izin vermez ve size "izin verilmedi" izni verir. Neden olduğundan emin değilim.


evet, Gingerbread üzerinde ... ama bugünün Android yapar kök gerektirir.
NH.

1

Telefonunuzda root olmadan Terminal Emulator'dan logcat'i çalıştıramayacağınız anlaşılıyor. Bu durumda önce su için yapmanız gerekir. AFAIK, Android'den geliyor İzinler: Terminal Emulator sadece cihazın günlüğünü görüntülemek için yeterli izne sahip değil. Yani sistem, İzin'in reddedildiğini söylüyor.

Öte yandan, diğerlerinin söylediği gibi, sadece izin istedikleri için cihazın günlüğünü görüntülemenize izin veren birçok uygulama var.



0

Logcat root gerektirmez. Simples - farklı Android sürümleri ile ilgili olarak fiili bir standarttır ve köklü olup olmadığınıza bakılmaksızın Android'in bir parçasıdır ve örneğin sorunları teşhis etmek için standart bir araçtır - bir uygulama yüklerseniz, App force close, söz konusu uygulamanın geliştiricisine şikayet edersiniz, şansınız geliştiricinin köklü olup olmadığınıza bakılmaksızın "logcat üzerinden gönder" ibaresi oldukça yüksektir!

aLogCat , web sayfası düzenine veya düz metne oturum açma seçeneğiyle bilgileri toplamanın bir yoludur, her 15 dakikada bir gibi belirli bir sıklıkta oturum açmayı planlıyorsanız, SDCard oldukça hızlı bir şekilde dolar.

Başka bir yönü, logcat kullanımı çekirdeğin ne kadar depolayabileceğine bağlı olacaktır - ROM tarafından kullanılan herhangi bir çekirdeğe, günlük kaydı kaynağı, logcat hizmeti için belleği ayıran bir çekirdek düzeyinden kaynaklanır. drivers/staging/android/logger.cörneğin uygun tanımlar kullanılarak bulunabilir :

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_RADIO, 64 * 1024) DEFINE_LERGICE_ LOGGERG Sistem

Yine, kilometre değişecek, bu tür ROM'ların bazı geliştiricileri bellek ek yüklerini azaltmak için tüketimi en aza indirmeyi seçecekler ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.