Jak mogę uzyskać dostęp do plików dziennika Androida na moim Nexusie 7 bez dostępu root?

9

Od aLogCat teraz już nie działa z Jelly Bean , w jaki sposób można uzyskać dostęp do plików dziennika systemowego na urządzeniu bez obu dostępu administratora lub podłączeniu go do komputera?

I próbowaliśmy korzystając adb logcatz komputera i że pracował w porządku, więc wiem, że wiele wiadomości są rejestrowane.

Korzystanie logcatz Android Terminal Emulator na moich Nexus 7 pokazuje prawie nie ma wyjścia i choć adb logcatz Androidem Terminal Emulator , uruchamia demona, ale potem po prostu mówi - waiting for device -i wydaje się nic więcej.

Czy mogę uzyskać dostęp do plików dziennika Androida na moim Nexusie 7 bez dostępu root ?

Mark Booth
źródło
@Izyzy - Istota tego pytania polega na tym, że wszystkie rozwiązania zawarte w moim drugim pytaniu (do których podłączyłem to pytanie) wymagają dostępu do katalogu głównego. Chociaż te rozwiązania są przydatne dla tych, którzy zrootowali swoje urządzenia, chciałem bardziej konkretnego rozwiązania dla tych, którzy nie zrootowali swojego urządzenia.
Mark Booth,
Możesz znaleźć PhoneHome warty obejrzenia
Dori

Odpowiedzi:

12

Nie, ze względów bezpieczeństwa nie można uzyskać dostępu do plików dziennika Androida na Nexusie 7 (lub innym urządzeniu z Jelly Bean lub wyższym) bez dostępu root. Google zmieniło to dzięki Jelly Bean.

Proponuję poczekać, aż czytniki logcat takie jak aLogCat i takie zostaną naprawione (tj. Będą wymagały dostępu do katalogu głównego, aby wyświetlić wszystkie dzienniki).

Z AISEC-TR-2012-001-Android-OS-Security.pdf - 3.3 Model uprawnień Android :

Zezwolenie READ_LOGS może zastąpić następujące elementy na wielu urządzeniach, w zależności od wersji Androida, a tym samym zainstalowanych standardowych wersji aplikacji:

  • READ_CONTACTS

  • GET_TASKS - każde rozpoczęte działanie jest wymienione w logach systemu

  • READ_HISTORY_BOOKMARKS - otwieranie nowych stron internetowych jest działaniem przeglądarki i dlatego jest rejestrowane

  • READ_SMS

Wszystkie poniższe rozwiązania wymagają dostępu do konta root :

Musisz albo uruchomić logcat jako root w powłoce, albo ręcznie przyznać go za pomocą komendy shell pm (wymagany root) również działa (patrz XDA , zamień org.jtb.alogcat.donate na nazwę pkg aplikacji):

pm grant org.jtb.alogcat.donate android.permission.READ_LOGS

To jest dla leniwych i nie sugerowane: jeśli jesteś zdesperowany, nieostrożny i leniwy, możesz to naprawić, udzielając każdej aplikacji uprawnienia READ_LOGS, stosując ten brzydki i niepewny hack ( Chainfire przez Twitter ):

chmod 04755 /system/bin/logcat

Cytując post G + dewelopera CyanogenMod, Koushika Dutty :

Czy uprawnienia / zachowanie dziennika Android zmieniły się w JellyBean?

Wygląda na to, że jeśli aplikacja uruchomi teraz „logcat”, może zobaczyć tylko wpisy dziennika utworzone przez jej identyfikator UID. Wiersze dziennika z innych identyfikatorów UID nie są wyświetlane. Zasadniczo wydaje się teraz filtrowane.

Mam takie same uprawnienia jak zwykle. Potwierdził również, że to samo dzieje się w innych aplikacjach do zbierania dzienników.

ce4
źródło
Nie ma mowy bez korzenia, o którym wiem. Ze względów bezpieczeństwa. Począwszy od JellyBean, uprawnienia read_logs nie trzeba już przyznawać (i tak każda aplikacja może wyświetlać tylko własne dzienniki).
ce4
Dzięki za edycję i link do XDA, zintegrowałem to.
ce4
Dziękujemy za dodanie pm grantopcji. Należy zauważyć, że jak już teraz powiedzieć, w drugiej moją odpowiedź , musisz podać nieco inny pakiet jeśli nie używasz podarować wersję aLogCat :pm grant org.jtb.alogcat android.permission.READ_LOGS
Mark Booth
Przywołany artykuł wyjaśnia, w jaki sposób READ_LOGSjest równy READ_CONTACTSna niektórych platformach. Myślę, że oznacza to, że niektóre aplikacje umieszczają dane kontaktowe w dziennikach, ale tak naprawdę nie jest to samo READ_CONTACTS. Ale wtedy powiedziałbym, że gazeta jest napisana alarmistycznie.
Flow
READ_LOGS przecieka o wiele więcej informacji niż tylko dane kontaktowe. Jest nazwa użytkownika, prawdopodobnie adres Gmail, lokalizacje, zainstalowane aplikacje (nawet użycie aplikacji) i tak dalej. Plus: został wykorzystany do odczytu i wyodrębnienia adresów ze zrzutów stosu demonów systemowych w dniach poprzedzających ASLR przez exploity roota. Teraz, gdy są one w dużej mierze wyłączone (4,1 ±), możesz uzyskać ochronę roju (porównaj to z brakiem szczepienia dziecka w populacji szczepionej wolnej od choroby). Pojawiły się problemy i Google postąpił właściwie.
ce4
1

Jestem tym zmieszany, choć wyjaśniałoby to niektóre rzeczy.

Z tą samą aplikacją na moim Nexusie 7 i moim Galaxy Nexusie, zarówno na galaretce, telefon widzi dane wyjściowe dziennika ze wszystkich aplikacji, a tablet nie. To by powiedziało, że to nie żelki to jego nexus7. Kopię zapasową tego właśnie sprawdziłem i oba mają różne jądra. Tablet z nowszym.

Być może jest to zaktualizowane jądro, co oznacza, że ​​logi się nie pojawiają.

Chyba będę musiał rootować: (

Russ Wheeler
źródło
To interesujące Russ, dzięki za dodatkowe informacje.
Mark Booth,
Właściwie zostałem teraz rzetelnie poinformowany, że to dlatego, że aplikacja, której używam do przeglądania dzienników, została zainstalowana na moim komputerze, gdy miałem ICS, więc zachowałem uprawnienia do przeglądania dzienników.
Russ Wheeler,
1

Opracowałem aplikację Logcat, która wykorzystuje alternatywne podejście. Wykorzystuje funkcję zdalnego debugowania. Musisz go najpierw włączyć w telefonie, ale musisz to zrobić tylko raz, a następnie możesz użyć aplikacji do pobrania wszystkich dzienników.

Anton Tananaev
źródło