Linux에 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
방법 B: Google platform-tools 사용 (권장: 최신 도구)
- Google의 Android SDK platform-tools ZIP을 다운로드합니다(또는 공식 SDK Manager 이용).
- ZIP을 추출하고 경로를 기억합니다.
- 터미널을 열고 추출한 폴더로 이동합니다:
cd /path/to/extracted/folder/
(예: cd /home/username/Downloads/platform-tools)
- 또는 파일 관리자에서 폴더를 연 뒤 빈 공간에서 우클릭 → “터미널에서 열기”를 선택해도 됩니다.
platform-tools 폴더에 들어가면 adb와 fastboot 실행 파일이 있습니다. 이 폴더를 PATH에 추가하면 어디서든 사용할 수 있습니다.
예: ~/.bashrc 또는 ~/.profile에 추가
export PATH="$PATH:/home/username/Downloads/platform-tools"
변경 후 터미널을 재시작하거나 source ~/.bashrc
를 실행하세요.
기기 연결 및 기본 사용법
ADB 버전 확인:
adb version
기기 연결 확인(USB 디버깅 활성화 필요):
adb devices
정상 연결 시 시리얼 같은 코드와 상태(예: device)가 표시됩니다.
USB 디버깅 권한 요청
기기를 처음 연결하면 기기 화면에서 “USB 디버깅 허용” 대화상자가 뜹니다. 신뢰할 수 있는 PC인지 확인한 뒤 허용하세요.
권한 문제: udev 규칙 설정 (비루트로 adb 사용하기)
루트 권한 없이 adb를 사용하려면 해당 기기 벤더 ID에 대한 udev 규칙을 추가합니다.
- USB로 기기를 연결하고
lsusb
로 벤더 ID를 확인합니다.
lsusb
# 출력 예시: Bus 002 Device 006: ID 18d1:4ee2 Google Inc.
- /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
로 확인하세요.
- 규칙 적용:
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
은 기기 제조사에 따라 작동 방식과 위험이 다릅니다. 반드시 공식 가이드 확인 및 데이터 백업을 하세요.
플래시/복구 작업의 간단 플레이북
- 데이터 백업(ADB 또는 MTP) 및 중요한 파일 복사
- 부트로더 언락 정책 확인(제조사별 절차 준수)
- 기기를 부트로더/fastboot 모드로 부팅:
adb reboot-bootloader
- fastboot로 기기 인식 확인:
fastboot devices
- (선택) 부트 이미지/리커버리 플래시:
fastboot flash recovery twrp.img
fastboot reboot
- 성공 여부 확인 및 정상 부팅 검증
인수 기준:
- 기기가 fastboot 명령에 응답한다.
- 플래시 후 해당 리커버리가 정상 구동한다.
- 데이터 복구 가능 또는 백업이 완료되었다.
문제 해결 요약(자주 보는 오류와 해결책)
문제: adb devices가 빈 목록을 반환함
- USB 케이블이 데이터 전송용인지 확인하세요(충전 전용 케이블이면 동작하지 않음).
- 기기에서 USB 디버깅을 활성화했는지 확인하세요.
- udev 규칙이 적용되었는지 확인하고 USB를 재연결하세요.
adb kill-server
후adb 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 채널의 튜토리얼도 참고하면 실습에 도움이 됩니다.