기술 가이드

Linux에 ADB와 Fastboot 설치 및 사용 방법

6 min read 개발자 도구 업데이트됨 22 Sep 2025
Linux에 ADB와 Fastboot 설치 및 사용 가이드
Linux에 ADB와 Fastboot 설치 및 사용 가이드

중요: 부트로더 언락이나 플래시 작업은 데이터 손실과 보증 무효화를 초래할 수 있습니다. 작업 전에 반드시 백업하세요.

ADB 및 Fastboot 설치 안내 이미지

개요

ADB(Android Debug Bridge)와 Fastboot는 Android SDK의 플랫폼 도구 일부로, PC와 Android 기기 사이에 디버그 브리지를 만듭니다. ADB는 기기 상의 쉘, 파일 전송, 앱 설치 등을 수행합니다. Fastboot는 부트로더/플래시 관련 진단 및 이미지 전송에 사용됩니다. 이 글은 Ubuntu 20.04 기반 예시를 사용하지만 대부분의 Linux 배포판에서 동일한 절차로 적용됩니다.

관련 검색 의도: Linux에 ADB 설치, Fastboot 설치, ADB 사용법, Ubuntu에서 ADB, udev 규칙 설정, ADB 명령어 모음


준비물

  • Linux PC(예: Ubuntu 20.04 이상)
  • USB 케이블(데이터 전송 가능)
  • Android 기기: 개발자 옵션과 USB 디버깅 활성화 필요

개발자 옵션 활성화 방법: 설정 > 폰 정보 > 빌드 번호를 연속으로 터치(일반적으로 5~7회). 이후 설정 > 개발자 옵션 > USB 디버깅을 켭니다.

개발자 옵션 예시

설치 방법 개요

아래 두 가지 방법 중 하나를 선택하세요.

  • 방법 A: 패키지 매니저(터미널)로 간단 설치
  • 방법 B: Google platform-tools(수동 설치) 사용 — 최신 버전 보장

방법 A: 터미널에서 apt로 설치 (간단)

터미널을 열고(예: Ctrl+Alt+T) 저장소 정보를 업데이트한 후 패키지를 설치합니다. 첫 세션이라면 sudo 비밀번호를 묻습니다.

sudo apt update
sudo apt-get install android-tools-adb android-tools-fastboot

설치 후 ADB 서버가 자동으로 시작됩니다. 만약 에러가 발생하면 아래로 시작하세요:

sudo adb start-server

sudo apt update 화면

방법 B: Google platform-tools 사용 (권장: 최신 도구)

  1. Google의 Android SDK platform-tools ZIP을 다운로드합니다(또는 공식 SDK Manager 이용).
  2. ZIP을 추출하고 경로를 기억합니다.

platform-tools 압축 해제 화면

  1. 터미널을 열고 추출한 폴더로 이동합니다:
cd /path/to/extracted/folder/

(예: cd /home/username/Downloads/platform-tools)

  1. 또는 파일 관리자에서 폴더를 연 뒤 빈 공간에서 우클릭 → “터미널에서 열기”를 선택해도 됩니다.

파일 관리자에서 터미널 열기

platform-tools 폴더에 들어가면 adb와 fastboot 실행 파일이 있습니다. 이 폴더를 PATH에 추가하면 어디서든 사용할 수 있습니다.

예: ~/.bashrc 또는 ~/.profile에 추가

export PATH="$PATH:/home/username/Downloads/platform-tools"

변경 후 터미널을 재시작하거나 source ~/.bashrc를 실행하세요.


기기 연결 및 기본 사용법

ADB 버전 확인:

adb version

adb version 출력 예시

기기 연결 확인(USB 디버깅 활성화 필요):

adb devices

adb devices 출력 예시

정상 연결 시 시리얼 같은 코드와 상태(예: device)가 표시됩니다.

USB 디버깅 권한 요청

기기를 처음 연결하면 기기 화면에서 “USB 디버깅 허용” 대화상자가 뜹니다. 신뢰할 수 있는 PC인지 확인한 뒤 허용하세요.

USB 디버깅 허용 안내


권한 문제: udev 규칙 설정 (비루트로 adb 사용하기)

루트 권한 없이 adb를 사용하려면 해당 기기 벤더 ID에 대한 udev 규칙을 추가합니다.

  1. USB로 기기를 연결하고 lsusb로 벤더 ID를 확인합니다.
lsusb
# 출력 예시: Bus 002 Device 006: ID 18d1:4ee2 Google Inc.
  1. /etc/udev/rules.d/51-android.rules 파일을 만들고 벤더 규칙을 추가합니다. 예:
sudo nano /etc/udev/rules.d/51-android.rules

파일 내용(예):

# Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
# Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"

일반적으로 사용되는 벤더 ID 예: Google(18d1), Samsung(04e8), Huawei(12d1), Xiaomi(2717). 실제 ID는 lsusb로 확인하세요.

  1. 규칙 적용:
sudo udevadm control --reload-rules
sudo udevadm trigger

그런 다음 USB를 재연결하고 adb devices를 실행합니다.

중요: /etc/udev/rules.d 파일의 퍼미션과 소유권을 적절히 유지하세요. MODE를 0666으로 두면 모든 사용자가 접근할 수 있으므로 보안 정책에 따라 조정하세요.


자주 쓰는 ADB 및 Fastboot 명령 모음 (치트시트)

  • adb devices — PC와 기기 연결 확인
  • adb version — adb 버전 확인
  • adb start-server / adb kill-server — ADB 서버 시작/종료
  • adb reboot recovery — 리커버리 모드로 재부팅
  • adb reboot-bootloader — 부트로더 모드로 재부팅
  • adb push [로컬경로] [원격경로] — PC → 기기 파일 복사 예: adb push myfile.zip /sdcard/Download/
  • adb pull [원격경로] [로컬경로] — 기기 → PC 파일 복사
  • adb shell [명령] — 기기 쉘에서 명령 실행 예: adb shell pm list packages
  • adb install app.apk — APK 설치 (디폴트 경로에서는 서명 규칙이 적용됨)
  • adb logcat — 실시간 로그 확인

Fastboot 관련:

  • fastboot devices — fastboot 모드에서 기기 확인
  • fastboot oem unlock — 부트로더 언락(제조사별 다름)
  • fastboot flashing unlock — 새로운 표준 부트로더 언락 명령
  • fastboot flash recovery recovery.img — 리커버리 이미지 플래시
  • fastboot flash boot boot.img — 부트 이미지 플래시
  • fastboot erase userdata — 사용자 데이터 파티션 삭제(데이터 초기화)

주의: oem unlock 또는 flashing unlock은 기기 제조사에 따라 작동 방식과 위험이 다릅니다. 반드시 공식 가이드 확인 및 데이터 백업을 하세요.


플래시/복구 작업의 간단 플레이북

  1. 데이터 백업(ADB 또는 MTP) 및 중요한 파일 복사
  2. 부트로더 언락 정책 확인(제조사별 절차 준수)
  3. 기기를 부트로더/fastboot 모드로 부팅: adb reboot-bootloader
  4. fastboot로 기기 인식 확인: fastboot devices
  5. (선택) 부트 이미지/리커버리 플래시:
fastboot flash recovery twrp.img
fastboot reboot
  1. 성공 여부 확인 및 정상 부팅 검증

인수 기준:

  • 기기가 fastboot 명령에 응답한다.
  • 플래시 후 해당 리커버리가 정상 구동한다.
  • 데이터 복구 가능 또는 백업이 완료되었다.

문제 해결 요약(자주 보는 오류와 해결책)

문제: adb devices가 빈 목록을 반환함

  • USB 케이블이 데이터 전송용인지 확인하세요(충전 전용 케이블이면 동작하지 않음).
  • 기기에서 USB 디버깅을 활성화했는지 확인하세요.
  • udev 규칙이 적용되었는지 확인하고 USB를 재연결하세요.
  • adb kill-serveradb start-server를 실행해 보세요.

문제: “unauthorized”로 표시됨

  • 기기 화면에서 “USB 디버깅 허용” 팝업에서 허용을 선택하세요.
  • 만약 팝업이 보이지 않으면 기기에서 선을 뺐다가 다시 연결하고 권한 대화상자를 확인하세요.

문제: fastboot devices에 나타나지 않음

  • 기기가 fastboot/부트로더 모드로 있는지 확인하세요(기기별 버튼 조합 또는 adb reboot-bootloader).
  • 드라이버/udev 규칙을 점검하세요.

문제: 권한 문제로 파일 전송 불가

  • udev 규칙을 올바르게 추가했는지 확인하고 sudo udevadm control --reload-rules 실행 후 USB 재연결.

보안 및 개인 정보 주의사항

  • 부트로더 언락 시 기기 초기화(데이터 삭제)가 발생할 수 있습니다.
  • 신뢰할 수 없는 이미지를 플래시하면 보안 취약점 또는 영구 손상이 생길 수 있습니다.
  • 회사 기기 또는 확인되지 않은 하드웨어에서는 관리자 정책을 확인하세요.

역할별 체크리스트

개발자:

  • platform-tools 최신 버전 사용
  • adb logcat으로 앱 로그 모니터링
  • 디버그 APK 서명 설정 확인

지원 엔지니어:

  • adb shell로 로그/상태 확인
  • adb pull로 로그 파일 수집
  • udev 규칙으로 원격 엔지니어가 권한 없이 접근 가능하게 설정

일반 사용자(튜토리얼 따라하기):

  • 중요한 데이터 백업
  • 제조사 가이드 숙지
  • 안정적인 USB 케이블 사용

짧은 결정 트리(간단 판단 흐름)

flowchart TD
  A[기기 연결됨?] -->|아니오| B[USB 케이블 확인]
  A -->|예| C[adb devices 실행]
  C -->|빈 목록| D[USB 디버깅 확인]
  C -->|unauthorized| E[기기에서 허용 팝업 확인]
  C -->|device| F[작업 수행: adb shell / push / pull]

1줄 용어집

  • ADB: Android Debug Bridge, 기기 디버깅/명령 전송 도구
  • Fastboot: 부트로더와 직접 통신해 이미지 플래시/진단하는 도구
  • udev 규칙: Linux에서 USB 장치의 권한을 제어하는 규칙 파일

결론

이 가이드를 통해 Linux에 ADB와 Fastboot를 설치하고, 기본 연결 확인, 권한 문제(udev 규칙), 자주 쓰는 명령어와 플래시 작업의 안전 절차를 배웠습니다. 실무에서는 platform-tools 최신 버전을 사용하고, 부트로더 언락/플래시 전에는 항상 백업과 제조사 정보를 확인하세요.

요약: ADB/fastboot 설치 방법(apt 또는 platform-tools), udev 규칙으로 비루트 접근 설정, 주요 명령 치트시트, 트러블슈팅을 숙지하면 대부분의 작업을 안전하게 수행할 수 있습니다.

감사합니다. 이 글이 도움이 되었다면 댓글로 질문을 남겨주세요. DigitBin YouTube 채널의 튜토리얼도 참고하면 실습에 도움이 됩니다.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

GeForce Experience 오류 0x0003 해결 가이드
문제해결

GeForce Experience 오류 0x0003 해결 가이드

Spotify에서 노래 숨기기 및 숨김 해제 방법
가이드

Spotify에서 노래 숨기기 및 숨김 해제 방법

Snapchat 후면 카메라 문제 해결 가이드
앱 가이드

Snapchat 후면 카메라 문제 해결 가이드

안드로이드 네트워크 데이터 캡처 가이드
안드로이드 보안

안드로이드 네트워크 데이터 캡처 가이드

iOS 12.1.2 아이폰 셀룰러 데이터 버그와 해결법
모바일

iOS 12.1.2 아이폰 셀룰러 데이터 버그와 해결법

안드로이드에서 네트워크 데이터 캡처하기
Android

안드로이드에서 네트워크 데이터 캡처하기