Как я могу получить доступ к файлам журнала Android на моем Nexus 7 без рут-доступа?

9

Поскольку aLogcat в настоящее время больше не работает с Jelly Bean , как я могу получить доступ к файлам журналов системы на устройстве без любого корневого доступа или подключения к компьютеру?

Я пытался использовать adb logcatсо своего компьютера, и это работало нормально, так что я знаю, что множество сообщений регистрируется.

Использование logcatиз Android Terminal Emulator на моем Nexus 7 практически не выводит, хотя и adb logcatиз Android Terminal Emulator запускает демон, но затем просто говорит, - waiting for device -и больше ничего не появляется.

Итак, возможно ли получить доступ к файлам журнала Android на моем Nexus 7 без рут-доступа ?

Марк Бут
источник
@ Иззи - смысл этого вопроса в том, что для всех решений моего другого вопроса (с которым я связан в этом вопросе) требуется root-доступ. Хотя эти решения полезны для тех, кто рутировал свои устройства, я хотел более конкретное решение для тех, кто не рутировал свои устройства.
Марк Бут
Вы можете найти PhoneHome стоит посмотреть
Дори

Ответы:

12

Нет, по соображениям безопасности невозможно получить доступ к файлам журналов Android на Nexus 7 (или любом другом устройстве с Jelly Bean или выше) без доступа root. Google изменил это с Jelly Bean.

Я бы посоветовал вам подождать, пока читатели logcat, такие как aLogCat и т. Д., Не исправятся (то есть им потребуется root-доступ для отображения всех журналов).

Из AISEC-TR-2012-001-Android-OS-Security.pdf - 3.3 Модель разрешения Android :

Разрешение READ_LOGS может заменять следующее на многих устройствах в зависимости от версии Android и, следовательно, установленных версий стандартных приложений:

  • READ_CONTACTS

  • GET_TASKS - каждая запущенная активность указана в журналах системы

  • READ_HISTORY_BOOKMARKS - открытие новых веб-страниц является активностью браузера и поэтому регистрируется

  • READ_SMS

Все приведенные ниже решения требуют root-доступа :

Вам нужно либо запустить logcat как root в оболочке, либо вручную предоставить его с помощью команды shell pm (также требуется root) (см. XDA , обмен org.jtb.alogcat.donate с именем pkg приложения):

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

Это для ленивых и не рекомендуется: если вы в отчаянии, неосторожны и ленивы, вы можете исправить это, дав каждому приложению разрешение READ_LOGS, применив этот уродливый и небезопасный хак ( Chainfire через twitter ):

chmod 04755 /system/bin/logcat

Цитирую G + CyanogenMod разработчик Koushik Датта в пост :

Изменились ли разрешения / поведение Android-журнала в JellyBean?

Кажется, что если приложение теперь запускает «logcat», оно может видеть только записи журнала, созданные его UID. Строки журнала от других UID не отображаются. В основном, похоже, что сейчас это отфильтровано.

У меня такие же разрешения, как обычно. Также подтверждено, что то же самое происходит и в других приложениях для сбора журналов.

CE4
источник
Нет пути без корня, о котором я знаю. Ради безопасности. Начиная с JellyBean, разрешение read_logs больше не требуется (в любом случае каждое приложение может просматривать только свои журналы).
ce4
Спасибо за редактирование и ссылку на xda, я интегрировал это.
ce4
Спасибо за добавление в pm grantопцию. Обратите внимание , что , как я теперь говорят в моей другой ответ , вы должны указать несколько иной пакет , если вы не используете жертвуют версию aLogcat :pm grant org.jtb.alogcat android.permission.READ_LOGS
Марк Бут
Ссылочная статья объясняет, как READ_LOGSэто происходит READ_CONTACTSна некоторых платформах. Я предполагаю, что некоторые приложения помещают контактные данные в журналы, но это не то же самое, что READ_CONTACTS. Но тогда я бы сказал, что статья написана паническим тоном.
поток
READ_LOGS пропускает гораздо больше информации, чем просто контактные данные. Там есть имя пользователя, вероятно, адрес Gmail, местоположение, установленные приложения (даже использование приложения) и так далее. Плюс: он использовался для чтения и извлечения адресов из стековых дампов системных демонов в дни до ASLR с помощью эксплойтов root. Теперь, когда они отключены в значительной степени (4,1 ±), вы можете получить защиту от роя (сравните это с отсутствием вакцинации вашего ребенка в вакцинированной популяции без болезней). Проблемы маячили, и Google сделал правильную вещь.
ce4
1

Я смущен этим, хотя это объясняет некоторые вещи.

Запуская одно и то же приложение на моем nexus7 и на galaxy nexus, оба на jellybean, телефон видит вывод журнала всех приложений, а планшет - нет. Это говорит о том, что это не желе, это nexus7. Поддерживая это, я только что проверил, и у них обоих разные ядра. Планшет, с более новым.

Возможно, это обновленное ядро, что означает, что журналы не появляются.

Думаю, мне все-таки придется рутировать :(

Расс Уилер
источник
Это интересно, Расс, спасибо за дополнительную информацию.
Марк Бут
На самом деле мне теперь достоверно сообщили, что это потому, что приложение, которое я использую для просмотра журналов, было установлено на моей машине, когда у меня был ICS, поэтому оно сохранило разрешения на просмотр журналов.
Расс Уилер
1

Я разработал приложение Logcat, которое использует альтернативный подход. Он использует функцию удаленной отладки. Сначала необходимо включить его на телефоне, но это нужно сделать только один раз, а затем вы можете использовать приложение для получения всех журналов.

Антон Тананаев
источник