제너럴공국

ADB 명령어 모음 본문

컴퓨터공학/개발 도구

ADB 명령어 모음

제너럴3세 2024. 7. 28. 01:46
반응형
adb devices #디바이스 목록 확인

### shell
adb shell #shell 열기
exit #shell 닫기


adb shell input touchscreen tap 400 2500 #특정 화면 touch

* python에서 자동으로 ADB 통신하는 code

import subprocess
import re

def run_adb_command(command):
    try:
        result = subprocess.run(['adb', 'shell'] + command.split(), 
                                capture_output=True, 
                                text=True, 
                                check=True)
        return result.stdout
    except subprocess.CalledProcessError as e:
        print(f"Error occurred: {e}")
        print(f"Command: {'adb shell ' + command}")
        print(f"Output: {e.output}")
        print(f"Error Output: {e.stderr}")
        return None

def run_host_command(command):
    try:
        result = subprocess.run(command.split(), 
                                capture_output=True, 
                                text=True, 
                                check=True)
        return result.stdout
    except subprocess.CalledProcessError as e:
        print(f"Error occurred: {e}")
        print(f"Command: {command}")
        print(f"Output: {e.output}")
        print(f"Error Output: {e.stderr}")
        return None

def check_adb_connection():
    # 호스트 시스템에서 ADB 디바이스 연결 확인
    output = run_host_command('adb devices')
    if output and 'device' in output:
        print("ADB devices are connected:")
        print(output)
        return True
    else:
        print("No devices connected. Please connect an Android device and try again.")
        return False

def get_gps_location():
    # Android 디바이스의 셸에서 GPS 정보를 가져옵니다.
    output = run_adb_command('dumpsys location')
    if output:
        print("GPS Location Data:")
        # 예를 들어 'Last known location' 정보 추출
        # 아래는 가상의 패턴입니다. 실제 출력을 기반으로 조정 필요.
        #pattern = re.compile(r'Last known location: \(([^)]+)\)')
        pattern = re.compile(r'last location= \(([^)]+)\)')
        matches = pattern.findall(output)
        if matches:
            for match in matches:
                print(f"Location: {match}")
        else:
            print("No GPS location data found.")

if __name__ == "__main__":
    if check_adb_connection():
        get_gps_location()
반응형
Comments