Іншая праграма паказвае маё сапраўднае месцазнаходжанне — чаму?

Android пазначае кожную каардынату ад тэставага правайдара сцяжком «з фіктыўнай крыніцы». Праграмы маюць права праверыць яго і адмовіцца працаваць з такімі дадзенымі — Mock Location не спрабуе абысці гэтую праверку.

Android пазначае кожную каардынату, якая прыйшла ад тэставага правайдара, сцяжком «з фіктыўнай крыніцы». Сцяжок не схаваны: любая праграма можа прачытаць яго і вырашыць, што рабіць з такімі дадзенымі.

Частка сэрвісаў так і робіць — і гэта не збой, а іх свядомы выбар. Банкаўскія праграмы, сістэмы пацвярджэння дастаўкі, карпаратыўны ўлік часу, праграмы ўзнагарод за наведванне месцаў і гульні з антычытам адмаўляюцца працаваць з фіктыўнымі каардынатамі. Для іх месцазнаходжанне — не зручнасць, а доказ факту, і па сутнасці сваёй задачы яны не могуць прымаць ненадзейныя дадзеныя.

Абысці гэтую праверку без мадыфікацыі прашыўкі нельга, і Mock Location свядома гэтага не робіць. Схаваць сцяжок можна толькі модулямі ўзроўню Magisk на прыладзе з разблакаваным загрузчыкам — са страчанай гарантыяй, зламанымі праверкамі цэласнасці сістэмы і рызыкай пакінуць тэлефон непрацаздольным. Гэты шлях мы не падтрымліваем і не апісваем; чаму — і чаму ён усё роўна не вырашае задачу, — разабрана ў артыкуле ці можна схаваць падмену геалакацыі.

Але перш чым лічыць прычынай сцяжок, выключыце тры больш простыя прычыны.

Першая — кэш. Праграма магла запомніць апошнюю вядомую кропку і паказваць яе, не запытваючы новую. Закрыйце яе цалкам (менавіта закрыйце, а не згарніце) і адкрыйце зноў ужо з актыўнай падменай.

Другая — вызначэнне месца па IP. Частка сэрвісаў даведваецца пра месцазнаходжанне не ў сістэмы, а па сеткавым адрасе; на гэты канал падмена каардынат не ўплывае зусім, і тут дапамог бы VPN, а не змена каардынат. Розніца паміж двума механізмамі разабрана ў артыкуле падмена геалакацыі або VPN.

Трэцяя — праграма запытвае месцазнаходжанне адзін раз пры запуску і не рэагуе на наступныя змены. Тады рабіце ў адваротным звычайнаму парадку: спачатку ўключыце падмену, потым адкрыйце праграму.

Калі ніводная з трох не падыходзіць і праграма пры актыўнай падмене ўпарта паказвае сапраўдную кропку, яна амаль напэўна чытае сцяжок фіктыўнай крыніцы, і зрабіць з гэтым нічога нельга.

Засталіся пытанні? Напішыце ў падтрымку.