デジタルローミング

GPSスプーフィングの仕組みとアプリが検知する理由

位置情報、ソフトウェアによる偽装GPS、モック位置情報フラグの実際の動作と、本物のRF信号がモックマーカーを残さない本物の測位を生成する理由。

更新日 2026-07-10
位置情報への2つの経路:ソフトウェア注入はモック位置情報フラグを刻印しブロックされる。RF信号は計算され本物の測位となる

「GPSスプーフィング」という言葉は、まったく異なる二つの行為に使われている。その違いこそが、ある方法ではバレて、別の方法ではバレない理由のすべてだ。一方はソフトウェアで偽の座標を注入するもの。もう一方は本物の信号を放送するもの。それぞれの仕組みと、アプリが実際にチェックしている内容を解説しよう。

スマートフォンが位置を知る仕組み

GNSS受信機(GPSと、その兄弟であるGalileo、GLONASS、BeiDou)は、上空の衛星から届く微弱な電波を待ち受ける。各衛星はメッセージを送信した時刻を放送しており、受信機はそれぞれの信号が届くまでにかかった時間を測定し、それを距離に変換し、すべての距離と矛盾しない地球上の一点を解く。その解かれた点がフィックスだ。スマートフォン上の位置情報を利用するすべての機能(地図、ジオフェンス、「近くの〇〇」、ゲーム)は、このフィックスを基盤としている。

ソフトウェアによる偽GPS:座標の注入

偽GPSアプリは電波には一切触れない。OSの開発者用フックを利用して、システムに座標を渡し、「代わりにこれを報告しろ」と指示する。手軽で無料だが、痕跡を残す。Androidでは、この方法で生成された位置情報には必ず**isFromMockProvider**フラグが付き、有効化には開発者向けオプションと「疑似的な位置情報」設定が必要だ。iOSでは、Appleがこうしたアプリを完全に禁止しているため、ソフトウェアによる方法には、コンピュータ、脱獄(Jailbreak)、または有効期限の短い証明書で署名されたサイドロードアプリが必要になる。

アプリが検知する理由

検知のコストが低いのは、ソフトウェアによる方法が痕跡を残しやすいからだ。

  • Mockフラグ。 isFromMockProviderを読み取るのは一行のコードで済み、フラグ付きのフィックスは破棄される。これだけで、カジュアルなスプーファーの大多数は捕捉される。
  • 完全性認証。 Play Integrity(Android)や脱獄/開発者モードチェック(iOS)は、ソフトウェアによる方法に必要な改変された環境を検知する。
  • クロスチェック。 堅牢なアプリは、GPSフィックスをネットワークIP、スマートフォンが観測しているWi-Fiや携帯電話基地局、モーションセンサーと比較し、それらすべてと矛盾するGPS位置や、人間が移動できる速度を超えてジャンプする位置を検知できる。

RFシミュレーション:本物の信号、本物のフィックス

AnyLocateは、より一層低いレイヤーで動作する。座標を注入する代わりに、本物の衛星信号を放送し、デバイス自身の受信機に直接届ける。受信機はその信号にロックオンし、通常の方法でフィックスを計算する。疑似位置情報レイヤーにおいて、この結果は実際の位置と区別がつかない。注入された座標は存在しないため、isFromMockProviderフラグも、疑似位置情報設定も、root化も脱獄も、一般的な検知ツールが探すように作られているものは一切存在しない。位置情報は実際の道路上に着地し、受信機自身が生成したものであるため、スムーズに更新される。

VPN ≠ GPS

よくある行き止まり:VPNが変更するのはIPアドレスであり、GPSフィックスではない。Snap Map、Pokémon GO、そしてほとんどの地図機能はIPを無視し、衛星による位置を読み取る。そのため、VPNは地図上で何も動かさない。地図上の位置を動かすには、フィックスを動かす必要があり、それはGPSレイヤーの問題であって、ネットワークの問題ではない。

限界点

境界について正直であることが重要だ。衛星信号を制御することで、GPSフィックスから派生するすべてが設定される。しかし、ネットワークIP、アカウントや課金リージョン、スマートフォンが感知するWi-Fiやセル環境、モーションセンサーは変更されない。したがって、それらに基づいて制限されているもの(ログインに紐付いたリージョンロック、IPチェック、融合Wi-Fi位置情報、歩数計クロスチェック)は別の問題となる。AnyLocateが制御するのは衛星レイヤーであり、それをクリーンかつ完全に制御する。他のレイヤーについては主張しない。

よくある質問

モック位置情報フラグ(isFromMockProvider)とは?
アプリがAndroidの開発者向け「モック位置情報」経路で位置情報を設定すると、OSは生成されるすべての測位にisFromMockProviderフラグを付与します。どのアプリも1行のコードでこのフラグを読み取り、その位置情報を信頼しないことが可能です。これが偽装GPSが捕捉される最も安価で一般的な方法です。
VPNでSnapchatやPokémon GOなどのアプリの位置情報が変わらないのはなぜ?
VPNはIPアドレスのみを変更します。地図、ゲーム、「近くの」機能はIPではなくGPSチップを読み取るため、スマートフォンはVPNの下でも実際の衛星位置を報告し続け、アプリはネットワークではなくGPSに従います。地図上の位置を変えるには、GPS測位そのものを変更する必要があります。
AnyLocateが本物の信号を送信する場合、測位は検知不可能ですか?
モック位置情報レイヤーでは、はい。ソフトウェアで注入されたものはないため、isFromMockProviderフラグは存在しません。スマートフォン自身の受信機が測位を計算したからです。しかし「モックフラグがない」ことは「手がかりがない」ことではありません。スマートフォンはWi-Fiやセル情報も融合し、強化されたアプリはGPSをそれらやIP、モーションセンサーと照合できます。AnyLocateは衛星レイヤーをクリーンに制御しますが、それ以外のレイヤーは別です。

関連ユースケース

地球上のどこにでもスマホを置ける:あらゆる位置情報アプリをテスト
Pokémon GOの位置偽装をモック位置情報フラグなしで実現
位置情報プライバシー:選んだ場所だけを表示
ご自身の信号でお試しください
このシナリオも、あなたのシナリオも、手頃な価格のソフトウェア定義GNSSシミュレータで実行できます。
価格を見る →