Home > 備忘録 > Xperia Z1fのAGPS(gpsOneXTRA)を有効にする方法

Xperia Z1fのAGPS(gpsOneXTRA)を有効にする方法

 Xperia Z1fのGPSの使い勝手向上のために、いろいろやってみた備忘録。なお、下記の行為は文鎮化等の危険もあるため、自己責任でお願いします。
 
1.イントロダクション
 androidのGPSの機能には、単独で動作するStand Alone GPSと、ネットワークの支援を受けて動作するAGPSがあります。Stand Alone GPSは、端末で受信するGPS信号のみで位置を測定する方式で、衛星から直接軌道情報を受信する必要がります。衛星からの軌道情報のデータ送信速度は50kbpsと遅く、発信間隔も30秒であるため、コールドスタートからの測位には通信状態が良くても30秒以上(一般に数分)の時間がかかります。AGPSは、この軌道情報を通信速度の速いネットワーク経由で取得し、GPS衛星からは時間信号のみを受信することにより、高速で測位をする仕組みです。

 AGPSには、gpsOneXTRAとsuplの2系統があります。このうちgpsOneXTRAは、ネットワークから全てのGPS衛星の軌道情報を数日分を丸ごとダウンロードしてきて、これを処理して測位する方式で、どのようなネットワーク経由でも利用可能ですが、計算負荷がかかります。一方、suplは、携帯電話が接続している基地局からおおまかな位置情報を特定した上で、必要な軌道情報のみを受信して処理する方式で、携帯電話回線経由である必要がありますが、計算負荷は少なくて済みます
 
 さて、Xperia Z1f SO-02FのAGPSですが、デフォルトだとgpsOneXTRAは無効となっており、suplのみが有効です。ただし、suplはdocomo回線時のみ利用可能なため、MVNO回線でGPSを利用する場合には、Stand Alone GPSとなってしまい、GPSの掴みが非常に悪くなります。
 
2.MVNOでAGPSを利用するための一般的な方法(要ルート)
 /system/etc/gps.confを書き換えます。こんな感じにしました。
NTP_SERVER=ntp.nict.jp
NTP_SERVER=jp.pool.ntp.org
NTP_SERVER=0.jp.pool.ntp.org
NTP_SERVER=1.jp.pool.ntp.org
NTP_SERVER=2.jp.pool.ntp.org
NTP_SERVER=3.jp.pool.ntp.org
AGPS=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
DEFAULT_AGPS_ENABLE=TRUE
DEFAULT_USER_PLANE=TRUE
DEFAULT_SSL_ENABLE=FALSE
REPORT_POSITION_USE_SUPL_REFLOC=1
QOS_ACCURACY=50
QOS_TIME_OUT_STANDALONE=60
QOS_TIME_OUT_agps=89
QosHorizontalThreshold=1000
QosVerticalThreshold=500
AssistMethodType=1
AgpsUse=1
AgpsMtConf=0
AgpsMtResponseType=1
AgpsServerType=1
AgpsServerIp=3232235555
INTERMEDIATE_POS=1
C2K_HOST=c2k.pde.com
C2K_PORT=1234
SUPL_HOST=FQDN
SUPL_HOST=supl.google.com
SUPL_PORT=7276
SUPL_SECURE_PORT=7278
SUPL_NO_SECURE_PORT=3425
SUPL_TLS_HOST=FQDN
SUPL_TLS_CERT=/etc/SuplRootCert
ACCURACY_THRES=5000
CURRENT_CARRIER=common
QUIPC_ENABLED=1
ENABLE_WIPER=1

 
 しかし、これだけではXperia Z1fのAGPSは動きません。gps.confの設定はとりあえずこれでいいのですが、次にGPSドライバを更新する必要があります。
 
3.gpsOneXTRAが動くように、GPSドライバを入れ換える方法
 Xperia Z1fのGPSドライバは、/system/lib/hw/gps.default.soです。docomo仕様では、このドライバのgpsOneXTRA機能が無効になっているので、有効なドライバを探してきて入れ換える必要があります。私は、Android 4.2.2、Build 14.1.H.2.119 (docomo仕様)を使っているので、これに近いドライバを探しました。海外版の同一機種であるXperia Z1 CompactではAndroid 4.2.2のものがないので、海外版のXperia Z1 Build 14.1.G.2.257 (Global仕様) からドライバを拾うことにしました。
 ネット上からftfをダウンロードしてきて、このあたりを参考にして、gps.default.soを取り出して、/system/lib/hw/gps.default.soに上書きして再起動すれば、入れ換え完了です。なお、ドライバが適合していないと再起動ループ等に陥いるそうなので、バックアップ等をしっかりして自己責任でお願いします。
 
 これで、gpsOneXTRAが動くようになりました。測位が圧倒的に早いです。やったね!
 
4.suplはどうやっても動かなかった
 ここまできたら、せっかくだからsuplも動かしたいじゃないですか。というか、普通の端末ならこの段階でsuplが動くんじゃないかなー、と思う訳ですよね。でも、Xperia Z1fだと動かないこのへんを参考にsupl.google.com用のSSLルート証明書を用意してやったりもしたのですが、無駄でした。なんでかなー。もしかして、SMS対応simなら動くとか? Xperia Z1fのGPSのsuplをMVNOで動かせた人がいたら教えて下さい
 
5.実験記録
● 前提条件
 ・ 機種は、Xperia Z1f SO-02F (docomo)、root化済み
 ・ ROMはAndroid 4.2.2、Buildは14.1.H.2.119 (docomo仕様)
 ・ ネットワークはNVNO IIJmio (SMSなし)を利用
 ・ /system/etc/gps.confは置き換え済み
 ・ ドライバを入れ換えた場合には再起動
 
● 検証ケース
 GPSドライバ(/system/lib/hw/gps.default.so)について検証。
 ・ ケース1:Xperia Z1f 14.1.H.2.119 (docomo仕様) のドライバを利用
 ・ ケース2:Xperia Z1 14.1.G.2.257 (Global仕様) のドライバを利用
 
● 実験内容
 実験条件は以下の3パターン
 
(1) Stand Alone GPSの挙動の確認
 (a) 準備
  ・ GPS有効、ネットワーク無効の状態でGPS Statusを起動
  ・ 通知領域からGPSを無効にする
  ・ GPS StatusにてChash GPS DataをReset
  ・ GPS Statusを終了
 (b) 挙動の確認
  ・ GPS有効、ネットワーク無効の状態でGPS Statusを再起動
  ・ GPSが衛星を掴んでゆく挙動を確認
 
(2) ネットワーク有効時の挙動の確認
 (a) 準備
  ・ (1)と同じ
 (b) 挙動の確認
  ・ GPS有効、ネットワーク有効の状態でGPS Statusを再起動
  ・ GPSが衛星を掴んでゆく挙動を確認
 
(3) AGPSデータダウンロード済みのときの挙動の確認
 (a) 準備
  ・ GPS有効、ネットワーク無効の状態でGPS Statusを起動
  ・ 通知領域からGPSを無効にする
  ・ GPS StatusにてChash GPS DataをReset
  ・ GPS StatusにてAGPSデータのダウンロード
  ・ GPS Statusを終了
 (b) 挙動の確認
  ・ GPS有効、ネットワーク無効の状態でGPS Statusを再起動
  ・ GPSが衛星を掴んでゆく挙動を確認
 
● 実験結果
 ケース1(1)およびケース2(1)では、衛星数が0/0から徐々に増加し、衛星を1つづつ掴んでゆく挙動となりました。これは、Stand Alone GPSにおける通常の振舞いと考えられます。
 
 ケース1(2)および(3)では、AGPSによる高速化が期待されましたが、(1)と同様の結果となりました。
 
 ケース2(2)および(3)では、GPS Statusの起動直後に衛星数が0/0から0/16にジャンプし、その後に利用衛星数が増加してゆく挙動となりました。これは、AGPSが効いている場合の挙動だと考えられます。
 
 各ケースについて通信を監視して、XTRAサーバへのアクセスは確認しましたが、suplサーバーへのアクセスはありませんでした。また、gps.confをいじってXTRAなしの条件でも実験してみましたが、suplは起動しませんでした。
 
 Xperia Z1fはそれなりの演算能力があるので、gpsOneXTRAだけでも十分早いです。でも、機能的には問題ないとはいえ、suplが使えないというのは何となく釈然としないものがありますよねえ。

Comments:5

ヨウメイ 14-10-17 (金) 19:48

SMS対応SIMじゃないと、suplは機能しないんだね・・・と自己レス。

ななし 14-10-26 (日) 23:58

Xperia Zで、このグローバル版のgps.default.soを入れてみようと
思うのですが、この方法はDeodexとかも必要でしたか?
(というか、deodex済みでのみ試していたりしますか?)

ヨウメイ 14-10-28 (火) 19:52

> ななし さん
Deodex してなくても大丈夫です

rui 14-12-12 (金) 13:15

14.1.H.2.119 (docomo仕様)に14.1.G.2.257 (Global仕様) のドライバを入れるとGPSが機能しなくなりました。
再起動ループには陥らずGPSの機能のみが殺されている状態になります。
14.1.H.1.281(docomo仕様)に14.1.G.2.257 (Global仕様) のドライバを入れた場合は問題なく機能しております

ferrum cvv shop 18-11-12 (月) 16:51

This is my first time go to see at here and i am really pleassant to read
all at single place.

Comment Form
Remember personal info

Trackbacks:2

Trackback URL for this entry
http://yonyon-blog.net/youmei/2014/07/17/xperia-z1f%e3%81%aeagpsgpsonextra%e3%82%92%e6%9c%89%e5%8a%b9%e3%81%ab%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/trackback/
Listed below are links to weblogs that reference
Xperia Z1fのAGPS(gpsOneXTRA)を有効にする方法 from サイト管理者のよんよん日記
pingback from 【SO-02F】mvno利用時のA-GPS設定について【Xperia z1f】 | ホテル社内SE【中途採用】のたたかい 14-10-08 (水) 6:47

[…] 私が参考にしたサイトでも説明がありました。 […]

trackback from Cyber Monday 18-11-12 (月) 19:40

Cyber Monday

Xperia Z1fのAGPS(gpsOneXTRA)を有効にする方法 – サイト管理者のよんよん日記

Home > 備忘録 > Xperia Z1fのAGPS(gpsOneXTRA)を有効にする方法

Search
Feeds
Meta

Return to page top

QR Code Business Card