Проблеми з доступом до журналів повідомлень на Jelly Bean за допомогою aLogcat


12

Підсумок

У мене виникли проблеми з доступом до повідомлень журналу K9 за допомогою aLogcat, докладнішу інформацію див. Нижче. Що я хотів би знати:

  • Чому в засобі перегляду журналу aLogcat не відображаються повідомлення журналу K9?
  • Хто-небудь має пропозиції щодо того, як я бачу повний текст помилок, які виникають при спробі синхронізувати папки K9?
  • Чи могло щось змінитись у Jelly Bean, що призвело до того, що запис K9 припинив роботу?
  • Оскільки, здається, дуже мало повідомлень, які показує aLogcat взагалі, чи щось змінилося в Jelly Bean, що може означати, що він більше не може отримати доступ до всіх повідомлень?

Деталь

Останнім часом у мене є проблеми з підключенням до K9. Мої папки не синхронізуються, і список папок закінчується повним помилками сокета ( libcore.io.ErrnoException:) або помилками ssl ( javex.net.ssl.SSLException:) тощо, де має бути останній перевірений час . Я отримую різні повідомлення залежно від того, яка проблема виникає в той час, але я не бачу повного тексту повідомлення про помилку, тому важко здогадатися, в чому може бути причина.

Думаючи, що файли журналів можуть містити більше інформації, я дотримувався вказівок із запису журналу налагодження , увімкнув журнал налагодження в K9, встановив aLogcat і спробував переглянути журнали. На жаль, який би буфер журналу я не вибрав ( Головне , Події чи Радіо ), повідомлення K9, як видається, не було.

Якщо я додаю запропонований (k9|AndroidRuntime)фільтр регулярних виразів, то в жодному з журналів я нічого не бачу . Якщо я видаляю його, то Main містить в основному повідомлення про збирання сміття, події, схоже, містять в основному повідомлення від самого aLogcat, і я ще не бачив повідомлення журналу в Радіо .

Якщо це має якусь різницю, я використовую Nexus 7, але я б подумав, що ведення журналу було б у стандартному місці, яке не змінюватиметься між версіями Android.

Відповіді:


24

Хто-небудь має пропозиції щодо того, як я бачу повний текст помилок, які виникають при спробі синхронізувати папки K9?

Здається, що немає можливості побачити ці повідомлення журналу на пристрої без доступу до кореня , але якщо у вас є root-доступ, є пара варіантів: або надайте необхідні дозволи для aLogcat, або розглянути можливість використання жахливого злому TM для перегляду їх безпосередньо.

Перегляньте файли журналів на вашому ПК або робочій станції через adb

Якщо ви можете підключити свій пристрій Android до ПК або робочої станції, ви можете отримати доступ до журналів за допомогою adbкоманди.

Для цього в Windows спочатку вам потрібно буде встановити Android SDK (для якого знадобиться Java SE SDK ) та додати android-sdk\toolsі android-sdk\platform-toolsдо системного шляху . Потім увімкніть налагодження USB на своєму Nexus 7, підключіть його через USB та встановіть Android Composite ADB Interface з android-sdk\extras\google\usb_driver(мені довелося змусити Windows XP шукати тут, він не знайде драйвери самостійно).

Детальніше про те, як встати adbта запуститись без повної установки Android SDK або на комп'ютерах Mac чи Linux, див . Відмінну відповідь Іззі на те, чи мінімальна установка ADB?

Потім ви можете відкрити оболонку (тобто cmdвікно) і виконати команду:

adb logcat k9:V *:S AndroidRuntime:E
  • Я підтвердив, що це працює на моєму не вкоріненому Nexus 7.

Надайте дозволи на aLogcat

Якщо у вас є кореневий доступ , ви можете розглянути можливість надання READ_LOGSдозволу на aLogcat , як це запропоновано в цій публікації aLogcat / CatLog / Lumberjack не працює? Зробіть це ... на форумі xda-розробників :

pm grant <pkg> android.permission.READ_LOGS

Щоб надати цей дозвіл alogcatабо alogcat.donate, ви скористаєтесь однією з наступних команд, залежно від того, використовується версія пожертвування чи ні:

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

Згідно з однією публікацією для розробників Android та квитка , дозвіл переживає перезавантаження та оновлення, але не видаляє / перевстановлює.

На жаль, оскільки для цього потрібен кореневий доступ, незалежно від того, чи запускаю це на пристрої чи на своєму ПК (з префіксом adb shell), я просто отримую помилку:

Neither user 12345 nor current process has android.permission.GRANT_REVOKE_PERMISSION
  • Я не можу підтвердити, що це працює, оскільки мій Nexus 7 не вкоренився.

Подумайте про використання жахливого зламу TM

Якщо у вас є кореневий доступ , ви можете розглянути можливість створення встановленого logcat root та запуску logcat із оболонки пристрою, як це запропоновано у цій відповіді на мій Як я можу отримати доступ до файлів журналів Android на своєму Nexus 7 без доступу до кореня? питання:

chmod 04755 /system/bin/logcat
logcat k9:V *:S AndroidRuntime:E
  • Знову ж таки, я не можу підтвердити, що це працює, і, мабуть, я б використовував його лише в крайньому випадку , враховуючи наслідки для безпеки.

Чому в засобі перегляду журналу aLogcat не відображаються повідомлення журналу K9 ?

Чи могло щось змінитись у Jelly Bean, що призвело до того, що запис K9 припинив роботу?

Оскільки, здається, дуже мало повідомлень, які показує aLogcat взагалі, чи щось змінилося в Jelly Bean, що може означати, що він більше не може отримати доступ до всіх повідомлень?

Це, мабуть, є зміною в Jelly Bean, яка впливає на всі програми, які можуть спробувати прочитати файли журналів.

Мабуть, дозвіл READ_LOGS не надається стороннім додаткам в Jelly Bean . Оскільки це посилання видається ненадійним:

Сьогодні я перевірив свою програму на найновішому (api 16) емуляторі, перш ніж випустити його в Google Play. Виявилося, що Android зараз відмовляється надавати цей дозвіл стороннім програмам. Це дивно, оскільки я переглянув усі документально підтверджені зміни Jelly Bean і не зміг знайти нічого, що згадує дозвіл READ_LOGS.

і пізніше

Рівень захисту для READ_LOGS тепер "підпис | розробка системи". Новий синтаксис труби для protectionLevel також недокументований (див. Http://code.google.com/p/android/isissue/detail?id=34785 ).

Я підозрюю, що aLogcat бачить лише повідомлення, що генеруються самі собою, і це vm.

Для отримання додаткової інформації див. Відповідь потоку на моє запитання. Наскільки активно я повинен очікувати, що буде мій файл журналу Jelly Bean?


IIRC adb logcatвсе ще може отримати повний журнал Android на Jelly Bean.
Потік

Він не потребує root, але вам потрібно включити adb на своєму пристрої (як правило, під параметри розробника).
Потік

@Flow - Зараз я підтвердив, що можу переглядати журнал на своєму ПК, використовуючи adb logcatзвідти, і відповідно оновив свою відповідь. Це все ще засмучує те, що я не можу знайти жодного способу отримати доступ до журналів без кореневого доступу з самого пристрою.
Марк Бут

Вся суть у зміні журналу JB полягає в тому, що користувач, який не має кореня, не може отримати доступ до повного системного журналу.
Потік

@ Flow - Так, і вся суть журнальних повідомлень полягає в тому, що ви можете використовувати їх, щоб дізнатися, що відбувається. JB робить додаток на зразок aLogcat досить безглуздим, оскільки тепер він може отримувати доступ лише до повідомлень журналу, які створив сам!
Марк Бут

0

Я бачив таку поведінку в K9, коли мій поштовий сервер оновлював SSL-сертифікати. Виправлення полягало в тому, щоб довго натискати обліковий запис, вибирати Account settings -> Fetching mail -> Incoming serverта просто натискати Nextна сторінки, щоб підтвердити свої налаштування, поки не з’явиться спливаюче вікно про сертифікат (це може не з’явитися, якщо з сертифікатом все гаразд, у мене неправильний vhost). Підтвердьте сертифікат і просто пройдіть решту налаштувань, і ваш обліковий запис повинен почати працювати.


@MarkBooth Можливо, ви б мали це запитати, ми, як правило, віддаємо перевагу питанням, які не передбачають рішення.
Матвій

@MatthewRead Я повинен погодитися з Марком тут: 4 пункту в його резюме прямо вказано, що він хоче допомогти з питаннями журналу, і я також не бачу тут «проблеми XY» (передбачається рішення). K9, очевидно, лише приклад - але, можливо, назву питання слід відкоригувати, щоб підкреслити його: "Використання logcat для визначення причини проблем" краще відповідатиме (та фокусуватиметься);
Izzy

@MarkBooth Yepp, tnx - набагато зрозуміліше зараз. Також tnx для детальної відповіді! Будь ласка, повідомляйте нас про ваш прогрес.
Іззі

Чи слід видалити свою відповідь, оскільки після редагувань це абсолютно не тематично і схильне до заборони?
onik

Це до вас, онік. Як я вже говорив, я дуже вдячний, що ви витратили час, щоб опублікувати відповідь, але тепер, коли я оновив питання, ваша відповідь виглядає ще більше поза місцем. Я припускаю, що ви завжди можете зачекати і побачити, чи проголосують вони нижче -3, щоб ви могли зібрати значок однорангового тиску . * 8 ')
Марк Бут
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.