Lze změnu polohy před aplikacemi skrýt
„Jak udělat simulaci neodhalitelnou“ — na to se ptáte nejčastěji. Krátká odpověď: skrýt první a nejzjevnější znak technicky možné je, ale nepřinese to výsledek, kvůli kterému se to dělá — aplikace se o simulaci dozví třemi dalšími nezávislými způsoby a cena zásahu do systému je nepřiměřená. Níže je, jak odhalení ve skutečnosti funguje a proč tuto cestu nepopisujeme ani nepodporujeme.
Jak se aplikace o simulaci dozví
Úrovně jsou čtyři a jsou na sobě nezávislé.
První je příznak přímo u souřadnice. Android označuje každý bod z testovacího zdroje samostatným polem a aplikace ho přečte jedním řádkem kódu. Je to otevřené vestavěné rozhraní systému, ne tajná kontrola.
Druhá je integrita zařízení. Odemčený zavaděč a root vidí ověření platformy bez ohledu na to, co se děje se souřadnicemi. Aplikace nemusí vědět, zda polohu simulujete: stačí jí vědět, že systém byl upraven, a odmítnout fungovat úplně.
Třetí je srovnání s okolím. Telefon vidí kolem sebe sítě Wi-Fi a mobilní vysílače a jejich sada nesouhlasí se souřadnicí, kam jste se „přesunuli“. Porovnat jedno s druhým je pro službu snadné.
Čtvrtá je analýza na serveru. Přesun o pět set kilometrů za minutu, dokonale rovná trajektorie, přesnost, která se nikdy nezmění ani o metr — to vše je vidět na straně služby bez jediného příznaku v zařízení.

Co cesta přes root dělá a co ne
Návody na internetu popisují pořád totéž: odemknout zavaděč, získat root, nainstalovat modul, který zasáhne do systémové vrstvy a odstraní ze souřadnic příznak simulovaného zdroje.
Tím se uzavře přesně první ze čtyř úrovní. Ověření zařízení po odemčení zavaděče z definice selže — a selže ne kvůli simulaci, ale kvůli samotnému zásahu. Srovnání se sítěmi a analýza na serveru se zařízení vůbec netýkají: provádí je služba a žádný modul v telefonu na ně nemá vliv.
Výsledkem je výměna: vypnete nejviditelnější kontrolu a zároveň zapnete druhou, mnohem hrubší — „zařízení bylo upraveno“. Pro aplikace, o které šlo (banky, doručování, firemní evidence), je výsledek horší než předtím: dřív fungovaly a simulované souřadnice jen ignorovaly, teď se vůbec nespustí.
Co po zásahu přestane fungovat
U většiny zařízení odemčení zavaděče smaže všechna data a zruší záruku — je to oficiální postoj výrobců, ne drobné písmo.
Dál v seznamu: bankovní aplikace a bezkontaktní platby odmítnou fungovat na zařízení, které neprojde ověřením; stejně tak část státních a firemních služeb; aktualizace „vzduchem“ se přestanou instalovat nebo při instalaci systém rozbijí; kontroly integrity vás přestanou chránit — škodlivá aplikace s přístupem k rootu dostane stejné možnosti jako užitečná.
Zvláštní položkou je riziko, že telefon přestane fungovat. Chybu při flashování na zařízení se zamčeným kritickým oddílem opraví servis, a ne vždy zdarma.

Proč je to navíc nestabilní
I když vše výše odhlédneme, takové řešení má krátký život. Příznak simulovaného zdroje se měnil spolu s verzemi Androidu: před Androidem 12 aplikace četly jedno pole, od Androidu 12 jiné a staré obezličky přestaly fungovat. Ověření platformy se aktualizuje na straně služby, ne zařízení — takže se rozbije bez vašeho zásahu a v libovolnou chvíli.
V praxi to znamená neustálé piplání: po každé aktualizaci systému, aplikace nebo samotného ověření musíte zkontrolovat, zda obezlička ještě funguje, a znovu něco přenastavit. Nepovažujeme to za přijatelné a nikomu to nedoporučujeme — právě proto Mock Location příznak neskrývá a skrývat nebude.
Jak to skončí pro účet
Služby, které kontrolují polohu, to nedělají ze zlomyslnosti: poloha je pro ně důkazem skutečnosti. Kurýr označil doručení, zaměstnanec se zapsal na pracovišti, uživatel potvrdil region pro cenový tarif. Falšování takového důkazu porušuje pravidla služby a často i smlouvu.
Důsledky jsou předvídatelné: zablokování účtu bez vrácení peněz a bez přezkoumání, u pracovních scénářů — rozhovor se zaměstnavatelem, v některých případech i právní nároky. Náš postoj k legálnosti simulace jako takové je v samostatné odpovědi: svou vlastní polohu měnit smíte, ale uvádět v omyl službu, která na tuto polohu spoléhá, je jiná věc.
Co dělat, když simulaci potřebujete k legitimnímu úkolu
Dobrá zpráva: naprostá většina scénářů funguje bez jakéhokoli skrývání, protože aplikace tam příznak prostě nečtou.
Mapy a navigace, počasí, hledání v okolí, místní nabídky a ceny, testování scénářů závislých na poloze — to vše přijímá simulované souřadnice tak, jak jsou. Zda potřebná aplikace patří do této skupiny, ověříte za minutu: zapněte simulaci a podívejte se, co ukáže (jak ověřit).
Pokud se ukáže, že aplikace příznak čte, jedinou fungující možností není kontrolu obcházet, ale vyřešit úkol jinak. Regionální obsah častěji potřebuje síť, ne GPS: změna polohy nebo VPN. K testování vlastní aplikace — emulátor a ladicí sestavení, kde je simulace vestavěná a nikoho neklame (postup pro QA).
Stručně
Odhalení simulace nelze úplně vyloučit: úrovně kontroly jsou čtyři a zásah do systému jednu z nich uzavře a zároveň vztyčí příznak „zařízení upraveno“, kvůli kterému tytéž aplikace odmítnou ještě dřív.
Mock Location pracuje striktně v rámci vestavěného mechanismu Androidu: co je tento mechanismus, proč root není potřeba a proč aplikace vidí skutečné souřadnice popisujeme zvlášť. Návody k obcházení kontrol nezveřejňujeme — ne z opatrnosti, ale proto, že úkol neřeší a uživateli způsobí větší problémy než ten původní.