ADB를 활용한 개발 및 보안 테스트
1. ADB란?
ADB(Android Debug Bridge)는 Android 기기와 컴퓨터 간의 통신을 가능하게 하는 명령어 기반의 도구입니다. 개발자는 ADB를 사용하여 앱을 디버깅하고 기기의 설정을 변경할 수 있으며, 보안 테스트나 자동화 테스트에도 활용할 수 있습니다.
이 글에서는 ADB를 활용하여 개발 및 보안 테스트를 수행하는 방법을 설명하고, 몇 가지 유용한 명령어를 예제와 함께 소개하겠습니다.
2. ADB를 활용한 개발 및 보안 테스트
2.1 특정 앱에 무작위 입력 테스트 수행
무작위 입력 테스트(Fuzzing Test)는 앱이 예상치 못한 입력을 받을 경우 어떻게 동작하는지를 확인하는 과정입니다. ADB의 monkey
명령어를 사용하면 특정 앱에 대해 자동화된 입력 테스트를 수행할 수 있습니다.
다음 명령어를 실행하면 특정 패키지의 앱에 대해 1000회의 무작위 이벤트를 발생시킵니다.
adb shell monkey -p <package_name> -v 1000
예를 들어, 패키지명이 com.example.app
인 경우 다음과 같이 실행할 수 있습니다.
adb shell monkey -p com.example.app -v 1000
이 명령어는 다음과 같은 방식으로 동작합니다.
-p <package_name>
: 특정 앱을 대상으로 테스트를 수행함.-v 1000
: 1000회의 무작위 이벤트(터치, 키 입력 등)를 발생시킴.
이 테스트는 앱의 크래시, 오류 메시지, 비정상적인 동작 등을 감지하는 데 유용합니다.
2.2 터치 및 모션 입력 비율 조정하기
기본 monkey
테스트는 무작위 입력을 발생시키지만, 터치 및 모션 이벤트의 비율을 조정할 수도 있습니다.
adb shell monkey --pct-touch 50 --pct-motion 30 -p <package_name> -v 1000
이 명령어에서 사용된 옵션은 다음과 같습니다.
--pct-touch 50
: 전체 이벤트 중 50%는 터치 이벤트로 지정함.--pct-motion 30
: 전체 이벤트 중 30%는 모션 이벤트로 지정함.-p <package_name>
: 특정 앱을 대상으로 테스트 수행.-v 1000
: 1000개의 이벤트 실행.
예제 실행:
adb shell monkey --pct-touch 50 --pct-motion 30 -p com.example.app -v 1000
이러한 설정을 활용하면 특정 유형의 입력 이벤트를 집중적으로 테스트할 수 있습니다.
3. ADB를 활용한 시스템 설정 변경 및 조회
ADB의 content
명령어를 사용하면 Android 기기의 설정을 조회하거나 변경할 수 있습니다. 이는 보안 테스트 및 자동화 스크립트 작성 시 매우 유용합니다.
3.1 특정 설정값 확인하기
Android의 설정 데이터는 content://settings/
경로를 통해 조회할 수 있습니다. 예를 들어, 현재 화면 밝기 설정을 확인하려면 다음과 같이 실행합니다.
adb shell content query --uri content://settings/system --where "name='screen_brightness'"
실행 결과 예시:
Row 0 name=screen_brightness, value=150
위와 같은 결과가 출력되면, 현재 화면 밝기 값이 150
임을 의미합니다.
3.2 특정 설정값 변경하기
설정값을 변경하려면 content insert
명령어를 사용합니다. 예를 들어, 화면 밝기를 200
으로 설정하려면 다음 명령어를 실행합니다.
adb shell content insert --uri content://settings/system \
--bind name:s:screen_brightness \
--bind value:i:200
설정 변경 후 다시 확인하려면 다음과 같이 실행합니다.
adb shell content query --uri content://settings/system --where "name='screen_brightness'"
변경이 성공적으로 반영되었는지 확인할 수 있습니다.
4. ADB를 활용한 보안 테스트
4.1 보안 취약점 점검을 위한 ADB 활용
ADB를 사용하면 보안 관련 취약점을 점검할 수 있습니다. 예를 들어, 특정 앱이 과도한 권한을 요구하는지 확인하거나, 기기의 설정값을 조작하여 앱의 동작을 테스트할 수 있습니다.
4.1.1 앱 권한 확인하기
설치된 앱의 권한을 확인하려면 다음 명령어를 실행합니다.
adb shell dumpsys package <package_name> | grep permission
예제 실행:
adb shell dumpsys package com.example.app | grep permission
출력 예시:
requested permissions:
android.permission.CAMERA
android.permission.READ_CONTACTS
android.permission.ACCESS_FINE_LOCATION
앱이 필요 이상으로 많은 권한을 요구하는 경우, 보안적으로 문제가 될 수 있습니다.
4.1.2 앱 로그 모니터링
로그를 분석하면 보안 취약점이나 크래시 발생 원인을 파악할 수 있습니다. ADB를 사용하여 특정 앱의 로그를 실시간으로 확인할 수 있습니다.
adb logcat -s <package_name>
예제 실행:
adb logcat -s com.example.app
이 명령어를 사용하면 특정 앱의 로그를 필터링하여 볼 수 있습니다.
5. 마무리
이 글에서는 ADB를 활용한 개발 및 보안 테스트 방법을 다뤘습니다. ADB monkey
명령어를 사용하여 앱의 무작위 입력 테스트를 수행하고, content
명령어를 활용하여 시스템 설정을 조회 및 변경하는 방법을 설명했습니다. 또한, ADB를 이용한 보안 점검 방법도 소개하였습니다.
ADB는 강력한 도구이며, 이를 활용하면 Android 앱 및 시스템을 효과적으로 분석하고 테스트할 수 있습니다. 개발자는 ADB 명령어를 익히고 활용하여 앱의 안정성을 높이고, 보안 취약점을 사전에 점검할 수 있도록 해야 합니다.
'Android > ADB' 카테고리의 다른 글
ADB를 활용한 시스템 속성(Property) 관리 (0) | 2025.03.03 |
---|---|
ADB를 활용한 부트 애니메이션 및 시스템 테마 변경 (0) | 2025.03.02 |
ADB를 활용한 특정 앱 강제 종료 및 재시작 (0) | 2025.02.28 |
ADB를 활용한 키 이벤트 및 터치 자동화 (0) | 2025.02.27 |
ADB를 활용한 GPS 및 위치 서비스 조작 (0) | 2025.02.26 |