안드로이드 디버그 브리지(Android Debug Bridge, ADB)는 안드로이드 SDK에 기본 포함된 명령줄 도구입니다. 컴퓨터에서 스마트폰과 직접 통신하여 앱 설치 및 디버깅, 파일 복사, 유닉스 셸 명령 실행 등 다양한 작업을 수행할 수 있게 해줍니다.
ADB를 활용하면 숨겨진 설정을 조정하거나, 평소에는 접근할 수 없는 강력한 기능을 활성화하고, 전반적인 기기 사용 경험을 한층 끌어올릴 수 있습니다. 이 글에서는 ADB 설정 방법부터 실제로 유용하게 쓰이는 필수 셸 명령어까지 자세히 알아보겠습니다.
ADB의 작동 원리
ADB는 클라이언트-서버 방식으로 작동하는 프로그램이며, 세 가지 구성 요소로 이루어져 있습니다.
클라이언트(Client): 개발용 PC의 셸이나 스크립트에서 adb 명령을 실행하는 부분입니다. 서버로 명령을 전달하는 역할을 담당합니다.
데몬(Daemon, adbd): 안드로이드 기기 내부에서 백그라운드 프로세스로 실행됩니다. USB 또는 에뮬레이터의 TCP 연결을 통해 ADB 서버와 통신하며, 데몬과 성공적으로 연결되면 해당 기기를 '온라인' 상태로 인식합니다.
서버(Server): 개발용 PC에서 백그라운드 프로세스로 구동됩니다. 기기가 연결되거나 분리될 때 USB 포트를 감지하고, 연결된 기기 목록을 관리하며 각 기기에 'online', 'offline', 'bootloader', 'recovery'와 같은 상태를 할당합니다.
adb 명령을 입력하면 클라이언트가 먼저 adb 서버가 실행 중인지 확인합니다. 서버가 없다면 새로 시작해 데몬과 연결을 시도하고, 연결되면 기기 화면에 권한 승인 요청이 표시되며 로컬 TCP 포트에 바인딩됩니다. 이후부터는 해당 포트를 통해 계속 명령을 수신 대기하게 됩니다.
ADB 설정 방법
ADB 패키지는 안드로이드 스튜디오(Android Studio)에 포함된 'Android SDK Platform Tools'에 이미 들어 있습니다. 하지만 일반 사용자라면 무거운 IDE를 설치할 필요가 없습니다. Android SDK Platform Tools 공식 페이지에 접속해 운영체제에 맞는 다운로드 링크를 선택하면 됩니다.
구글은 플랫폼 도구를 주기적으로 업데이트하기 때문에 수동 업그레이드 과정에서 문제가 생길 수도 있습니다. 따라서 패키지 매니저를 이용해 ADB를 자동으로 최신 상태로 유지하고, 윈도우라면 환경 변수(Environment Variable), Mac이라면 PATH까지 함께 설정해두는 것이 좋습니다.
안드로이드에서 USB 디버깅 활성화하기
설정 앱을 열고 휴대전화 정보(About Phone)로 이동합니다. 목록 맨 아래로 스크롤한 후 빌드 번호(Build Number)를 일곱 번 연속으로 탭하면 "개발자 모드가 활성화되었습니다"라는 메시지가 나타납니다.
이후 설정 > 시스템으로 돌아가 고급 메뉴를 열면 개발자 옵션이 표시됩니다. 여기에서 USB 디버깅을 켜면 됩니다.
USB 디버깅은 기기가 안드로이드 SDK가 설치된 PC와 통신할 수 있도록 허용하는 기능입니다. 작동 원리가 궁금하다면 안드로이드 USB 디버깅 모드에 대한 별도 가이드를 참고하세요.
윈도우에서 ADB 설정하기
파일 탐색기를 열고 내려받은 ZIP 파일 위치로 이동한 뒤, 압축을 풀어 C:\platform-tools 경로에 저장합니다. 그다음 안드로이드 기기를 PC에 연결하고 USB 모드를 '파일 전송(File Transfer)'으로 변경합니다. 제조사(OEM)에 따라 이 단계가 필요 없는 경우도 있지만, 호환성을 위해 그대로 두는 것을 권장합니다.
Shift 키를 누른 상태에서 ADB 패키지가 들어 있는 platform-tools 폴더를 마우스 오른쪽 버튼으로 클릭하고 여기서 PowerShell 창 열기를 선택합니다.
그다음 아래 명령어를 입력합니다.
./adb devices
참고: PowerShell에서는 반드시 'adb devices' 앞에 점-슬래시(./)를 붙여야 합니다. CMD(명령 프롬프트)를 사용한다면 붙일 필요가 없습니다.
명령을 실행하면 휴대전화 화면에 USB 디버깅 허용 팝업이 뜹니다. 이 컴퓨터에서 항상 허용에 체크한 뒤 확인을 누르세요. 다시 './adb devices' 명령을 실행했을 때 기기의 시리얼 넘버가 표시되면 정상적으로 연결된 것입니다.
위 과정대로 진행했는데도 간혹 ADB 연결이 되지 않는 경우가 있습니다. 그럴 때는 윈도우 PC에서 ADB 연결 오류를 해결하는 방법 가이드를 참고하세요.
맥에서 ADB 설정하기
파인더(Finder)를 열고 ZIP 파일의 압축을 바탕화면이나 다운로드 폴더 등 원하는 위치에 풉니다. 기기를 맥에 연결하고 USB 모드를 변경한 뒤, 터미널을 열어 platform-tools 폴더 경로로 이동합니다.
cd /Users/[UserName]/Downloads/platform-tools
이어서 아래 명령어를 입력합니다.
adb devices
기기 화면에 나타난 'USB 디버깅 허용' 팝업을 승인하고 확인을 누르면 항상 연결을 허용하게 됩니다. 'adb devices' 명령을 다시 실행해 기기 시리얼 넘버가 출력되는지 확인하세요.
무선(Wi-Fi)으로 ADB 설정하기
USB를 통한 ADB 설정은 안정적이지만 몇 가지 단점이 있습니다. 첫째, 동시에 연결할 수 있는 기기 수가 포트 개수에 제한됩니다. 둘째, 드라이버 호환성 문제가 발생할 수 있습니다.
Wi-Fi를 통해 ADB를 설정하면 이런 불편함을 없앨 수 있습니다. ADB의 'tcpip'와 'connect' 명령을 사용하면 무선으로 기기를 제어할 수 있는데, 단, 처음 명령을 실행할 때만큼은 기기를 USB로 연결해야 합니다.
안드로이드 11(SDK 플랫폼 도구 버전 30 이상) 이상을 사용 중이라면 무선 디버깅 기능으로 블루투스 페어링과 비슷한 방식으로 기기를 컴퓨터와 페어링할 수 있습니다. 이 방식은 새로운 'pair' 명령을 사용합니다.
설정 > 개발자 옵션 > 무선 디버깅을 활성화한 후, 페어링 코드로 기기 페어링을 선택하세요. 화면에 표시되는 페어링 코드, IP 주소, 포트 번호를 메모해 둡니다.
그다음 아래 명령어를 입력합니다.
adb pair ipaddr:port
'ipaddr'에는 IP 주소를, 'port'에는 포트 번호를 입력하세요. 페어링 코드 입력 요청이 뜨면 앞서 확인한 코드를 입력합니다. 성공하면 기기가 페어링되었다는 메시지가 표시됩니다.
실무에 유용한 ADB 명령어 모음
ADB로 할 수 있는 작업은 매우 다양하며, 일반 사용자에게도 개발자에게도 큰 도움이 됩니다. 아래는 자주 쓰이는 유용한 명령어 목록입니다. 명령어에 표시된 따옴표는 설명을 위한 것일 뿐 실제 입력 시에는 필요하지 않습니다.
- adb devices: 현재 컴퓨터에 연결된 ADB 지원 기기 목록을 표시합니다.
- adb reboot: 휴대전화를 재부팅합니다.
- adb install "path_to_apk": APK 파일로 앱을 설치합니다.
- adb pull "remote local": 기기에서 파일과 하위 디렉터리를 컴퓨터로 복사합니다. local/remote는 각각 컴퓨터(로컬)와 기기(원격)의 대상 경로입니다.
- adb push "local remote": 컴퓨터의 파일과 하위 디렉터리를 기기로 복사합니다.
- adb kill-server: adb 서버 프로세스를 종료하고 재시작합니다.
- adb fastboot: 패스트부트(fastboot) 모드를 활성화합니다.
- adb help: ADB 명령어 도움말 문서를 표시합니다.
- adb uninstall "package name": 앱을 삭제합니다.
설치된 모든 안드로이드 패키지 목록 보기:
adb shell pm list packages
패키지 목록을 출력합니다. '-d' 옵션은 비활성화된 패키지만, '-e'는 활성화된 패키지만, '-s'는 시스템 패키지만 표시합니다.
불필요한 사전 설치 앱(블로트웨어) 삭제하기:
adb shell pm uninstall -k --user 0 <package name>
이 명령어를 사용하면 루팅 없이도 제조사가 미리 설치해둔 앱을 삭제할 수 있습니다. 'package name'은 .apk 파일의 패키지명을 의미하며, App Inspector 같은 무료 앱으로 손쉽게 확인할 수 있습니다.
앱 구성 요소(Activity, Service 등) 목록 확인하기:
앱의 구성 요소란 액티비티(activity), 서비스(service) 등을 말합니다. 이 명령어로 숨겨진 액티비티를 실행하거나 특정 데이터를 담은 브로드캐스트를 보낼 수 있습니다.
adb shell dumpsys package <package name>
출력 결과에서 Activity Resolver Table 항목에서 액티비티 목록을, Service Resolver Table 항목에서 서비스 목록을 확인할 수 있습니다.
ADB 앱으로 더 강력한 기능 활용하기
처음 보면 설정 과정이 복잡해 보이지만, 의외로 어렵지 않습니다. 단계를 순서대로 따라 하고 오류 메시지가 있다면 기록해 두면 됩니다. 이제 ADB 명령어 사용법을 익혔으니, ADB를 지원하는 앱들을 활용해 안드로이드 기기를 한층 더 세밀하게 제어해 보세요.