본문 바로가기
SW 개발/Android

안드로이드 adb 설치 및 설정 방법

by 모바일 SW 개발자 Kibua20 2021. 10. 3.
반응형

Android ADB (Android Debug Bridge)는 PC와 스마트 폰 간에 통신을 할 수 있는 명령어도 도구입니다. 안드로이드 개발자에게는 apk 설치, log 출력의  등의 개발에 많은 활동에서 adb를 거의 매일 사용하고 있습니다. 또한 디버깅 목적뿐 아니라 스마트 폰 화면을 PC로 미러링 할 수 있는 App에서도 adb를 사용합니다. 예를 들어 scrcpy Mirroid 같은 스마트 폰 미러링 앱을 사용하기 위해서는 PC에 adb를 미리 설치해야 합니다.  (※ Mrriod는 adb.exe가 설치 파일에 포함됨)

 

본 포스팅은 상용 단말 (=User version) 기준으로 ADB 연결을 설정하는 과정을 설명하고 요약하면 다음과 같습니다.

 

  1. 스마프 폰 제조사 USB 드라이버를 설치 (각 제조사 홈페이지에서 USB 통합 Driver를 제공함, 링크는 다음과 같습니다. 삼성 통합드라이버, LG USB Driver , Google USB Driver) (필수)
  2. PC에서 ADB Tool 다운로드:  최신 버전 Android SdK platform tool 설치 (다운로드 링크)
  3. PC 환경 변수에 ADB 설치 Path 추가
  4. 스마트 폰의 개발자 메뉴에서 'USB 디버깅' 연결 활성화
  5. 스마트 폰과 PC 연결 시 USB 디버깅 허용 

※ Windows용과 MAC용 LG USB 통합 드라이버(LG United Mobile Driver)를 첨부 파일로 업로드 하였습니다. 

LGMobileMacDriver_v6.1.zip
3.66MB
LGMobileDriver_WHQL.7z
9.87MB

 

1. PC에서 ADB Tool 다운로드: 다운로드 링크

Android Studio SDK를 설치하는 경우에도 SDK manager를 통해서 다운로드 및 설치할 수 있고, 독립형 패키지로도 Andorid SDK platform-tools을 다운로드하여 adb를 설치할 수 있습니다.  이는 링크에서 다운로드가 가능하며 다운로드한 zip 파일(platform-tools_r30.0.5-windows.zip)을 압축 해제하면 됩니다.

PC에서 ADB Tool 다운로드

 

2. PC(Windows OS)에서 ADB Path를 환경 변수에 추가

최신 버전의 Android SDK Tool을 다운로드하여 설치를 원하는 폴더에 압축을 풉니다. 임의의 폴더에서도 adb를 실행할 수 있도록 환경 변수 PATH에 adb 설치 경로를 추가합니다.

 

Android SDK Tool을 통해서 platform-tools_r30.0.5-windows.zip 파일을 원하는 폴더에 압축해제

② 내 컴퓨터의 고급 시스템 설정 (제어판-시스템 보안-시스템-고급 시스템 설정 또는 내 컴퓨터에서 마우스 오른쪽 키)

③ 시스템 속성 메뉴 -고급 탭에서 '환경 변수' 선택

④ 시스템 변수 (또는 사용자 변수)에서 Path 편집

⑤ Path 항목에 platform-tools을 설치한 경로를 추가 

 

PC에서 ADB Path를 환경 변수에 추가

 

3. 우분투/Mac OS에서 ADB 설치

Android SDK를 설치하면 adb가 포함된 Plaftform Tools까지 같이 설치지만, SDK 설치 없이 ADB만 별도로 패키지 매니져로  설치가 가능합니다.  우분투와 Mac에서는 별도의 Path설정은 필요 없습니다.

 

우분투OS에서 ADB 설치 명령어

$ sudo apt install adb 

 

Mac OS에서 adb설치 명령어

$ brew install android-platform-tools

 

4. 스마트폰에서 USB 디버깅 연결 활성화 

User Debug 버전에서 USB 디버깅 옵션 메뉴가 기본 값으로 활성화 상태이지만, 일반 상용 버전 (User 버전)은 개발자 메뉴에서 디버깅 옵션을 활성화시켜야 합니다. 

 

  • 개발자 메뉴 활성화: 시스템 세팅 - 휴대폰 정보 - 소프트웨어 정보- 빌드 번호를 3번 누르기 
  • 개발자 메뉴에서 "USB 디버깅 옵션" 활성화 

스마트폰에서 USB 디버깅 연결 활성화 

 

5. USB 연결 후 adb 정상 동작 확인 

Win+R키를 누르고 명령 프롬프트 창에서 $ adb devices 입력합니다.  스마트 폰 화면에서는 USB 허용 팝업을 표시하고 허용해야 연결됩니다. 

 

스마트 폰에서 USB 연결 허용

$ adb devices 실행 시 연결된 Device list를 표시하면 정상적으로 동작하는 것입니다.  adb는 상당히 많은 기능을 가지고 있습니다. 각 세부 기능은 Google 공식 문서를 참고하세요.

PC에서  adb 연결 확인

 

6. Adb 에러에 대한 조치 사항

[에러 1] USB 연결 상태에서 adb devices 결과에 스마트 폰 검색이 되지 않는 경우

adb가 정상적으로 설치한 상태에서 $ adb devices에서 단말 List가 보이지 않는 경우 핸드폰 제조사 USB 드라이드가 설치되지 않아서 발생하는 것입니다. 각 제조사에 맞는 USB 통합 드라이버를 설치하면 해결이 됩니다.

 

[에러 2] USB 연결 상태에서 adb devices 결과가 'unauthorized' 에러가 발생하는 경우

adb가 정상적으로 설치한 상태에서 $ adb devices에서 unauthorized 가 표시되는 경우 스마트 폰에서 "USB 디버깅 허용"을 선택합니다.

USB 연결 상태에서 adb devices 결과가 'unauthorized' 에러가 발생하는 경우

 

[에러 3] Mirroid 실행 상태에서 ADB 실행 에러 조치 방법

PC에서 2개 이상의 adb가 설치된 경우입니다.  예를 들어 Mirroid 프로그램에서도 adb가 설치하고, Andorid SDK에서도 다른 버전의 Adb가 설치가 되었다면  Adb 실행 시 Version Mismatch 에러 ("adb server version (40) doesn't match this client (41); killing...​") 가 발생할 수 있습니다.

 

이 경우 여러 경로에 설치된 가장 최 상위의 adb 버전으로 통일하면 문제가 해결됩니다.  미러로이드와 같은 경우 ADB 파일(adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll)파일을 미러로이드 설치폴더(C:\Program Files (X86)\Mirroid)로 덮어 쓰면 문제가 해결됩니다.

 

에러 메시지 

C:\User> adb shell  

adb server version (40) doesn't match this client (41); killing...​

* daemon started successfully 

Mirroid 실행 상태에서 ADB 실행 에러

조치 방법

최신 버전의 adb 파일 (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll)으로 통일한다.

adb server version (40) doesn't match this client (41); killing..에러 조치 방법

 

[에러 4] ADB 실행 시 daemon not running 에러 조치 방법

adb devices 연결 시도 시  adb daemon이 정상적으로 실행해야 하지만, daemon not running 에러 메시지가 출력된다면 이전에 실행한  adb daemon이 정상적으로 종료되지 않아 Process가 살아 있기 때문에 발생하는 에러입니다.  이 경우 adb kill-server로  daemon을 kill 하던가, TaskManager에서 해당 process를 모두 kill 해야 합니다.  위와 같이 조치해도 동일한 문제가 발생하면 logout후 또는 재부팅해야 합니다.  

에러 메시지 

* daemon not running; starting now at tcp:5037
* daemon started successfully

 

조치 방법 

$ adb kill-server
$ adb devices
--> daemon start message

 

관련 글

[모바일 SW 개발/Android] - Android apk Decompile 과 분석 tool: apktool 사용법

[모바일 SW 개발/Python] - Python에서 URL 한글 깨짐 현상: quote_plus()와 unquote_plus()

[개발환경/Tips] - Spotify 한국에서 사용하는 방법

[모바일 SW 개발/Android] - Android에서 Python 실행 (SL4A와 Termux 활용)

[모바일 SW 개발/Android] - Android 에서 리눅스 App 실행: Linux Terminal Emulator (Termux) 활용

[모바일 SW 개발/Android] - Ubuntu에서 Android 10 빌드하기

[개발환경/우분투] - Ubuntu에서 토렌트 다운로드하기 (Transmission)

[개발환경/우분투] - Ubuntu 20.04에서 sshfs 를 이용한 원격 폴더 마운트

[블로그 관리/모바일 마케팅] - [용어 정리 #1] Google 광고 ID / 추적 URL / 리퍼러 / 추적 알고리즘

[모바일 SW 개발/Android] - 파이썬으로 Apk Download 자동화: Selenium기반의 Apk 크롤러

[모바일 SW 개발/Android] - Android apkanalyzer 에러: java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

[모바일 SW 개발/Android] - Command line 기반 Android Apk 분석 툴: apkanalyzer

[모바일 SW 개발/Android] - Android 소스 최적화 (100GB에서 65GB로 줄이기)

 

반응형



댓글42

  • ㄱㅁㅈ 2021.06.20 22:27

    adb server version (40) doesn't match this client (41); killing...​

    * daemon started successfull

    이라는 오류가 나왔을떄를 좀 더 자세히 설명해 주실수 있으시나요...?
    제가 지금 저 오류가 떠서요 ㅠㅠ
    답글

    • PC에서 adb.exe (adb server)가 실행되고, 핸드폰에서 adb_client가 실행됩니다.

      adb serversion not match 에러는 PC의 adb.exe 가 2개 실행되었을 것입니다.

      미러로이드 설치시 adb.exe가 실행되고, 기존에 다른 폴더에 adb.exe가 있을 것입니다. 최신 adb.exe를 찾아서 mirror 설치 폴더에 덮어쓰시면 해결됩니다.

  • ㄱㅁㅈ 2021.06.21 16:28

    감사합니다!

    답글

  • rgg 2021.07.02 20:45

    좋은 정보 감사합니다. 내용이 너무 잘 정리되어 있습니다.
    답글

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 15:09 신고

    안녕하세요. 삼성 드라이버를 다운받았을 떄는 일시적으로 되다가, 안드로이드 스튜디오를 껐다 키면 다시 인식이 안되네요... 왜이러는 걸까요? ㅠㅠ
    답글

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 15:30 신고

    에러 메시지 자체가 없고 그냥 no devices 라고 나옵니다 ㅠㅠ

    답글

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 15:33 신고

    일단 adb도 다 설치되어있습니다..
    trouble shoot device connection 을 누른뒤 rescan device 버튼을 누르면 거기엔 제 기기가 나옵니다.. 해결방안으로 디바이스 드라이버를 다운받으라고 하는데요... 받아서 적용하면 잠깐은 되는데
    안드로이드 스튜디오를 껐다 키면 다시 디바이스 부분이 No devices로 바뀝니다.
    답글

    • android studio 없이 adb device하면 잘 연결되다가, android studio 연결하면 끊어지는것 맞는지요? 우선은 error 메시지가 찾아야 할 것 같아요. 터미널에서 studio 실행하고 stdio 에서 출력하는 메시지가 있을 것입니다. 그 메시지 들 중에서 error 가 없는지 확인해보세요.

      그리고, which adb로 adb가 정말 1개만 깔려 있는지 확인해보세요.

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 16:01 신고

    네 한번 확인해보겠습니다. 감사합니다
    답글

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 16:02 신고

    안드로이드 스트디오에서 ,no devices 상태로 되어
    삼성 드라이버를 다시 받으면 오류가 일시적으로 해결됩니다.
    하지만 스투디오를 껐다가 키면 다시 연결되어있던 핸드폰이 사라지고 no devices 라고 뜨는 오류입니다.
    답글

    • 이런 에러는 처음 봅니다. 보통은 삼성 드라이버가 설치가 안된거나, adb가 여러개 설치되거나, 낮은 버전이 설치된 경우가 많은데...특이하네요.

      삼성 드라이버, adb, andriod studio 모두 최신버전으로 해보고 안되면 에러 메시지를 찾아봐야 할 것 같네요. 정말 안되면 고객 센터쪽이라도 헬프쳐야죠. (삼성에서 adb를 검증하지 않고 출시했을 가능성은 거의 없습니다.)

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 16:34 신고

    일단 실행을 해보았습니다. 하지만 실행 이전에 device가 연결되지 않아 팝업이 뜨기만 할 뿐 실행 자체가 되지 않습니다.
    팝업 에러명 no target device found.

    which adb 를 터미널 창에 입력해 보았는데요, which는 내부 또는 외부 명령,실행할수있는 프로그램 또는 배치 파일이 아닙니다. 라고 나오네요

    adb가 여러개인지 어떻게 확인하나요??

    답글

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 17:22 신고

    안녕하세요 계속 해결하고 있는데요
    1.adb는 하나이고 path 연결도 잘 되어있어 큰 문제는 아닌 것같습니다.
    2.안드로이드 스투디오와 삼성드라이브는 오늘 설치한 것이라 최신것입니다.

    가장 큰 문제는 안드로이드 스투디오에서 usb와 연결된 제 핸드폰을 안드로이드 핸드폰이 라고 인식하지 못하는 것입니다. 안드로이드 스투디오에서 제 note기기를 안드로이드 핸드폰 기기라고 인식시키려면 어떻게해야할까요?
    답글

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 17:57 신고

    USB 디버깅 허용했습니다 !
    1.adb shell ls/system/bin
    출력: adb.exe: no devices/emulators found

    2.adb devices
    출력:List of devices attached
    (출력결과 X) <-device가 나와야할 부분에 출력 결과 X
    답글

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 17:58 신고

      참고로 usb는 연결되어서 컴퓨터 내에서는 인식 가능한 상태입니다 .
      말씀처럼 안드로이드 스투디오 환경을 봐야하는지...
      어느 부분을 보면 될까요??

      답변 정말 감사합니다

    • 혼돈이 되는데요.

      1. Android studio 실행 없이 터미널에서 adb device 실행 시 no devicee 가 출력되는 것이닞요? 아니면 2. android studio 실행했을때만 문제가 되는것인지요?

      잠시 글 중에 잠시 정상적으로 된다는 것이 무슨 의미인지 자세히 설명해주세요.

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 18:05 신고

    아 저부분을 구체적으로 설명하자면
    원래 no device가 뜨는 상태인데요

    안드로이드 스투디오가 device를 인식하지 못하다가 저 상태에서 삼성 driver를 다운받으면 일시적으로 제 핸드폰을 인식할 수 있게됩니다. 그래서 정상 작동되는 줄 알았는데
    안드로이드 스투디오를 껐다 키거나, 컴퓨터를 껏다키면 다시 안드로이드 스투디오가 제 device를 인식하지 못합니다.
    즉, 잠시 정상적으로 핸드폰을 인식하다가 다시 안된다는 뜻이었습니다
    답글

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 18:16 신고

      https://abcdefgh123123.tistory.com/205

      여기에 제 환경 사진을 올려놨씁니다!

    • 폰 설정에 문제가 있는 것인지? 아니면 android studio 에 설정 문제인지 확인해봐야 합니다.

      Studio 안에 adb가 포함되어 있어서, 별도로 설치하신 sdk 버전과 내부 충돌을 의심했던 것입니다.

      일단 studio을 제외하고 adb 환경에 문제가 없는지 체크해보세요. 아래처럼 해보세요.

      1. cmd 창에서 adb devices
      --> 정상 연결되면 adb 자체는 문제가 없는 것입니다. 이 경우 studio 환경을 봐야 합니다.
      --> 비정상연결이면 다른 단말로 함 봐야 할 것 같습니다.

  • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 18:33 신고

    adb devices 해서 정상 연결 되지 않습니다 다른 단말로 함 보겠습니다.
    정말 너무나 감사드립니다. 저도 나중에 님처럼 꼭 도움을 줄 수 있는 개발자가 되겠습니다
    답글

    • android studio 없이 cmd 창에서 연결을 먼저 확인해야 합니다.
      1) 단말에서 USB 설정 허용 창을 보셨나요?
      2) 혹시라도 루팅해서 이미지 변경하신거는 아니시죠?

      가급적이면 댓글은 History가 남도록 기존 댓글에 replay해주시면 좋겠습니다.

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 18:44 신고

      네 알겠습니다

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 18:44 신고

      1) 단말에서 USB 설정 허용창을 보았냐는 것이 무슨뜻인가요??
      2) 루팅해서 이미지 변경을 하진 않았습니다.

    • https://kibua20.tistory.com/165 의 본문에서 5번 "5. USB 연결 후 adb 정상 동작 확인 "에 화면 캡쳐해서 올렸습니다.

      양산 버전은 user 버전이고, User 버전에서는 "USB연결 디버깅 허용"을 해야 adb 연결이 가능 합니다.

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 19:03 신고

      감사합니다 확인해보겠습니다 식사맛있게하세요~

    • 이전에 실행했던 adb daemon 이 살아 있는 것 같네요.

      cmd 창에서 adb kill-server 명령어 입력하고 다시 시도 해보세요.

      > adb kill-server
      > adb devices
      --> daemon start message

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 19:18 신고

      실행결과 동일합니다.
      * daemon not running; starting now at tcp:5037
      * daemon started successfully
      List of devices attached
      (비어있음)

      핸드폰 자체에 연결문제가 있는 걸까요??

    • PC하고 단말 재부팅하고 해보세요. adb process가 많이 남아 있는 것 같습니다. adb daemon 실행 성공해야 합니다.

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 19:28 신고

      재부팅 후

      adb devices 연결 시도

      결과
      * daemon not running; starting now at tcp:5037
      * daemon started successfully
      List of devices attached
      (출력없음)

      여전히 핸드폰이 연결되지 않습니다.

      virtual phone으로 실행시엔
      adb devices 정상작동합니다.

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 19:35 신고

      핸드폰 자체가 연결이 안되는것같습니다. 정확히는 인식이 안되는 것같아요. 부모님 폰으로 단말 연결해서 한번 해보려고 합니다..

      다른 것들이 다 정상인데
      핸드폰이 문제인 것같네요... 코린이인 제 생각엔 그렇습니다..핳

    • 단말하고 윈도우하고 통신인 안되고 있네요.

      1. Windows 에서 장치 관리자에서 삼성 USB가 잘표시되는지 확인해보세요.
      --> USB Driver 확인
      --> https://jujuland.tistory.com/443 참고하세요. 장치관리자에서 "포트" 하위에 삼성 USB 가 보여야 합니다.

      2. 1번이 정상이면 폰 바꿔보세요.

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 19:42 신고

      감사드립니다. 보내주신 블로그도 참조하여

      장치관리자
      <모뎀>
      <휴대용장치>

      두 부분을 체크해보았습니다.
      <모뎀>
      SAMSUNG Mobile USB Modem
      -존재함

      <휴대용장치>
      ㅁㅁ님의 Galaxy Note10+ 5G
      -존재함

      1번이 정상인 경우에 해당하므로
      핸드폰을 바꿔서 연결해야할 것같습니다.

    • <포트> 하위에는 삼성 단말 안 보이나요?

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 19:48 신고

      말씀하신부분을 보았습니다.
      <포트>하위에
      삼성 USB가 존재하지 않습니다.
      삼성 단말 또한 존재하지 않습니다.

      <모뎀>하위에
      삼성 USB가 존재합니다.

      제 컴퓨터에서 보이는 것
      <포트>
      표준 Bluetooth에서 직렬 링크(COM3)
      표준 Bluetooth에서 직렬 링크(COM4)

      <모뎀>
      SAMSUNG Mobile USB Modem

      <휴대용장치>
      ㅁㅁ님의 Galaxy Note10+ 5G

    • 다른 폰 해보시고, 안되시면 삼성 서비스 센터의 도움을 받으셔야 할 것 같네요.

    • Favicon of https://abcdefgh123123.tistory.com BlogIcon happy_life 2021.09.29 19:54 신고

      네 알겠습니다.
      정상작동하는 경우
      <포트>
      표준 Bluetooth에서 직렬 링크(COM3)
      표준 Bluetooth에서 직렬 링크(COM4)

      가 아니라

      <포트>
      SAMSUNG Mobile USB Modem
      ㅁㅁ님의 Galaxy Note10 + 5G
      이런식으로 나타나야하나요??
      정상출력의 경우 각 하위에 어떤식으로 존재해야 하나요???
      늦은시간까지도 답변해주셔서..정말 감사드립니다 ㅠㅠ

  • ㅇㅇ 2021.11.05 23:03

    이 형님땜에 삽니다
    정말 감사합니다 이런 꿀정보를,,,,
    답글