최근 수정 시각 : 2024-12-18 09:50:05

Android 디버그 브리지

1. 개요2. 사용 방법3. 예시
3.1. 기본 앱 삭제, 재설치3.2. 오버클럭

1. 개요

Android 디버그 브리지(Android Debug Bridge, ADB)는 명령 프롬프트를 통해 안드로이드를 조작할 수 있는 프로그램이다. Android SDK를 설치하면 그 안에 포함되어 있다.

2. 사용 방법

설정에 들어가서 개발자 도구를 활성화한다.[1] 개발자 도구에서 USB 디버깅 허용을 체크해준다. 스마트폰 쪽에서는 준비가 끝났다. 이제 데스크탑에 ADB를 설치해야 한다. 여기에서 윈도우, 맥, 리눅스용 최신 Android SDK를 다운받을 수 있다. 설치해주자.

ADB를 실행하고 다음과 같이 입력한다.
adb devices
기기가 adb로 잘 연결되었나 확인한다. 정상적으로 연결되었다면 기기 이름이 뜨고 그 옆에 attached가 표기되어 있을 것이다.

3. 예시

실수해서 폰이 벽돌이 되더라도 본인 책임이다.[2]

3.1. 기본 앱 삭제, 재설치

  • 해당 방식은 갤럭시 S2 등 안드로이드 4.4 미만에서는 작동하지 않는다. 정확히 말하면 pm은 안드로이드 2.X부터 적용되었고, 4.X에 존재하지 않는 --user를 제거하면 작동은 하나 일부 기기에서 Failure된다.
  • 안드로이드 8 미만은 uninstall은 되는데 install-existing을 지원하지 않아서 복구 과정이 복잡해지므로 disable 등의 다른 방식을 추천한다.

일반적으로는 지우지 못하는 기본 앱, 통신사 앱 등의 블로트웨어 루팅 등의 번거로운 방법 없이 ADB로 삭제할 수도 있다. adb devices로 기기 연결 여부를 체크한 다음 다음과 같이 입력한다.
adb shell pm uninstall -k --user 0 (패키지 이름)
삭제한 앱을 복구하고 싶다면 아래 명령어를 입력하면 된다.
adb shell pm install-existing --user 0 (패키지 이름)
안드로이드 8.0 이상인데 install-existing 명령어를 지원하지 않는다며 pm install-existing이 되지 않는다면 아래 명령어를 입력한다.
adb shell cmd package install-existing --user 0

앱을 삭제하려면 앱의 패키지 이름을 파악해야 하는데, "adb shell pm list packages" 같은 명령어로 모든 패키지 이름을 확인할 수 있으나 번거로우므로 Package Name Viewer처럼 패키지 이름을 확인할 수 있는, 기왕이면 일반 앱과 시스템 앱을 구별해주는 앱을 설치하자.

정상적인 부팅에 필수적인 시스템 앱을 삭제하면 스마트폰이 정상적으로 켜지지 않아 공장초기화를 해야 할 수도 있다. 물론 스마트폰의 성능이 많이 뒤떨어지면 시스템 앱도 지워야 할 수도 있다. 선발대 글을 참고해서 필수적이지 않은 시스템 앱을 삭제하면 어지간해선 안전할 것이다.

지운 앱은 이름 및 패키지명을 따로 적어두어야 혹시 필요할 때 쉽게 복구할 수 있다. 메모장이나 구글 독스 등을 활용하기 바란다.

개발자 모드 > 실행 중인 서비스 진입하면 현재 램을 차지하는 앱을 볼 수 있다. 안 쓰는데 램 많이 먹는 앱만 삭제해도 좋아진다. 구형 스마트폰이 답답하다고 버리기 전에 기본 앱 삭제 및 최적화에 도전하길 권하며, 최신 기종이라도 램플러스를 켜기 전에 안 쓰는 기본 앱부터 지우기 바란다.

3.2. 오버클럭

정확히 말하면 오버클럭이 아니라 CPU가 작동하는 방식을 변경해서 제한을 해제하는 것이다.

대부분의 기종은 CPU Governer, cpufreq 관련 설정을 확인, 변경하기 위해 루팅이 필요하다.

CPU Governer 확인 : ondemand < interactive < performance[3] 순서대로 배터리를 많이 소모한다.
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
CPU Governer 설정 : ondemand, interactive, performance
adb shell "echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
각각 코어 최대주파수 확인 : cpu0, cpu1, cpu2, cpu3..[4]
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
모든 코어 최대 주파수 확인
adb shell "for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq; do cat $i; done"
각각 코어 설정 가능한 주파수 확인 : cpu0, cpu1, cpu2, cpu3..
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
각각 코어 최소 주파수 설정
adb shell "echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"
각각 코어 최대 주파수 설정
adb shell "echo 2100000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq"

[1] 안드로이드 기종마다 활성화 방식이 다르므로 검색하자. [2] 물론 ADB로 인한 벽돌화의 대부분은 리커버리 모드를 통한 공장초기화로 해결할 수 있다. 어지간해서는 ADB 좀 만졌다고 커널이나 하드웨어가 손상되진 않기 때문. [3] 항상 최대 주파수로 작동하기 때문에 배터리가 빠르게 소모된다. [4] 300000은 300Mhz이다.

분류