logcat에 액세스하려면 루트가 필요합니까?


9

내 장치가 이미 루팅되어 있으므로 이것이 내가 묻는 이유입니다.

전화기에서 로그 캣 스트림을 모니터링하려면 루트가 필요합니까? 전화기의 터미널 내에서 logcat 명령을 실행하면 작동합니까?

답변:


15

마켓에있는이 무료 앱은 로그 캣을 표시 할 수 있다고 주장하며 루트에 대해서는 언급하지 않습니다. 몇 분만 사용해보십시오.

편집 : @mente 덕분 에이 앱을 사용하면 이전 버전의 Android에서만 전체 로그 파일을 볼 수 있습니다. Android 4.1은 로그 파일을 중심으로 새로운 보안 모델을 도입하여 앱이 자체 로그 파일 및 로그 파일 항목 만 읽을 수 있고 시스템 또는 다른 앱에서 작성한 로그 파일 항목을 읽을 수 없음을 의미했습니다.

그러나 앱 사용자가 개발자에게 보낼 앱의 최근 로그 항목에 대한 로그 파일을 생성하는 방법과 전화 소유자가 앱이 전체 루트없이 로그 파일을 읽을 수있는 권한을 부여 할 수있는 방법이 여전히 있지만 불행히도 대부분의 일반 전화 사용자의 손이 닿지 않는 ADB 명령을 사용해야합니다.

사용자가 디버깅 정보를 제공 하도록하려면 로그 및 기타 많은 데이터 를 포함하는 전원 + 볼륨 작게 + 볼륨 크게로 버그 보고서를 생성 하고 전자 메일 앱을 자동으로 가져 와서 모두 보내십시오. (스크린 샷 추가). 우리는 이것들을 생성하는 더 쉬운 방법이 있어야한다고 논의하고 있었고, 설정 앱에 무언가를 추가하는 것을 볼 것입니다.

또한 "개발"권한 의 개념을 소개하기 시작 했는데,이 로그읽기 로그 로 분류됩니다. 이를 통해 앱은 권한을 요청할 수 있지만 설치시 권한을 얻지 못합니다. 그러나 일단 설치되면 adb shell 명령으로 부여 할 수 있습니다 . 어느 시점에서 나는 이것을하기 위해 시스템에 UI를 가질 것으로 예상하지만, 우리는 이것을 제시하는 방법에주의하기 위해 그것을 보류 할 것입니다.

Android 프레임 워크 엔지니어 인 Dianne Hackborn의 Google 그룹스 게시물에서 발췌 . 나의 강조.

로그를 읽을 수있는 애플리케이션 권한을 부여하기 위해 언급 된 ADB 명령은 다음과 같습니다.

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

이 설정은 앱의 재부팅 및 업그레이드 후에도 유지되지만 제거 / 재설치는하지 않아야합니다.


Android 4.1부터는 다른 앱 로그를 읽으려면 루트 액세스 권한이 필요합니다. CatLog 개발자가 설명을 게시했습니다 . 이러한 <4.1 버전의 작품을 애플 리케이션 가정
mente

1
이 바로 가기 4.1.2 내 안드로이드에서 작동하지 않습니다
mente에게

PC에서 로그를 수집하는 유틸리티를 만들었습니다. gist.github.com/hrj/5983971
HRJ

4

adb logcatAndroid SDK 로 실행하기 위해 휴대 전화를 근절 할 필요는 없지만 터미널 에뮬레이터 에서 테스트 su했으므로 logcat을 실행 하려면 root ( 명령 사용 -내 전화는 이미 근절)이어야 했습니다. 내 휴대폰의 터미널.

예 : 전화기에 루트가 있으면 전화기의 터미널에서 logcat을 실행할 수 있습니다.


1

아니요, logcat 정보를 얻기 위해 루트가 필요하지 않습니다.

이를 위해 SDK와 함께 제공되는 adb 도구를 사용하여 Android SDK를 다운로드하고 "adb logcat"을 실행하려고합니다. 또는 ADT Eclipse 플러그인을 설치하고 편리한 스트리밍 Logcat 뷰어를 사용할 수 있습니다.


SDK를 사용하는 원격 컴퓨터가 아닌 전화에서이 작업을 수행하고 싶습니다
Wulfbane

1

아니요, logcat에 액세스하기 위해 루트가 필요하지 않습니다. 내 장치 (스톡 ROM이 포함 된 Samsung Galaxy Note, Gingerbread 2.3.6)가 루팅되지 않았으며 다음 방법으로 장치의 로그에 액세스했습니다.

  • CatLog 앱
  • aLogcat 앱
  • SSHDroid 앱을 활성화하고 SSH 클라이언트를 사용하여 장치 터미널에 연결
  • Android SDK 사용 및 실행 adb logcat

그러나 터미널 앱에서는 logcat을 실행할 수 없으며 "permission denied"가 표시됩니다. 왜 그런지 잘 모르겠습니다.


그래, 진저 브레드에서 ...하지만 오늘날의 안드로이드 에는 루트 필요합니다.
NH.

1

휴대 전화에 루트가 없으면 터미널 에뮬레이터에서 logcat을 실행할 수없는 것 같습니다. 이 경우 먼저 su를해야합니다. AFAIK, 그것은 안드로이드 권한에서 온다 : 터미널 에뮬레이터는 단순히 장치의 로그를 볼 수있는 충분한 권한이 없습니다. 따라서 시스템은 Permission denied라고 말합니다.

반면에 다른 사람들이 말했듯이 장치가 권한을 요청하기 때문에 장치의 로그를 볼 수있는 많은 앱이 있습니다.



0

Logcat은 루트가 필요하지 않습니다. Simples-다른 Android 버전과 관련하여 사실상 모든 표준이며, 뿌리를 내 렸는지 여부에 관계없이 Android의 일부이며 예를 들어 문제를 진단하는 표준 수단입니다. 응용 프로그램 강제 종료, 당신은 상기 응용 프로그램의 개발자에게 불평, 기회는 매우 높습니다 개발자가 당신이 루팅 여부에 상관없이 "로그 캣을 통해 보내기"를 요청할 것입니다!

aLogCat 은 웹 페이지 레이아웃 또는 일반 텍스트에 기록하는 옵션을 사용하여 정보를 수집하는 한 가지 방법입니다. 15 분마다 특정 빈도로 기록하도록 예약하면 SDCard가 매우 빨리 채워집니다.

또 다른 측면에서, logcat의 사용은 얼마나 많은 양을 저장할 수 있는지에 따라 커널에 의존합니다. ROM에서 사용하는 모든 커널에서 커널 레벨의 로깅 소스, 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 (로그 _ 라디오, LOGGER_LOG_RADIO, 64 * 1024) DEFINE_LOGGER_DEVICE, LOGGER_DEVICE (LOG_MAIN, LOGGER_LOG_MAIN, 64 * 1024)

다시 말하지만, 마일리지는 다를 수 있습니다 .ROM의 일부 개발자는 메모리 오버 헤드를 줄이기 위해 소비를 최소화하도록 선택할 것입니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.