Android/ADB

ADB를 활용한 GPS 및 위치 서비스 조작

임베디드 친구 2025. 2. 26. 13:35
728x90
반응형

ADB를 활용한 GPS 및 위치 서비스 조작

Android 디바이스에서 ADB(Android Debug Bridge)를 활용하면 GPS 및 위치 서비스를 조작할 수 있습니다. 개발 및 테스트 환경에서 특정 위치를 설정하거나, GPS 기능을 활성화 및 비활성화하는 작업이 필요할 때 유용하게 사용할 수 있습니다. 이 글에서는 ADB 명령어를 사용하여 GPS 및 위치 서비스를 조작하는 방법을 설명하겠습니다.

1. ADB를 활용한 GPS 활성화 및 비활성화

1.1 GPS 활성화

ADB를 사용하여 GPS를 활성화하려면 아래 명령어를 실행하면 됩니다.

adb shell settings put secure location_providers_allowed +gps

이 명령어는 settings 명령을 이용하여 secure 영역에서 location_providers_allowed 설정값에 gps를 추가하여 GPS를 활성화합니다.

1.2 GPS 비활성화

GPS를 비활성화하려면 다음과 같은 명령어를 실행하면 됩니다.

adb shell settings put secure location_providers_allowed -gps

위 명령어는 location_providers_allowed 설정값에서 gps를 제거하여 GPS 기능을 비활성화합니다.

1.3 GPS 상태 확인

현재 GPS가 활성화되어 있는지 확인하려면 다음 명령어를 실행할 수 있습니다.

adb shell settings get secure location_providers_allowed

이 명령어는 현재 location_providers_allowed 값에 포함된 위치 제공자 목록을 출력합니다. 결과 값에 gps가 포함되어 있으면 GPS가 활성화된 상태이며, 포함되지 않았다면 GPS가 비활성화된 상태입니다.

2. 특정 위치 열기 (Google 지도 사용)

테스트 중 특정 위치를 지도에서 열어야 할 경우, ADB를 이용하여 Google 지도를 실행할 수 있습니다.

adb shell am start -a android.intent.action.VIEW -d "geo:37.7749,-122.4194"

이 명령어는 Android의 am start 명령어를 사용하여 geo: 스킴을 포함한 URL을 실행합니다. 위 예제에서는 37.7749, -122.4194 좌표를 Google 지도에서 표시합니다.

2.1 특정 위치를 확대하여 표시

지도에서 특정 줌 레벨을 적용하여 위치를 열고 싶다면 z 값을 추가할 수 있습니다.

adb shell am start -a android.intent.action.VIEW -d "geo:37.7749,-122.4194?z=15"

여기서 z=15는 줌 레벨을 15로 설정하는 옵션입니다.

3. 특정 앱에 가짜 위치(Mock Location) 허용

Android에서는 특정 앱이 가짜 위치(Mock Location)를 사용할 수 있도록 허용하는 기능이 있습니다. 이를 설정하려면 appops 명령어를 사용하면 됩니다.

adb shell appops set <package_name> android:mock_location allow

위 명령어에서 <package_name>을 가짜 위치를 허용하려는 앱의 패키지 이름으로 변경해야 합니다. 예를 들어, 패키지 이름이 com.example.testapp이라면 다음과 같이 실행하면 됩니다.

adb shell appops set com.example.testapp android:mock_location allow

이제 해당 앱은 가짜 위치 데이터를 사용할 수 있도록 설정되었습니다.

3.1 가짜 위치 허용 상태 확인

특정 앱이 가짜 위치를 사용할 수 있는 상태인지 확인하려면 다음 명령어를 실행하면 됩니다.

adb shell appops get <package_name> android:mock_location

결과 값이 allow로 표시되면 가짜 위치 사용이 허용된 상태이며, deny라면 차단된 상태입니다.

3.2 가짜 위치 사용 해제

가짜 위치 기능을 해제하려면 다음과 같이 실행하면 됩니다.

adb shell appops set <package_name> android:mock_location deny

이 명령어를 실행하면 해당 앱은 더 이상 가짜 위치 데이터를 사용할 수 없게 됩니다.

4. 실제 적용 예시

아래는 ADB를 활용하여 GPS를 활성화하고, 특정 앱에서 가짜 위치를 허용한 뒤, 특정 좌표를 지도에서 여는 과정의 예제입니다.

# GPS 활성화
adb shell settings put secure location_providers_allowed +gps

# 특정 앱에 가짜 위치 허용
adb shell appops set com.example.testapp android:mock_location allow

# Google 지도에서 특정 위치 열기
adb shell am start -a android.intent.action.VIEW -d "geo:37.7749,-122.4194"

위 명령어를 차례대로 실행하면 GPS가 활성화되고, 특정 앱이 가짜 위치를 사용할 수 있도록 설정되며, Google 지도에서 특정 좌표를 열게 됩니다.

5. 결론

ADB를 활용하면 GPS 및 위치 서비스를 조작할 수 있으며, 개발 및 테스트 환경에서 특정 위치 데이터를 쉽게 설정할 수 있습니다. 특히, 가짜 위치 허용 기능을 통해 위치 기반 앱의 동작을 테스트할 수 있어 매우 유용합니다. 위에서 설명한 ADB 명령어를 활용하면 GPS 활성화, 특정 위치 열기, 가짜 위치 허용 등의 작업을 손쉽게 수행할 수 있습니다.

이제 ADB를 활용하여 GPS 및 위치 서비스를 조작하는 방법을 잘 활용하여 개발 및 테스트 업무를 보다 효율적으로 진행해 보시기 바랍니다.

반응형