Czy dostęp do logcat wymaga roota?

9

Moje urządzenie jest już zrootowane, dlatego pytam.

Czy potrzebujesz roota do monitorowania strumienia logcat w telefonie? Gdybym uruchomił polecenie logcat z poziomu terminala w telefonie, czy to zadziała?

Wulfbane
źródło

Odpowiedzi:

15

Te bezpłatne aplikacje na rynku twierdzą, że mogą wyświetlać twojego logcat i nie wspominają o rootie. Wypróbuj je tylko przez kilka minut:

EDYCJA: Podziękowania dla @mente za przypomnienie, że te aplikacje umożliwiają wyświetlanie pełnego pliku dziennika tylko w starszych wersjach Androida. System Android 4.1 wprowadził nowy model zabezpieczeń plików dziennika, który oznaczał, że aplikacje mogą odczytywać tylko własne pliki dziennika i wpisy plików dziennika, a także nie mogą czytać wpisów plików dziennika zapisanych przez system lub inne aplikacje.

Nadal istnieje jednak możliwość wygenerowania przez użytkownika aplikacji pliku dziennika ostatnich wpisów w dzienniku aplikacji, który ma zostać wysłany do programisty, oraz właściciela telefonu, który może zezwolić aplikacji na odczyt pliku dziennika bez pełnego katalogu głównego, ale to wymaga użycia polecenia ADB, co niestety uniemożliwia większości zwykłych użytkowników telefonów:

Jeśli chcesz, aby użytkownik podawał informacje o debugowaniu, możesz poprosić go o wygenerowanie raportu o błędzie z mocą + zmniejszaniem głośności + zwiększaniem głośności, który obejmuje dzienniki i wiele innych danych, i automatycznie wyświetla aplikację e-mail, aby wysłać wszystko (plus zrzut ekranu). Właśnie dyskutowaliśmy, że powinniśmy mieć łatwiejszy sposób na ich wygenerowanie. Spróbuję dodać coś do aplikacji ustawień.

Zacząłem także wprowadzać koncepcję „rozwoju” uprawnienia, które odczytuje logi jako. Pozwala to aplikacji poprosić o pozwolenie, ale nie uzyskać go przy instalacji. Możesz jednak przyznać mu polecenie powłoki adb po zainstalowaniu. W pewnym momencie spodziewam się, że w tym systemie będzie dostępny interfejs użytkownika, ale zamierzamy to powstrzymać, aby zachować ostrożność podczas prezentacji.

Fragment postu w Grupach dyskusyjnych Google autorstwa Dianne Hackborn, inżynier Android Framework. Mój nacisk.

Wspomniana komenda ADB w celu przyznania aplikacji uprawnień do odczytu dzienników to:

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

To ustawienie powinno przetrwać ponowne uruchomienie i uaktualnienia aplikacji (ale nie odinstalowuje / ponownie instaluje).

GAThrawn
źródło
Począwszy od systemu Android 4.1 potrzebujesz dostępu do konta root, aby czytać dzienniki innych aplikacji. Deweloper CatLog opublikował wyjaśnienie . Załóżmy, że te aplikacje działają w wersjach <4.1
mente
1
Ten skrót nie działa na moim Androidzie 4.1.2
mente
Stworzyłem narzędzie do zbierania logów z komputera: gist.github.com/hrj/5983971
HRJ
4

Nie musisz zrootować telefonu, aby uruchomić go adb logcatz zestawem Android SDK, ale właśnie przetestowałem go w emulatorze terminali i musiałem być rootem (użyłem supolecenia - mój telefon jest już zrootowany), aby uruchomić logcat w terminal w moim telefonie.

Więc tak: jeśli masz root na swoim telefonie, możesz uruchomić logcat z terminala w telefonie.

Amanda
źródło
1

Nie, nie potrzebujesz roota, aby uzyskać informacje o logcat.

Aby to zrobić, prawdopodobnie chcesz pobrać zestaw SDK systemu Android i uruchomić polecenie „adb logcat”, korzystając z narzędzia adb dostarczonego z zestawem SDK. Alternatywnie możesz zainstalować wtyczkę ADT Eclipse i skorzystać z jej poręcznej przeglądarki Logcat.

Eric Mill
źródło
chcę to zrobić z telefonu, a nie ze zdalnego komputera z SDK
Wulfbane
1

Nie, nie potrzebujesz roota, aby uzyskać dostęp do logcat. Moje urządzenie (Samsung Galaxy Note, Gingerbread 2.3.6 ze standardową pamięcią ROM) nie jest jeszcze zrootowane (jeszcze!) I skorzystałem z następujących sposobów dostępu do dziennika na moim urządzeniu:

  • Aplikacja CatLog
  • Aplikacja aLogcat
  • Aktywowano aplikację SSHDroid i połączono z terminalem urządzenia za pomocą klienta SSH
  • Korzystanie z zestawu SDK systemu Android i uruchamianie adb logcat

Jednak aplikacja Terminal nie pozwala na uruchomienie logcat i daje „odmowę dostępu”. Nie jestem pewien dlaczego.

Iravanchi
źródło
Tak, na Piernika ... ale dzisiejszy Android nie wymaga korzeń.
NH.
1

Wygląda na to, że nie można uruchomić logcata z emulatora terminali bez rootowania w telefonie. W takim przypadku musisz najpierw su. AFAIK, pochodzi z systemu Android. Emulator terminala po prostu nie ma wystarczających uprawnień, aby wyświetlić dziennik urządzenia. System mówi więc, że odmówiono zgody.

Z drugiej strony, jak powiedzieli inni, istnieje wiele aplikacji, które pozwalają przeglądać dziennik urządzenia tylko dlatego, że proszą o pozwolenie.

atomontaż
źródło
0

Aplikacja Android System Info ma możliwość wyświetlania informacji dziennika na ekranie, który, o ile wiem, jest taki sam, jak logcat wypluwa.

Bill Best
źródło
Czy masz link do tej aplikacji, nie mogę jej znaleźć na rynku?
GAThrawn
@GAThrawn Jeśli nadal jesteś zainteresowany: linki do strony głównej i sklepu Google Play .
Zuul
0

Logcat nie potrzebuje roota. Simples - jest de facto standardem w odniesieniu do różnych wersji Androida i jest częścią Androida niezależnie od tego, czy jesteś zrootowany, czy nie, i jest standardowym sposobem diagnozowania problemów, na przykład - instalujesz aplikację, aplikacja wymusza zamknięcie, narzekasz na programistę tej aplikacji, szanse są dość duże, że programista zapyta „wyślij logcat” bez względu na to, czy jesteś zrootowany, czy nie!

aLogCat to jeden ze sposobów gromadzenia informacji, z opcją logowania do układu strony lub zwykłego tekstu, pamiętaj, że jeśli zaplanujesz logowanie z określoną częstotliwością, na przykład co 15 minut, karta SD zapełni się dość szybko.

Kolejny aspekt, użycie logcat będzie zależeć od jądra pod względem ilości miejsca, w którym może ono przechowywać - w każdym jądrze używanym przez ROM, źródle logowania z poziomu jądra, w którym rezerwuje pamięć dla usługi logcat można znaleźć drivers/staging/android/logger.cza pomocą odpowiednich definicji, na przykład:

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) LOG_DEFINE_LOG

Ponownie przebieg będzie się różnił, niektórzy twórcy takich ROM-ów zdecydują się zminimalizować zużycie, aby zmniejszyć obciążenie pamięci ...

t0mm13b
źródło