Czy można ukryć zmianę lokalizacji przed aplikacjami

„Jak sprawić, by symulacji nie dało się wykryć” — o to pytają częściej niż o cokolwiek innego. Krótka odpowiedź: ukrycie pierwszej i najbardziej oczywistej cechy jest technicznie możliwe, ale nie daje wyniku, dla którego się to robi — aplikacja dowiaduje się o symulacji na trzy kolejne niezależne sposoby, a koszt modyfikacji systemu jest nieproporcjonalny. Poniżej — jak naprawdę działa wykrywanie i dlaczego tej drogi nie opisujemy ani nie wspieramy.

Jak aplikacja dowiaduje się o symulacji

Poziomy są cztery i są od siebie niezależne.

Pierwszy — flaga przy samej współrzędnej. Android oznacza każdy punkt z testowego źródła osobnym polem, a aplikacja odczytuje je jedną linijką kodu. To otwarty, wbudowany interfejs systemu, a nie tajna kontrola.

Drugi — integralność urządzenia. Odblokowany bootloader i root są widoczne dla atestacji platformy niezależnie od tego, co dzieje się ze współrzędnymi. Aplikacja nie musi wiedzieć, czy zmieniasz lokalizację: wystarczy jej wiedza, że system zmodyfikowano, by w ogóle odmówić działania.

Trzeci — porównanie z otoczeniem. Telefon widzi wokół siebie sieci Wi-Fi i stacje bazowe, a ich zestaw nie pasuje do współrzędnej, do której się „przeniosłeś”. Zestawienie jednego z drugim to dla usługi prosta sprawa.

Czwarty — analityka po stronie serwera. Przemieszczenie o pięćset kilometrów w minutę, idealnie prosta trajektoria, dokładność, która nie zmienia się ani o metr — wszystko to widać po stronie usługi bez żadnej flagi na urządzeniu.

Cztery poziomy wykrywania symulacji: flaga przy współrzędnej, atestacja urządzenia, porównanie z sieciami i analityka po stronie serwera

Co robi droga przez root, a czego nie

Instrukcje w internecie opisują to samo: odblokować bootloader, uzyskać root, zainstalować moduł, który ingeruje w warstwę systemową i zdejmuje ze współrzędnych flagę pozorowanego źródła.

Zamyka to dokładnie pierwszy z czterech poziomów. Atestacja urządzenia z definicji nie przechodzi po odblokowaniu bootloadera — i nie przechodzi nie z powodu symulacji, tylko z powodu samej modyfikacji. Porównanie z sieciami i analityka serwerowa w ogóle nie dotyczą urządzenia: wykonuje je usługa i żaden moduł na telefonie na nie nie wpływa.

Wynik to wymiana: wyłączasz najbardziej widoczną kontrolę i jednocześnie włączasz drugą, znacznie bardziej toporną — „urządzenie zmodyfikowane”. Dla aplikacji, o które w tym wszystkim chodziło (banki, dostawy, firmowa ewidencja), wynik jest gorszy niż wcześniej: dawniej działały i po prostu ignorowały podmienione współrzędne, teraz w ogóle się nie uruchamiają.

Co przestaje działać po modyfikacji

Na większości urządzeń odblokowanie bootloadera usuwa wszystkie dane i unieważnia gwarancję — to oficjalne stanowisko producentów, a nie drobny druk.

Dalej na liście: aplikacje bankowe i płatności zbliżeniowe odmawiają działania na urządzeniu, które nie przechodzi atestacji; podobnie część usług urzędowych i firmowych; aktualizacje OTA przestają się instalować albo psują system przy instalacji; kontrole integralności przestają chronić — szkodliwa aplikacja z dostępem root dostaje te same możliwości co pożyteczna.

Osobny punkt — ryzyko unieruchomienia telefonu. Błąd flashowania na urządzeniu z zablokowaną krytyczną partycją naprawia serwis, i nie zawsze za darmo.

Co przestaje działać po odblokowaniu bootloadera i uzyskaniu root: banki, płatności, usługi urzędowe, gwarancja i aktualizacje

Dlaczego to jeszcze i niestabilne

Nawet pomijając wszystko powyższe, takie rozwiązanie żyje krótko. Flaga pozorowanego źródła zmieniała się razem z wersjami Androida: przed Androidem 12 aplikacje czytały jedno pole, od Androida 12 — inne, a stare obejścia przestały działać. Atestacja platformy jest aktualizowana po stronie usługi, a nie urządzenia — więc psuje się bez Twojego udziału i w dowolnym momencie.

W praktyce oznacza to ciągłe dłubanie: po każdej aktualizacji systemu, aplikacji czy samej atestacji trzeba sprawdzać, czy obejście nadal działa, i znowu coś przestawiać. Nie uważamy tego za dopuszczalne i nikomu tego nie polecamy — właśnie dlatego Mock Location nie ukrywa flagi i nie będzie jej ukrywać.

Jak kończy się to dla konta

Usługi sprawdzające lokalizację nie robią tego na złość: dla nich lokalizacja jest dowodem faktu. Kurier oznaczył dostawę, pracownik zameldował się na obiekcie, użytkownik potwierdził region dla planu cenowego. Fałszowanie takiego dowodu narusza zasady usługi, a często także umowę.

Skutki są przewidywalne: blokada konta bez zwrotu pieniędzy i bez rozpatrzenia, w scenariuszach służbowych — rozmowa z pracodawcą, a w niektórych przypadkach roszczenia prawne. Nasze stanowisko w sprawie legalności samej symulacji jest w osobnej odpowiedzi: masz prawo zmieniać własną lokalizację, ale wprowadzanie w błąd usługi, która na tej lokalizacji polega, to inna historia.

Co zrobić, jeśli symulacja jest potrzebna do uczciwego zadania

Dobra wiadomość: zdecydowana większość scenariuszy działa bez żadnego ukrywania, bo tamtejsze aplikacje po prostu nie czytają flagi.

Mapy i nawigacja, pogoda, wyszukiwanie w pobliżu, lokalne ogłoszenia i ceny, testowanie scenariuszy zależnych od lokalizacji — wszystko to przyjmuje podmienione współrzędne takie, jakie są. Czy potrzebna Ci aplikacja jest w tej grupie, sprawdzisz w minutę: włącz symulację i zobacz, co pokazuje (jak sprawdzić).

Jeśli aplikacja okaże się taką, która czyta flagę, jedyna działająca opcja to nie obchodzić kontroli, tylko rozwiązać zadanie inaczej. Do treści regionalnych częściej potrzebna jest sieć, a nie GPS: zmiana lokalizacji czy VPN. Do testowania własnej aplikacji — emulator i kompilacje debugowe, w których symulacja jest wbudowana i nikogo nie oszukuje (omówienie dla QA).

W skrócie

Wykrycia symulacji nie da się całkiem wykluczyć: poziomów kontroli jest cztery, a modyfikacja systemu zamyka jeden z nich, podnosząc przy tym flagę „urządzenie zmodyfikowane”, przez którą te same aplikacje odmawiają jeszcze wcześniej.

Mock Location działa ściśle w ramach wbudowanego mechanizmu Androida: czym jest ten mechanizm, dlaczego root nie jest potrzebny i dlaczego aplikacja widzi prawdziwe współrzędne — omówiono osobno. Instrukcji obchodzenia kontroli nie publikujemy — nie z ostrożności, tylko dlatego, że nie rozwiązują zadania i stwarzają użytkownikowi problemy większe niż pierwotny.

Mock Location — fikcyjna lokalizacja GPS na Androidzie bez root

Za darmo, poza Google Play. Przed instalacją możesz sprawdzić sumę kontrolną pliku.

Pobierz APK