앱에서 위치 변경을 숨길 수 있을까
‘위치 변경을 들키지 않게 하려면?’은 가장 많이 받는 질문입니다. 짧게 답하면, 첫 번째이자 가장 눈에 띄는 단서를 숨기는 것은 기술적으로 가능하지만 원하는 결과는 얻지 못합니다. 앱은 서로 독립적인 세 가지 방법으로 위치 변경을 더 알아낼 수 있고, 시스템을 수정하는 대가는 터무니없이 큽니다. 아래에서 탐지가 실제로 어떻게 이루어지는지, 그리고 저희가 이 방법을 설명하지도 지원하지도 않는 이유를 설명합니다.
앱은 위치 변경을 어떻게 알아내나
네 가지 단계가 있으며 서로 독립적입니다.
첫째는 좌표 자체의 표시입니다. Android는 테스트 출처에서 온 모든 지점에 별도의 필드로 표시를 붙이며, 앱은 코드 한 줄로 이를 읽습니다. 이것은 숨겨진 검사가 아니라 공개된 시스템 기본 인터페이스입니다.
둘째는 기기 무결성입니다. 잠금 해제된 부트로더와 루팅은 좌표와 관계없이 플랫폼 인증에 드러납니다. 앱은 위치를 바꾸는지 알 필요도 없습니다. 시스템이 수정되었다는 것만 알면 아예 작동을 거부하면 됩니다.
셋째는 주변 환경과의 대조입니다. 휴대전화는 주변의 Wi-Fi 네트워크와 기지국을 보는데, 그 구성이 ‘옮겨 간’ 좌표와 맞지 않습니다. 서비스가 둘을 대조하는 것은 쉽습니다.
넷째는 서버 분석입니다. 1분 만에 500킬로미터 이동, 완벽한 직선 경로, 1미터도 변하지 않는 정확도 — 이 모든 것이 기기의 표시 하나 없이 서비스 쪽에서 보입니다.

루팅으로 되는 것과 안 되는 것
인터넷의 안내들은 모두 같은 방법을 설명합니다. 부트로더를 잠금 해제하고, 루팅하고, 시스템 계층에 끼어들어 좌표에서 모의 출처 표시를 없애는 모듈을 설치하는 것입니다.
이것으로 막히는 것은 네 단계 중 정확히 첫 번째뿐입니다. 기기 인증은 부트로더를 잠금 해제하면 정의상 실패하며, 이는 위치 변경 때문이 아니라 수정 자체 때문입니다. 네트워크 대조와 서버 분석은 기기와 아예 관계가 없습니다. 서비스가 수행하며, 휴대전화의 어떤 모듈도 영향을 줄 수 없습니다.
결과는 맞바꾸기입니다. 가장 눈에 띄는 검사를 끄는 대신 훨씬 더 노골적인 두 번째 검사, 즉 ‘기기가 수정됨’을 켜게 됩니다. 이 모든 것의 목적이었던 앱들(은행, 배달, 회사 근태 관리)에게 결과는 이전보다 나쁩니다. 전에는 작동하면서 바뀐 좌표만 무시했지만, 이제는 아예 실행되지 않습니다.
수정 후 작동하지 않게 되는 것
대부분의 기기에서 부트로더를 잠금 해제하면 모든 데이터가 지워지고 보증이 무효가 됩니다. 작은 글씨의 조항이 아니라 제조사의 공식 입장입니다.
목록은 이어집니다. 은행 앱과 비접촉 결제는 인증에 실패한 기기에서 작동을 거부하고, 일부 공공 및 회사 서비스도 마찬가지입니다. 무선(OTA) 업데이트가 설치되지 않거나 설치하면 시스템이 망가집니다. 무결성 검사가 더 이상 보호해 주지 않아, 루트 권한을 얻은 악성 앱이 유용한 앱과 같은 능력을 갖게 됩니다.
휴대전화를 못 쓰게 될 위험도 따로 있습니다. 중요 파티션이 잠긴 기기에서 플래싱 오류가 나면 서비스 센터에서 고쳐야 하며, 늘 무료는 아닙니다.

게다가 불안정한 이유
위의 모든 것을 제쳐 두더라도 이런 해결책은 수명이 짧습니다. 모의 출처 표시는 Android 버전과 함께 바뀌어 왔습니다. Android 12 이전에는 앱이 한 필드를, Android 12부터는 다른 필드를 읽었고, 예전 우회 방법은 작동하지 않게 되었습니다. 플랫폼 인증은 기기가 아니라 서비스 쪽에서 갱신되므로, 사용자와 상관없이 아무 때나 깨집니다.
실제로는 끊임없이 손봐야 한다는 뜻입니다. 시스템, 앱, 인증 자체가 업데이트될 때마다 우회 방법이 아직 작동하는지 확인하고 또 무언가를 다시 설정해야 합니다. 저희는 이를 받아들일 수 없다고 보며 누구에게도 권하지 않습니다. 그래서 Mock Location은 표시를 숨기지 않으며, 앞으로도 숨기지 않을 것입니다.
계정은 어떻게 되나
위치를 확인하는 서비스가 심술로 그러는 것은 아닙니다. 그들에게 위치는 어떤 사실의 증거입니다. 배달원이 배달 완료를 표시했고, 직원이 현장 출근을 체크했고, 사용자가 요금제를 위해 지역을 확인했다는 것입니다. 이런 증거를 위조하는 것은 서비스 규칙을 어기는 것이며, 종종 계약 위반이기도 합니다.
결과는 예측할 수 있습니다. 환불도 검토도 없는 계정 정지, 업무 상황이라면 고용주와의 면담, 경우에 따라서는 법적 청구까지 갑니다. 위치 변경 자체의 합법성에 대한 저희 입장은 별도 답변에 있습니다. 자기 위치를 바꿀 권리는 있지만, 그 위치를 근거로 삼는 서비스를 속이는 것은 다른 문제입니다.
정당한 목적으로 위치 변경이 필요할 때
좋은 소식은 대부분의 경우 숨길 필요 없이 작동한다는 것입니다. 그런 앱들은 표시를 아예 읽지 않기 때문입니다.
지도와 내비게이션, 날씨, 주변 검색, 지역 정보와 가격, 위치 기반 시나리오 테스트 — 모두 바뀐 좌표를 그대로 받아들입니다. 필요한 앱이 이 그룹에 속하는지는 1분이면 확인할 수 있습니다. 위치 변경을 켜고 무엇이 표시되는지 보세요(확인 방법).
앱이 표시를 읽는 쪽이라면, 유일하게 통하는 방법은 검사를 우회하는 것이 아니라 다른 방법으로 목적을 이루는 것입니다. 지역 콘텐츠에는 GPS보다 네트워크가 필요한 경우가 많습니다: 위치 변경과 VPN. 자기 앱을 테스트하려면 위치 변경이 내장되어 있어 아무도 속이지 않는 에뮬레이터와 디버그 빌드를 쓰세요(QA를 위한 안내).
요약
위치 변경 탐지를 완전히 막을 수는 없습니다. 검사는 네 단계이며, 시스템을 수정하면 그중 하나를 막는 대신 ‘기기가 수정됨’ 표시가 켜져 같은 앱들이 더 일찍 거부합니다.
Mock Location은 철저히 Android 기본 기능 안에서 작동합니다. 이 기능이 무엇인지, 왜 루팅이 필요 없는지, 앱이 실제 좌표를 보는 이유는 따로 다룹니다. 저희는 검사를 우회하는 방법을 게시하지 않습니다. 조심스러워서가 아니라, 그런 방법은 목적을 이루지 못하고 원래 문제보다 더 큰 문제를 사용자에게 안기기 때문입니다.