ドコモスマホでGPSの測位ができない問題の解決方法

スポンサーリンク
スポンサーリンク
スマートフォン

MVNO(格安SIM)でドコモスマートフォンを使用していると、GPSの測位が極端に遅くなりマップ系アプリなどで現在地の特定ができない問題があります。解決方法はありますが問題は根深く注意が必要です。

この記事は一部イレギュラーな内容を含んでいます。したがって、すべて自己責任にて行い何がおきても一切の責任は負いません。

測位ができない原因

ドコモスマートフォンであるXperiaなどのAndroidスマートフォンでは、GPSの測位をサポートするA-GPSがSPモードでしか動作しないことが直接的な原因です。そのため、簡単に言えばSPモード以外でもA-GPSが動作するように修正すればGPSの測位ができるようになります。

MVNOの場合、必須条件として “音声対応SIM” または “SMS対応SIM” である必要があります。参考 スマホにおける『位置情報サービス』のまとめ

方法の考察

修正方法

A-GPSには “gpsOneXTRA” と“supl” の2種類の方法があります。

修正するためには、gpsOneXTRAの場合ではドライバの更新が必要となってしまうため難しい作業になりますが、suplの場合では設定ファイルの設定値を書き換えるだけなのでハードルは決して高くありません。

機種によって異なりますが、Android4.2以前はドライバの更新が必要と言われているので “gpsOneXTRA” が使用されていると思われ、Android4.4以上であれば “supl” が使われているものと思われます。

その為、Android4.4以上を搭載したスマートフォンであれば、設定ファイルを書き換えるだけでGPSの測位スピードを改善させることができます。

設定値

ドコモから販売されているXperiaとSIMフリーとして海外で販売されているXperiaでは “supl” に指定されている『設定値(取得元のサーバー)』に違いがあります。

ドコモスマートフォンでは『dcm-supl.com』と言うサーバーが設定値として設定されており、これがSPモード経由でしか接続できません。

海外で販売されているグローバル版SIMフリーでは『supl.sonyericsson.com』と言うサーバーが設定値として設定されており、これは特に制限がかけられていないのでMVNO(格安SIM)からでも接続することができます。そのため、SIMフリーグローバル版のXperiaを日本国内で使用する場合はA-GPSの問題は発生しません。

ドコモスマートフォンにグローバルモデル(海外版SIMフリー)のFTFを焼くとA-GPSが使えるようになるのはこのためです。

また、Googleが用意しているサーバ『supl.google.com』も存在しますが、試してみたところ上手く動作しなかった経験があるので、Xperiaの場合にはグローバルモデル(海外版SIMフリー)と同じサーバーを使うのがベストでしょう。

解決の手順

A-GPSを有効にするにはroot化してsystem配下に保存されている設定ファイル『/system/etc/gps.conf』を修正(書き換える)する必要があります。

Xperia Z3 Compact SO-02Gのビルド番号は23.1.B.1.317を用いて検証しました。他のXperiaシリーズで同様の結果になるとは限りませんので注意してください。また、どんな結果になろうとも自己責任です。こちらは一切の責任を負いません。

必要なファイル

  • 書き換え対象の本体環境に似たSIMフリー版のFTFファイル(今回はD5833_23.2.A.1.62 R8C_CUSTOMIZED HK.ftfを使用)

  • twrp-gps-conf-updater-skeleton.zip※カスタムリカバリ(CWMやTWRPなど)から更新するためのzipファイルで中身の入っていないスケルトンです。

作業

基本的には海外版(グローバル版)のXperiaからgps.confを取り出して上書きすれば良いだけですが、せっかく上書きするので日本向けにカスタマイズしたほうがより効果的です。

今回はカスタムリカバリ(CWMやTWRPなど)から更新する方法を用いていますが、これは好みの問題でありadbやroot操作可能なファイラーアプリを使用して直接操作しても問題はありません。
  1. 海外版(グローバル版)のFTFファイルから設定ファイル『/system/etc/gps.conf』を取り出します。

    https://xinroom.net/mobile/7-zip-ftf-ext4/

  2. “NTP_SERVER” を信頼できる日本のサーバに変更します。【任意】
    #NTP_SERVER=time.gpsonextra.net
    NTP_SERVER=ntp.nict.jp
    NTP_SERVER=ntp-a1.nict.go.jp
    NTP_SERVER=ntp-b1.nict.go.jp
    
    “#” とは、「この行は無視する」と言う意味です。
  3. zipファイルを解凍し『system/etc』ディレクトリに『gps.conf』を配置して再圧縮します。

    圧縮する対象は「wrp-gps-conf-updater-skeleton」フォルダの中にあるファイル・フォルダ(META-INF、system)を全選択して圧縮してください。

  4. 圧縮したzipファイルをスマートフォンの内部ストレージに保存し、カスタムリカバリ(CWMやTWRPなど)からインストール(更新)します。

ドコモスマホでGPSの測位ができない問題の解決は以上です。

gps.confの書き換えは効果抜群で、A-GPSが動作しているかの確認手段を調べるつもりでしたが、測位スピードが格段に違うので確認するまでもありませんでした。root化さえできればA-GPSについては一応の決着がついたのではないかと思います。

しかし、「root化できない」場合や「よくわからない!」と言う場合にはroot化不要なA-GPS対策も検証してみましたので参考にしてください。また、極端な対処法として海外で販売されているグローバルモデルでは問題が発生しないので、SIMフリーなグロバールモデルを使うという手もあります。

参考 ドコモスマホのA-GPSをroot化不要で機能させることはできないのかを考察
参考 Xperiaは海外で販売されるSIMフリーなグローバルモデルを使おう