原创 安卓手机AGPS卫星定位困难的深入分析-洗洗睡吧(附软件APP)

2015-12-2 15:17 7088 27 34 分类: 软件与OS 文集: 学以致用

安卓手机AGPS卫星定位困难的深入分析-洗洗睡吧(附软件APP)

wxleasyland@sina.com

2015.12

 

一、APGS的强大

最近做了一个测试安卓手机GPS的APP,结果有了意外发现。

三星新出的手机SM-J5008,刚打开GPS时(没定位成功),无论在室内还是室外,就马上能检测到20多颗星!

1.gif

其中有很多颗卫星,手机中已经有它的历书和星历了!!!

 

 

而以前的所有手机,包括谷歌I9250、三星I9300、国产手机等,刚打开GPS时,均是0颗星:

2.gif

没有任何卫星的星历,即使过了好几分钟,也是没有!

 

所以J5008的卫星定位速度非常快,实测在信号很差的地方打开GPS:

J5008:在1分钟内就能定位成功;

其它手机:半小时了,还是定位不上;

蓝牙GPS外置装置:约10分钟,定位成功;

 

这就是AGPS的强大吧!

但是,其实所有的手机都是支持AGPS的!那问题出在哪里呢?

 

二、修改gps.conf文件,SUPL位置服务器

把I9250和国产手机拿来做实验,按网上说的,修改etc/gps.conf文件。

原来文件中的内容是这样的:

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

SUPL_HOST=supl.google.com

SUPL_PORT=7276

 

加上一行NTP_SERVER=cn.pool.ntp.org

修改SUPL_HOST=suplcn.sirf.com

 

修改完gps.conf后,需要重启手机才能认新的设置!

两个手机修改后,发现仍然是和原来连星的速度差不多的,没有秒开。打开GPS,也仍是0颗星。

后来,又发现国产手机手机设置里,有增强GPS设置,SUPL服务器可选NOKIA、GOOGLE、CHINA MOBILE!但无论选哪个,均没有什么效果。

继续分析:

 

1. 电脑连接SUPL服务器

试着用电脑连接suplcn.sirf.com的端口7275或7276,都可以连得上,说明sirf服务器没问题。

试着连supl.google.com的7275或7276端口,均连接不上,说明google被墙了。

试着连supl.nokia.com的7275端口,可以连上,而7276端口连接不上。

 

2. suplcn.sirf.com服务器

7276或7275端口:手机直接上网,GPS开始运行时,用“终端模拟器”netstat看,发现有连接到suplcn.sirf.com的7276端口,是ESTABLISHED,但是很快就变成FIN_WAIT1,然后就没了。

 

3. supl.nokia.com服务器

手机直接上网,GPS开始运行时,用“终端模拟器”netstat看,连接到supl.nokia.com 的7275端口是SYN_SENT了一会,然后就没有了。

再次试验,则是马上CLOSE_WAIT,很快就没有了。

 

从上面的连接情况看,好像SUPL服务器连上后,就被踢出来了,没有正常通讯。

 

三、XTRA星历文件

从http://xtra1.gpsonextra.net/xtra.bin、xtra2或xtra3下载的xtra.bin文件,均是一样的,文件没有差异!!

约20分钟左右,xtra.bin文件就更新了,不一样了。

说明这个xtra.bin文件就是星历,记载了当前时间天空中各个卫星的所在位置和运行方向情况。

但这个文件的内容都是二进制的,格式不清楚。

 

四、分析和结论

其实,要实现快速定位,很简单,只需要知道当前位置的大概经纬度、当前天空中所有卫星的位置和运行方向(星历),就可以了!!

星历很容易下载!

那当前位置的大概经纬度,不是也很容易吗,我自己只需要得到手机基站的ID,再在基站定位网站上查一下,就得到了啊。

SUPL位置服务器应该就是做这个事的,把你的大概位置发给你,并且应该可以把你天空中的所有卫星的方向角、仰角等信息发给你,你就可以快速定位了。

但是,图样图森破。

我们自己可以下载星历,自已可以很容易根据基站ID反查到当前位置的大概经纬度,但是你自己没办法把这些数据写入到AGPS芯片中的,所以没有用的!

AGPS芯片是一个商业化的商品,别人家SUPL位置服务器凭什么免费给一个不认识的AGPS芯片服务?正如某网友说的,SUPL服务器不是你连接上,就能为你服务的!

AGPS芯片也不可能会拿基站ID到基站定位网站去查询当前位置,那基站定位网站也要向AGPS芯片厂商收费了。

唯一的指望是,有一个叫supl.google.com服务器,它应该是免费的,但是,google被墙掉了。好像记得以前我有用电脑连上过supl.google.com服务器的7276端口,但是现在已经连不上了。所以不知道它能不能有效果?

三星新推出的手机J5008能正常AGPS,可能是有交费过了。会不会过一段时间过期了,就不能用了,有这个可能。

所以,大家洗洗睡吧,靠修改SUPL服务器,一般是不能用的。不过试试也好,可能SUPL服务器良心发现了也不一定哦。

留着google的服务器也行,有时可能墙开了个洞也不一定哦。

以上为个人观点。

 

五、附J5008的gps.conf文件

这个文件太复杂了,而且奇怪的是SUPL_HOST居然被#注释掉了,不知道原理是什么。附上供大家分析:

#Uncommenting these urls would only enable

#the power up auto injection and force injection(test case).

XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra3grc.bin

XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra3grc.bin

XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra3grc.bin

 

#Version check for XTRA

#DISABLE = 0

#AUTO    = 1

#XTRA2   = 2

#XTRA3   = 3

XTRA_VERSION_CHECK=0

 

# Error Estimate

# _SET = 1

# _CLEAR = 0

ERR_ESTIMATE=0

 

#Test

NTP_SERVER=time.izatcloud.net

#Asia

# NTP_SERVER=asia.pool.ntp.org

#Europe

# NTP_SERVER=europe.pool.ntp.org

#North America

# NTP_SERVER=north-america.pool.ntp.org

 

# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info

#               4 - Debug, 5 - Verbose

# If DEBUG_LEVEL is commented, Android's logging levels will be used

DEBUG_LEVEL = 4

 

# Intermediate position report, 1=enable, 0=disable

INTERMEDIATE_POS=0

 

# Below bit mask configures how GPS functionalities

# should be locked when user turns off GPS on Settings

# Set bit 0x1 if MO GPS functionalities are to be locked

# Set bit 0x2 if NI GPS functionalities are to be locked

# default - non is locked for backward compatibility

#GPS_LOCK = 0

 

# supl version 1.0

SUPL_VER=0x10000

 

# Emergency SUPL, 1=enable, 0=disable

SUPL_ES=0

# Sensor R&D : Non-SUPL ES should be default

 

#Choose PDN for Emergency SUPL

#1 - Use emergency PDN

#0 - Use regular SUPL PDN for Emergency SUPL

USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=1

 

#SUPL_MODE is a bit mask set in config.xml per carrier by default.

#If it is uncommented here, this value will over write the value from

#config.xml.

#MSA=0X2

#MSB=0X1

SUPL_MODE=0x3

#Sensor R&D : Change default bit mask

 

# GPS Capabilities bit mask

# SCHEDULING = 0x01

# MSB = 0x02

# MSA = 0x04

# ON_DEMAND_TIME = 0x10

# GEOFENCE = 0x20

# default = ON_DEMAND_TIME | MSA | MSB | SCHEDULING | GEOFENCE

CAPABILITIES=0x37

 

# Accuracy threshold for intermediate positions

# less accurate positions are ignored, 0 for passing all positions

# ACCURACY_THRES=5000

 

################################

##### AGPS server settings #####

################################

 

# FOR SUPL SUPPORT, set the following

# SUPL_HOST=supl.host.com or IP

# SUPL_PORT=1234

 

# FOR C2K PDE SUPPORT, set the following

# C2K_HOST=c2k.pde.com or IP

# C2K_PORT=1234

 

# Bitmask of slots that are available

# for write/install to, where 1s indicate writable,

# and the default value is 0 where no slots

# are writable. For example, AGPS_CERT_WRITABLE_MASK

# of b1000001010 makes 3 slots available

# and the remaining 7 slots unwritable.

#AGPS_CERT_WRITABLE_MASK=0

 

####################################

#  LTE Positioning Profile Settings

####################################

# 0: Enable RRLP on LTE(Default)

# 1: Enable LPP_User_Plane on LTE

# 2: Enable LPP_Control_Plane

# 3: Enable both LPP_User_Plane and LPP_Control_Plane

LPP_PROFILE = 0 # Sensor R&D : This will not be injected to MODEM

 

################################

# EXTRA SETTINGS

################################

# NMEA provider (1=Modem Processor, 0=Application Processor)

NMEA_PROVIDER=1

# Mark if it is a SGLTE target (1=SGLTE, 0=nonSGLTE)

SGLTE_TARGET=0

 

##################################################

# Select Positioning Protocol on A-GLONASS system

##################################################

# 0x1: RRC CPlane

# 0x2: RRLP UPlane

# 0x4: LLP Uplane

A_GLONASS_POS_PROTOCOL_SELECT = 0 #Sensor R&D : This will not be injected to MODEM

 

 

附GPS测试软件APP

APK文件WINRAR的CRC32值是A3692433

 

PARTNER CONTENT

文章评论7条评论)

登录后参与讨论

用户377235 2016-5-11 22:08

哈塞撒卡JJ

zhengzhirui 2016-1-4 09:38

楼主辛苦,顶起

用户377235 2015-12-12 23:43

难道电信双卡的agps都是ctwap模式也是几秒定位 ,但用移动卡的网络或其它网络agps都不起作用,尼码,收藏!希望能改变这隔局!

xwh359_665698099 2015-12-6 14:22

楼主的测试说明我们的手机AGPS都是摆设了?

用户1009923 2015-12-4 08:45

国产手机要快速定位看来必须要自己架设服务器。华为小米应该有这实力吧?

sunce_464022046 2015-12-3 13:11

xx

carl_782646022 2015-12-3 11:02

有意思
相关推荐阅读
wxleasyland 2016-06-23 20:35
简单翻译W25Q64BV数据手册(Winbond串行闪存SPI总线)
百度文库 http://wenku.baidu.com/view/7bfd82fd5901020206409c1b...
wxleasyland 2016-06-22 17:33
安卓手机中加入busybox命令,打包tar,HC-KTOOL备份EFS的efs.tar.gz长度为0解决
安卓手机中加入busybox命令,打包tar,HC-KTOOL备份EFS的efs.tar.gz长度为0解决 wxleasyland@sina.com 2016.6.17 I9300手机,4....
wxleasyland 2016-06-19 21:17
电脑机箱USB扩展面板失灵原因查找
wxleasyland@sina.com 2016.6   山寨电脑机箱前面的2个USB口扩展面板,是通过排线接到主板上的插座的。 用得好好的,中间有搞了搞电脑,后来就发现有一个...
wxleasyland 2016-06-17 13:44
I9300手机解锁亮屏慢,是Exynos处理器的原因
I9300手机解锁亮屏慢,是Exynos处理器的原因 三星I9300手机,全新刷的官方系统,没有装任何软件。 按电源键或HOME键,亮屏慢,需要1~2秒屏幕才亮起来,找遍网上,没有解法。 后...
wxleasyland 2016-06-16 13:48
华硕主板FW status recovery error故障修复,双BIOS功能分析
华硕主板FW status recovery error故障修复,双BIOS功能分析 wxleasyland@sina.com 2016.6   最近买了一个二手华硕主板P8B75...
wxleasyland 2016-05-01 19:47
WINDOWS(WIN7等)用U盘安装方便(非WINPE)、XP需PE
WINDOWS(WIN7等)用U盘安装方便(非WINPE)、XP需PE 2016年5月1日     一、在WINDOWS中安装WINDOWS 在已运行的WINDOWS中,点击硬...
EE直播间
更多
我要评论
7
27
关闭 站长推荐上一条 /1 下一条