Нужен ли для доступа к logcat root?

9

Мое устройство уже рутировано, поэтому и спрашиваю.

Вам нужен root для мониторинга потока logcat на телефоне? Если бы я выполнил команду logcat из терминала на телефоне, это сработало бы?

Wulfbane
источник

Ответы:

15

Эти бесплатные приложения в Маркете утверждают, что могут отображать ваш logcat, и не упоминают о root. Вам нужно всего несколько минут, чтобы попробовать их:

РЕДАКТИРОВАТЬ: Спасибо @mente за напоминание о том, что эти приложения позволят вам просматривать полный журнал только в старых версиях Android. В Android 4.1 появилась новая модель безопасности для файлов журналов, которая означала, что приложения могли читать только свои собственные файлы журналов и записи файлов журналов и не могли читать записи файлов журналов, написанные системой или другими приложениями.

Тем не менее, у пользователя приложения все еще есть возможность сгенерировать файл журнала последних записей журнала приложения для отправки разработчику, а у владельца телефона - предоставить разрешения, позволяющие приложению читать файл журнала без полного root, но это требует использования команды ADB, что, к сожалению, делает ее недоступной для большинства обычных пользователей телефона:

Если вы хотите, чтобы пользователь предоставлял вам информацию об отладке, вы можете попросить его сгенерировать отчет об ошибках с указанием мощности + уменьшение громкости + увеличение громкости, которое включает в себя журналы и множество других данных, и автоматически вызывает приложение электронной почты, чтобы отправить все это. (плюс скриншот). Мы только что обсуждали, что у нас должен быть более простой способ их создания, я собираюсь добавить что-то в приложение настроек.

Я также начал вводить понятие «разрешения на разработку», которое классифицирует журналы как. Это позволяет приложению запрашивать разрешение, но не получать его при установке. Однако вы можете предоставить его с помощью команды оболочки adb после его установки. В какой-то момент позже я ожидаю, что для этого в системе будет пользовательский интерфейс, но мы собираемся отложить это, чтобы быть осторожными в том, как мы представляем это.

Отрывок из поста в группах Google Дайан Хэкборн, инженера по Android Framework. Мой акцент.

Упомянутая команда ADB для предоставления приложению разрешения на чтение журналов:

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

Этот параметр должен выдерживать перезагрузки и обновления приложения (но не удалять / переустанавливать).

GAThrawn
источник
Начиная с Android 4.1 вам нужен root-доступ для чтения журналов других приложений. Разработчик CatLog разместил объяснение . Предположим, что эти приложения работают для версий <4.1
Mente
1
Этот ярлык не работает на моем Android 4.1.2
mente
Я создал утилиту для сбора логов с ПК: gist.github.com/hrj/5983971
HRJ
4

Вам не нужно рутировать свой телефон для запуска adb logcatс Android SDK, но я только что проверил его в терминальном эмуляторе, и мне нужно было быть пользователем root (использовал suкоманду - мой телефон уже рутирован), чтобы запустить logcat в терминал на моем телефоне.

Так что да: если у вас есть root на вашем телефоне, вы можете запустить logcat с терминала на вашем телефоне.

Аманда
источник
1

Нет, вам не нужен root для получения информации logcat.

Чтобы сделать это, вы, вероятно, захотите скачать Android SDK и запустить «adb logcat», используя инструмент adb, который поставляется вместе с SDK. Кроме того, вы можете установить плагин ADT Eclipse и использовать его удобный просмотрщик потоковой передачи Logcat.

Эрик Милл
источник
я хочу сделать это с телефона, а не с удаленной машины с SDK
Wulfbane
1

Нет, вам не нужен root для доступа к logcat. Мое устройство (Samsung Galaxy Note, Gingerbread 2.3.6 со стандартным ПЗУ) не имеет root-прав (пока!), И я использовал следующие способы доступа к журналу на моем устройстве:

  • Приложение CatLog
  • приложение aLogcat
  • Активировано приложение SSHDroid и подключено к терминалу устройства с помощью клиента SSH
  • Использование Android SDK и запуск adb logcat

Тем не менее, приложение «Терминал» не позволяет запускать logcat и дает вам «разрешение запрещено». Я не уверен почему.

Iravanchi
источник
да, на пряник ... но сегодня Android делает требует корень.
НХ.
1

Кажется, вы не можете запустить logcat из эмулятора терминала, не имея root на вашем телефоне. В этом случае вы должны сначала su. AFAIK, это происходит из Android Permissions: Terminal Emulator просто не хватает прав для просмотра журнала устройства. Таким образом, система говорит, что в доступе отказано.

С другой стороны, как говорили другие, существует множество приложений, которые позволяют просматривать журнал устройства только потому, что они запрашивают разрешение.

atomontage
источник
0

Приложение Android System Info имеет возможность выводить информацию журнала на экран, который, насколько я могу судить, является той же самой информацией журнала, которую выдает logcat.

Билл Бест
источник
У вас есть ссылка на это приложение, я не могу найти его в Маркете?
GAThrawn
@GAThrawn Если вам все еще интересно: ссылки на домашнюю страницу и в Google Play Store .
Зуул
0

Logcat не нуждается в root. Simples - это стандарт де-факто для всех версий Android и является частью Android независимо от того, рутован он или нет, и является стандартным средством диагностики проблем, как, например, - вы устанавливаете приложение, Приложение закрывается, вы жалуетесь разработчику указанного приложения, шансы довольно высоки, разработчик попросит «отправить через logcat», независимо от того, являетесь ли вы пользователем root или нет!

aLogCat - это один из способов сбора информации с возможностью записи в макет веб-страницы или в виде простого текста, имейте в виду, что если вы планируете регистрировать его с определенной периодичностью, например каждые 15 минут, SDCard будет заполняться довольно быстро.

Другой аспект, использование logcat будет зависеть от ядра с точки зрения того, сколько он может хранить - в любом ядре, которое используется ПЗУ, в качестве источника для ведения журнала с уровня ядра, где он резервирует память для службы logcat. можно найти с drivers/staging/android/logger.cпомощью соответствующих определений, например:

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

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

t0mm13b
источник