루팅 없이 Android에서 가짜 GPS 위치 변경
루팅 없이는 위치를 바꿀 수 없다는 생각이 아직 남아 있습니다. 이미 지난 이야기입니다. 모의 위치 기능은 Android에 내장되어 있으며, 사용자가 개발자 옵션에서 선택한 앱이라면 누구나 쓸 수 있습니다. 이 방법으로 무엇을 할 수 있고 무엇을 할 수 없는지, 그리고 다른 방법인 펌웨어 수정이 왜 생각보다 비싼지 살펴보겠습니다.
정말 루팅이 필요 없는지 확인하기
시스템을 통해 일반적인 방법으로 위치를 받는 앱에 좌표를 제공하는 것이 목적이라면 기본 기능으로 충분합니다. 지도, 날씨, 주변 검색, 개발 중인 자기 앱과 테스트가 여기에 해당합니다. 대부분의 사용 사례가 그렇습니다.

개발자 모드 켜기
설정 → ‘휴대전화 정보’ → ‘빌드 번호’를 일곱 번 탭하세요. 설정에 ‘개발자 옵션’ 메뉴가 나타나며, 스킨에 따라 최상위나 ‘시스템’ 또는 ‘추가 설정’ 안에 있습니다.

모의 위치 앱 선택하기
개발자 옵션에서 ‘모의 위치 앱 선택’ 항목을 찾아 설치한 앱을 선택하세요. 한 번에 하나만 활성화할 수 있습니다. 시스템은 여러 앱이 동시에 좌표를 제공하도록 허용하지 않습니다.

위치 변경을 시작하고 확인하기
지도에서 지점을 고르고 위치 변경을 켠 다음 다른 지도 앱을 여세요. 선택한 지점이 표시되면 기능이 시스템 수준에서 작동하는 것이며, 추가 권한은 필요하지 않았던 것입니다.

실제로 어떻게 작동하나
Android는 선택된 앱이 이른바 테스트 위치 제공자를 등록하고 좌표를 기록하도록 허용합니다. 그러면 시스템은 이 좌표를 일반적인 방법으로 위치를 요청하는 모든 앱에 넘겨 줍니다. 모바일 앱의 자동화 테스트도 같은 기능을 씁니다. 애초에 무언가를 우회하려고가 아니라 개발을 위해 만들어진 기능입니다.
그래서 위치 변경에는 슈퍼유저 권한이 필요 없습니다. 앱은 다른 프로세스에 끼어들거나 시스템 라이브러리를 고치지 않고, 사용자가 일부러 켠 공식 기능을 사용합니다.
루팅으로 얻는 것과 그 대가
펌웨어를 수정해서 근본적으로 더 얻는 것은 위치 변경 사실을 숨기는 능력뿐입니다. ‘모의 출처’ 표시를 없애고 이를 확인하는 앱을 속이는 것입니다. 이를 위해서는 부트로더 잠금 해제와 Magisk 같은 모듈이 필요합니다.
대가: 보증을 잃고, 일부 은행 앱과 서비스는 시스템 무결성 검사 때문에 실행되지 않으며, 펌웨어 업데이트가 정상적으로 설치되지 않고, 플래싱에 실패하면 휴대전화를 쓸 수 없게 될 수 있습니다. 저희는 이 방법을 지원하지도 설명하지도 않습니다. Mock Location은 철저히 기본 기능 안에서 작동합니다.
한계는 어디까지인가
루팅 없이는 위치 변경 사실이 그것을 확인하려는 앱에 그대로 보입니다. 위치가 어떤 사실의 증거가 되는 서비스(배달 완료 확인, 근태 관리, 위치 기반 보상)는 보통 이 확인을 하며 바뀐 좌표로는 작동하지 않습니다. 안티치트가 있는 게임도 마찬가지입니다.
이는 특정 앱의 결함이 아니라 의도적인 설계상의 선택입니다. 앱은 시스템이 허용하는 일을 하고, 그 이상을 하는 척하지 않습니다.
위치 변경과 VPN의 차이
둘은 자주 혼동됩니다. VPN은 네트워크 트래픽이 어디서 오는지를 바꿉니다. 서비스는 IP 주소를 보고 사용자가 다른 나라에 있다고 생각합니다. 위치 변경은 운영체제가 앱에 주는 좌표를 바꿉니다.
이 둘은 서로 다른 경로이며 서로를 대신하지 않습니다. IP로 위치를 판단하는 앱은 바뀐 좌표를 알아채지 못하고, 시스템에 좌표를 묻는 앱은 VPN을 알아채지 못합니다. 둘 다 필요할 때도 있습니다.