목 차
1. logcat 이란
Logcat은 안드로이드 시스템 및 앱에서 발생하는 로그 메시지를 출력하는 도구입니다.
말 그대로 "로그(Log)"와 "캣(Cat)"의 합성어로, 유닉스 시스템에서 "캣(cat)" 명령어로 파일 내용을 출력하는 것처럼, 안드로이드 로그를 출력하는 데 사용됩니다.
앱 디버깅: 앱 개발 중 발생하는 오류나 문제를 해결하는 데 도움이 됩니다. 앱에서 출력하는 로그 메시지를 확인하여 어떤 부분에서 오류가 발생하는지 파악할 수 있습니다.
시스템 상태 확인: 안드로이드 시스템의 상태를 확인하는 데에도 사용할 수 있습니다. 시스템 메시지, 가비지 컬렉션 발생 정보 등을 확인할 수 있습니다.
앱 성능 분석: 앱의 성능을 분석하는 데에도 도움이 됩니다. 앱 실행 속도, 메모리 사용량 등을 확인할 수 있는 로그 메시지를 확인할 수 있습니다.
2. logcat 옵션 및 사용법
-f 옵션: 로그 메시지 출력을 파일에 작성
logcat -f log.txt
-c 옵션: 전체 로그를 지우고 종료
logcat -c
--pid 옵션: 프로세스 ID(PID) 기준으로 로그를 필터링
logcat --pid=1234
-v <옵션>: 로그 출력 형태 변경
- brief: 메시지를 발급하는 프로세스의 우선순위, 태그, PID를 표시합니다.
- long: 모든 메타데이터 필드와 별도의 메시지를 빈 줄과 함께 표시합니다.
- process: PID만 표시합니다.
- raw: 다른 메타데이터 필드가 없는 원시 로그 메시지를 표시합니다.
- tag: 우선순위와 태그만 표시합니다.
- thread:: 메시지를 발급하는 스레드의 날짜, 호출 시간, 우선순위/태그, PID, TID를 표시하는 기존 형식입니다.
- threadtime(기본값): 메시지를 발급하는 스레드의 날짜, 호출 시간, 우선순위/태그, PID, TID를 표시합니다.
- time: 메시지를 발급하는 프로세스의 날짜, 호출 시간, 우선순위/태그, PID를 표시합니다.
위의 형식 수정자들은 아래의 옵션과 결합해서 사용가능
- color: 각 우선순위 수준을 다른 색상으로 표시합니다.
- descriptive: 로그 버퍼 이벤트 설명을 표시합니다. 이 수정자는 이벤트 로그 버퍼 메시지에만 영향을 미치며 다른 비 바이너리 버퍼에는 영향을 미치지 않습니다. 이벤트 설명은 이벤트 로그 태그 데이터베이스에서 가져옵니다.
- epoch: 1970년 1월 1일부터 시작되는 초 단위의 시간을 표시합니다.
- monotonic: 마지막 부팅에서 시작하여 CPU 초 단위로 시간을 표시합니다.
- printable: 바이너리 로깅 콘텐츠가 이스케이프 되었는지 확인합니다.
- uid: 액세스 제어에서 허용하는 경우 로깅된 프로세스의 UID 또는 Android ID를 표시합니다.
- usec: 마이크로초 단위의 정밀도로 시간을 표시합니다.
- UTC: 시간을 UTC로 표시합니다.
- year: 표시된 시간에 연도를 추가합니다.
- zone: 표시된 시간에 현지 시간대를 추가합니다.
adb logcat --pid=11429 -v long -v color
3. GUI 형태 logcat
CLI 형태가 싫으면 GUI 형태의 logcat 프로그램을 사용할 수 있습니다.
반응형
'모바일 취약점 점검 > Android' 카테고리의 다른 글
[Android] 루팅 후 Smart View(화면 미러링) 오류 발생 시 (0) | 2024.05.09 |
---|---|
[Android] 안드로이드 12 이상 루팅 및 초기화 (갤럭시 S10) (0) | 2024.05.08 |
[Android] 안드로이드 루팅 & 순정 펌웨어 복구 (0) | 2023.05.31 |
[Android, iOS] OS변조(루팅/탈옥), 무결성 검증, 디버깅 탐지 프로젝트 파일 (0) | 2023.05.15 |
[Android] 안티 디버깅(Anti-Debugging) 코드 (2) | 2023.05.15 |