Android 디버깅브리지
Android Debug Bridge원저작자 | 구글 |
---|---|
안정된 릴리스 | 31.0.3 |
저장소 | android.googlesource.com |
기입처 | C++ |
운영 체제 | Windows, Linux, MacOS |
부속품 | Android SDK |
유형 | 소프트웨어 개발 도구 |
면허증. | Apache 라이센스 2.0 |
웹 사이트 | developer |
Android Debug Bridge(일반적으로 adb로 줄임말)는 Android 기반 장치의 디버깅에 사용되는 프로그래밍 도구입니다.Android 디바이스의 데몬은 USB 또는 TCP를 통해 호스트 PC의 서버와 연결되며, 최종 사용자가 TCP를 통해 사용하는 클라이언트에 연결됩니다.2007년부터 Google에 의해 Apache License에 따라 오픈 소스 소프트웨어로 제공되고 있는 이 기능에는 셸과 백업을 만들 수 있는 기능이 포함되어 있습니다.adb 소프트웨어는 Windows, Linux 및 MacOS와 호환됩니다.RSA 인증이나 디바이스 화이트리스트 작성등의 경감을 목적으로 한 봇넷이나 그 외의 악성 소프트웨어에 의해서 오용되고 있습니다.
특징들
adb의 기능에는 호스트 [1]컴퓨터에서 파일 복사, 앱 설치, 로그캣 출력 보기, Unix 쉘 가져오기, Qualcomm EDL [3]모드로 재부팅 등이 있습니다.예를 들어, Android 애플리케이션은 다음 명령으로 저장할 수 있습니다.backup
파일로 [4]변환합니다.Java Debug Wire Protocol [5]지원도 포함되어 있습니다.
일부 그래픽 인터페이스를 사용할 수 있게 되었습니다.Android Studio의 그래픽 Android 장치 모니터를 사용하여 Android [6]장치에서 정보를 검색할 수 있습니다.
개발 이력
Android Software Development Kit(SDK)는 [7]2007년에 처음 출시되었습니다.구글은 2017년부터 안드로이드 [8]SDK와 별도로 adb를 다운로드 할 수 있게 되었습니다.
2015년 마이크로소프트는 애드비 [9]클라이언트에 연결할 수 있는 안드로이드 에뮬레이터를 출시했습니다.2016년 Android Studio 2.0에서는 앱을 설치하고 adb를 [10]통해 파일을 푸시할 때 성능이 5배 향상되었습니다.Android Things를 보다 쉽게 사용할 수 있도록 2017년에는 수동 adb [11]명령어를 중심으로 래퍼를 만들었습니다.구글은 2020년 안드로이드 11에 애드비 증분 [12]설치를 추가했다.2020년에 Wi-Fi adb는 MacOS용 Android Studio에 [13]통합되었습니다.2021년에 Android 12는adb backup
앱별 매니페스토 [14]구성을 사용하여 앱에서 사용자 데이터를 백업하도록 명령이 제한되었습니다.
세우다
호스트 컴퓨터
Windows의 경우 Android SDK에는 압축을 풀고 [15]설치할 수 있는 adb.exe 바이너리가 포함되어 있습니다.How-To Geek는 이진 파일이 포함된 폴더를 PATH 환경 [16]변수에 추가하는 것이 좋습니다.
Ubuntu 에서는, adb 를 인스톨 할 수 있습니다.android-tools-adb
패키지.[17]Debian의 경우, Debian을 설치할 것을 권장합니다.android-sdk-platform-tools-common
옆에 있는 패키지adb
package: 루트 [18]권한 없이 도구를 실행할 수 있는 udev 규칙을 설치합니다.macOS 및 기타 Linux 배포의 경우 플랫폼 도구를 다운로드하고 bashrc에서 [19]PATH 변수를 수정할 수 있습니다.
안드로이드 디바이스
Android 4.2.2 이후(API 레벨 17)에서는 사용자가 수락해야 하는 RSA 핑거 프린트가 포함된 대화상자가 나타납니다.이를 통해 기기 [20]사용자의 동의 없이 컴퓨터가 디버깅 메커니즘을 악용하지 않도록 보호할 수 있습니다.Android 4.2부터는 기본적으로 개발자 설정이 숨겨집니다.정보 메뉴에서 빌드 번호를 7번 누르면 사용자에게 표시됩니다.그 후 USB 디버깅옵션을 [21]유효하게 할 수 있습니다.일부 Android 벤더는 이를 활성화하는 절차가 다릅니다.예를 들어, Huawei는 adb를 [22]활성화하기 전에 핀코드를 입력해야 합니다.
Android 기기의 터치스크린이 고장났을 경우 USB On-The-Go를 사용하여 마우스를 장치에 연결하고 USB [23][22]디버깅을 활성화할 수 있습니다.
아키텍처
adb 프로토콜은 USB 또는 Wi-Fi를 통해 TCP를 통해 전송할 수 있습니다.클라이언트-서버 아키텍처를 사용합니다.사용 중인 프로토콜은 두 가지가 있습니다.첫 번째는 클라이언트와 서버 사이, 두 번째는 서버와 데몬 사이입니다.adb 데몬은 C에서 구현되며 Android 사용자 공간에 위치합니다.데몬은 Android USB 프레임워크에 의해 촉진됩니다.UsbDeviceManager
그리고.UsbDebuggingManager
를 클릭합니다.[5]
클라이언트 ↔ 서버 프로토콜
클라이언트와 서버간의 통신 모드는 TCP 소켓입니다.서버는 클라이언트가 요청을 전송해야 하는 포트에서 수신합니다.요청에는 ASCII의 4바이트 초기 필드와 payload가 포함됩니다.payload는 host라는 단어로 시작하여 서버로 전송해야 함을 나타냅니다.그런 다음 서버는 OK 또는 FAIL로 응답하여 상태를 옵션 페이로드 및 [5]길이와 조합하여 나타낼 수 있습니다.
서버 ↔ 데몬 프로토콜
서버로부터 송신되는 메시지는, 24 바이트 길이의 헤더와 다음의 [5]필드로 구성됩니다.
- 명령어
- 첫 번째 인수
- 두 번째 인수
- 페이로드 길이(0 이상)
- 데이터 페이로드의 CRC32
- XOR 명령을 통해 계산된 매직 값
0xFFFFFFFF
보안.
Android 2.2까지 Android는 RageAgainst에 취약했습니다.Cage의 부정 이용adb 데몬은 권한을 폐기할 때 setuid 시스템콜의 반환값을 체크하지 않았습니다.부정 이용은 프로세스 식별자가 소진되어 실패할 때까지 프로세스를 포크합니다.데몬이 크래시하고 재시작하면 폐기된 권한으로 새 프로세스를 시작할 수 없으며 루트로 계속 실행됩니다.그 후 adb는 루트 [24]셸을 제공했습니다.2017년에는 ADB를 이용하여 온보드 모뎀을 넘겨받는 보안 취약성이 공개되었습니다.공격에는 adb가 이미 활성화되어 있고 허가되어 있어야 합니다.다만, 몇개의 회피책을 사용할 [25]수 있습니다.
ADB와 같은 다양한 악성 프로그램 패밀리.Miner, Ares, IPStorm, Fbot 및 Trinity는 애드비 인터페이스의 공개 여부를 인터넷을 스캔하여 이들 디바이스에 악성 프로그램을 [26]설치했습니다.또한 adb를 사용하여 말웨어를 제거할 수 있으며, 세이프 모드로 부팅하여adb uninstall
명령어를 [27]입력합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Darcey, Lauren (2012). Android wireless application development. Shane Conder (3rd ed.). Upper Saddle River, NJ: Addison-Wesley. ISBN 978-0-321-81383-1. OCLC 749852462. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
- ^ "Things You Can Do with Android's adb Command". For Dummies. Archived from the original on 2018-05-15. Retrieved 2021-09-09.
- ^ EASTTOM, CHUCK (2021). An In-Depth Guide to Mobile Device Forensics. [S.l.]: CRC PRESS. p. 72. ISBN 978-0-367-63300-4. OCLC 1250310301. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
- ^ Jack Wallen (2015-03-06). "How to create a full backup of your Android device without root". Archived from the original on 2016-01-24. Retrieved 2016-01-29.
- ^ a b c d Regupathy, Rajaram (2014). Unboxing Android USB: a hands-on approach with real World examples. Berkeley, CA. ISBN 978-1-4302-6209-1. OCLC 880673864. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
- ^ Morgillo, Ivan; Viola, Stefano (2016). Learning embedded Android N programming: create the perfectly customized system by unleashing the power of Android OS on your embedded device. Birmingham, UK. p. 89. ISBN 9781785283284. OCLC 1020708322. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
- ^ "Google releases Android SDK". Macworld. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ "Google makes ADB, fastboot, and other platform tools available without full SDK or Android Studio download". Android Police. 2017-01-05. Archived from the original on 2021-04-10. Retrieved 2021-09-09.
- ^ Vasile, Cosmin. "Microsoft Releases Android Emulator and It's Supposed to Be Faster than Google's". Softpedia. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ "Android Studio 2.0 - Beta". Android Developers Blog. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ "Android Things Developer Preview 6". Android Developers Blog. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ "Turning it up to 11: Android 11 for developers". Android Developers Blog. Archived from the original on 2021-09-17. Retrieved 2021-09-10.
- ^ "Announcing Android Studio Arctic Fox (2020.3.1) & Android Gradle plugin 7.0". Android Developers Blog. Archived from the original on 2021-09-12. Retrieved 2021-09-10.
- ^ "Behavior changes: Apps targeting Android 12 Android 12 Beta". Android Developers. Archived from the original on 2021-09-28. Retrieved 2021-09-28.
- ^ Harwani, B. M. (2013). PhoneGap build: developing cross platform mobile applications in the cloud. Boca Raton. p. 38. ISBN 978-1-4665-8975-9. OCLC 862745697. Archived from the original on 2022-03-07. Retrieved 2022-01-29.
- ^ Hoffman, Chris; Fedewa, Joe (4 September 2021). "How to Install and Use ADB, the Android Debug Bridge Utility". How-To Geek. Archived from the original on 2021-09-18. Retrieved 2021-09-09.
- ^ Smyth, Neil (2020). "7". Android Studio 4. 0 Development Essentials - Java Edition: Developing Android Apps Using Android Studio 4. 0, Java and Android Jetpack. Cary. ISBN 978-1-951442-21-7. OCLC 1190906409. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
- ^ "Debian -- Details of package adb in bullseye". packages.debian.org. Archived from the original on 2021-09-08. Retrieved 2021-09-08.
- ^ "How to Install Android Debug Bridge (ADB) and Fastboot". Lifewire. Archived from the original on 2022-01-30. Retrieved 2022-01-18.
- ^ "Run apps on a hardware device". Android Developers. Archived from the original on 2021-09-08. Retrieved 2021-09-08.
- ^ Wallen, Jack. "How to enable Developer options in Android 4.2". TechRepublic. Archived from the original on 2021-09-09. Retrieved 2021-09-09.
- ^ a b Aranzulla, Salvatore. "Come attivare debug USB". Salvatore Aranzulla (in Italian). Archived from the original on 2021-09-09. Retrieved 2021-09-09.
- ^ Ogubuike, Udochi (2019-08-09). "How to enable USB debugging mode on Android". The Punch. Archived from the original on 2019-09-17. Retrieved 2021-09-09.
- ^ Drake, Joshua J. (2014). Android hacker's handbook. Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A. Ridley, Georg Wicherski. Indianapolis, IN: Wiley. p. 75. ISBN 978-1-118-60861-6. OCLC 875820167. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
- ^ Mendelsohn, Tom (2017-01-09). "Google plugs severe Android vulnerability that exposed devices to spying". Ars Technica. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ Cimpanu, Catalin. "Android devices ensnared in DDoS botnet". ZDNet. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ Schuman, Evan. "This Vultur app takes malicious to the next level". Computerworld. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
외부 링크
- Android 디버깅 브리지 - Android 개발자
- ADB 및 Fastboot 가이드, LinageOS
- Android 디버깅브리지, Arch Linux Wiki
- adb, Gentoo Linux wiki
- Android 디버깅브리지, Droid Wiki