Android/InsecureBankv2

ADB(Android Debug Bridge) 개요와 기본 사용법

박연준 2023. 7. 3. 17:07

ADB(Android Debug Bridge) 개요와 기본 사용법

ADB란?

ADB(Android Debug Bridge)는 안드로이드 에뮬레이터, PC에 실제 연결된 장치를 제어하는 안드로이드 디버깅 도구 중 하나이다.

사용 방법과 위치

안드로이드 스튜디오에서는 이 기능을 GUI로 제공하는데, ADB는 커맨드 라인으로 직접 명령어를 입력해서 안드로이드 기기와 통신할 수 있다.

안드로이드 스튜디오를 설치한 적이 있다면 안드로이드 SDK에 ADB가 포함되어 있으니 별도 설치하지 않아도 된다.

 

폴더는 안드로이드 SDK를 설치한 폴더 하위에 platform-tools 디렉터리에 ADB가 포함되어 있다.

이 파일은 클라이언트, 서버, 데몬을 포함하는 클라이언트-서버 프로그램이다.

ADB의 3요소

  • 클라이언트: 안드로이드를 개발하는 시스템에서 실행.

ADB 명령을 사용자가 입력하면 쉘에서 클라이언트를 호출

 

  • 서버: 안드로이드 개발 시스템에서의 백그라운드 프로세서.

클라이언트, 에뮬레이터, ADB 데몬 사이의 통신을 관리함

 

  • 데몬: 에뮬레이터/장치에서 백그라운드 프로세서로 동작하는 인스턴스.

원래는 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램이라는 뜻을 지닌다. 보통 이름 뒤에 d가 붙는다.

 

ADB 작동 방식

ADB 클라이언트가 시작되면, ADB 서버 프로세스가 실행중인지를 점검하고 실행 상태가 아니라면 서버 프로세스를 구동한다.

서버가 시작되면 서버는 TCP 5037 포트에 바인딩되고, 클라이언트들은 5037 포트를 통해서 ADB 서버와 통신한다.

 

만약 ADB 서버가 구동되지 않은 경우 아래처럼 메세지가 출력된다.

 

그런 다음 서버는 5555~5585 포트 범위에서 홀수 포트를 가진 에뮬레이터를 스캐닝한다. 이 범위 내에서 ADB 데몬을 찾으면 해당 포트와 연결한다.

 

하나의 에뮬레이터는 콘솔 연결용 짝수 포트와 ADB 연결용 홀수 포트를 사용한다.

 

안드로이드 장치를 USB로 연결하려면 <장치 시스템 설정 → 개발자 옵션 → USB 디버깅 옵션>을 활성화 해야 한다.

 

개발자 옵션은 안드로이드 4.2버전 이상인 경우 숨겨져서 안보이므로 <설정 → 휴대전화 정보 → 빌드 번호>를 연타해야 볼 수 있다.

 

디바이스 장치 선택

ADB 명령어를 안드로이드 장치에 적용하려면 안드로이드 장치를 선택해야 한다.

 

 

ADB 기본 명령 수행 시 발생 가능한 오류

명령 프롬포트에 adb shell 명령어를 실행하면,

  • 1대 이상의 장치가 연결중인 경우

error: more than one device and emulator 오류

  • 장치가 연결되어 있지 않은 경우

adb.exe:no devices/emulators found 오류가 발생할 수 있다.

 

연결 장치 확인

연결된 장치를 확인하려면 adb devices 명령어를 실행한다.

 

각 연결 장치에 명령하는 방법

연결장치에는 USB에 직접 연결하는 장치와 에뮬레이터가 있다.

adb devices로 확인했을 때, 에뮬레이터는 emulator-xxxx와 같은 이름으로 장치를 확인할 수 있고, USB 장치는42f911ab92a31c와같은 이름으로 확인할 수 있다.

 

  • USB 장치에 명령을 전달하는 경우 adb -d <명령어>를 사용하고,
  • 에뮬레이터에 명령을 전달하는 경우에는 adb -e <명령어>를 사용한다.
  • 동일 타입의 장치가 2개 이상인 경우

adb -s <장치명><명령어>를 사용하여 명령을 전달할 장치를 선택할 수 있다.