1. 개요
Android 디버그 브리지(Android Debug Bridge, ADB)는 명령 프롬프트를 통해 안드로이드를 조작할 수 있는 프로그램이다. Android SDK를 설치하면 그 안에 포함되어 있다.2. 사용 방법
설정에 들어가서 개발자 도구를 활성화한다.[1] 개발자 도구에서 USB 디버깅 허용을 체크해준다. 스마트폰 쪽에서는 준비가 끝났다. 이제 데스크탑에 ADB를 설치해야 한다. 여기에서 윈도우, 맥, 리눅스용 최신 Android SDK를 다운받을 수 있다. 설치해주자.ADB를 실행하고 다음과 같이 입력한다.
adb devices
기기가 adb로 잘 연결되었나 확인한다. 정상적으로 연결되었다면 기기 이름이 뜨고 그 옆에 attached가 표기되어 있을 것이다.3. 예시
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, performanceadb 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이다.