车机GPS搜星慢/定位不准/无北斗/卫星信号差原因分析及终极解决方案

oy2个月前 (01-24)技术研究393

从去年下半年开始,车机的冷启动卫星定位时间长达10分钟以上,有时候甚至开出去半个小时都定位不上,即使定位成功也就10颗卫星左右,导致导航经常性漂移,行驶在路上导航突然提示掉头时常发生。

且我记得以前是有北斗信号的,现在几乎搜不到,也就极偶尔能出现1颗2颗

修复前是这样的:

image.png

经过我一周的研究,最终修复,思路和方法如下:


一、配置文件

车机的系统大部分是安卓,相关gps配置文件最常见的是在 /system/etc/gps.conf,当然也有其他目录,如果这里找不到就去其他地方找找,我在车机上用的ES Explorer文件管理器查看此文件

原内容如下:

NTP_SERVER=asia.pool.ntp.org
XTRA_SERVER_1=http://agnss.zsouth.com/api/GetGPS?usr=nwd001&pwd=nwd001&type=china
XTRA_SERVER_2=http://agnss.zsouth.com/api/GetGPS?usr=nwd001&pwd=nwd001&type=china
XTRA_SERVER_3=http://agnss.zsouth.com/api/GetGPS?usr=nwd001&pwd=nwd001&type=china
SUPL_HOST=221.176.0.55
SUPL_HOST=221.176.0.55
SUPL_HOST=221.176.0.55
SUPL_PORT=7275
SUPL_NAME=cmcc
AGPS_IAPID=T96
AGPS_PROVID=MSB
AGPS_APN=CMWAP
AGPS_RESET_TYPE=HOT
AGPS_NETWORK=HOME

该文件主要包含三种配置:

1、NTP服务器,用于网络对时,我一般喜欢用阿里的 ntp,速度快并且稳定

NTP改为

NTP_SERVER=ntp1.aliyun.com
NTP_SERVER=ntp2.aliyun.com

2、XTRA_SERVER(星历服务器),用于下载星历数据

检查原配置文件中的agnss.zsouth.com,好家伙,域名过期,正在售卖中!说明此地址已彻底无效

image.png

3、SUPL服务器,原配置文件中的221.176.0.55是来自于中国移动,查阅资料发现最早可以追溯到2014年可用,但是在遥远的2026年,无论是ping还是tcp链接7275端口,均失败。说明这个服务器大概率已经关闭,又得找替代的


二、ROOT车机,获取权限

要修改 /system/etc/ 下的文件,必须要有root权限,首先把车机给root了

试了各种root软件,什么360root等,均无法获取永久root权限

最后在网上找到了俄罗斯大神制作的root补丁升级包,直接放U盘根目录,重命名为update.zip,然后在车机系统设置中选择“升级系统”即可,这里放下载链接可自取:


下载地址:update(4-7root).zip


 ⚠️注意:刷机和ROOT有风险,适合有一定动手能力且敢于承担风险的用户尝试,搞不好机器变砖!!笔者不承担因此带来的任何后果!


三、修改替换配置文件

1、星历服务器更改如下:

XTRA_SERVER_1=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra3.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra1.gpsonextra.net/xtra.bin

2、SUPL地址网上找了不少,可惜的是几乎全部过期了

截止于2026年1月24日,国内可用的只有一个 supl.qxwz.com,端口7275,查了一下,应该是千寻定位的服务器,比较权威

image.png

把他替换上

SUPL_HOST=supl.qxwz.com


四、修改保存,重启车机

然后就傻眼了,因为冷启动依然10多分钟才定位成功!说明我们的配置无效


查找原因:车机通过笔记本建热点连接网络,电脑上运行抓包软件,发现车机根本就没有访问XTRA星历服务器地址

下载了一个aida64,检查了下车机的CPU,应该是MTK平台的,不支持高通格式的星历文件,那么上面的XTRA_SERVER设置了也没用

image.png

再测试下supl服务器supl.qxwz.com,发现可以ping通,地址是39.105.240.30,位于北京阿里云IDC机房,但是7525端口无法连通!

image.png

这就奇了怪了,我昨晚筛选地址的时候明明是测试过的,可能是服务器不稳定,于是我写了个24小时监测程序,结果如下:

除了每天凌晨1点-5点可用率超过80%以外,其余时间低得可怜,基本只有10-20%,这也就解释了为什么原始配置文件把SUPL地址写几行的原因,估计也是因为那服务器不稳定,得多重试几次。


五、解决方案

在国内没有发现更多可用的supl服务器,唯一可用的为supl.google.com,来自谷歌的supl公共服务器

总所周知,国内链接谷歌相关服务非常不稳定,于是需要一个可稳定链接的服务器来中转

所以我在非大陆区域购买了一台VPS服务器,安装rinetd软件来完成TCP透传,当然也可以采用Nginx的反向代理

1、安装rinetd

# 下载最新版本(请查看 https://github.com/samhocevar/rinetd/releases 获取最新版本)
wget https://github.com/samhocevar/rinetd/releases/download/v0.73/rinetd-0.73.tar.gz
# 解压
tar -zxvf rinetd-0.73.tar.gz
cd rinetd-0.73
# 配置、编译、安装
./configure
make
sudo make install
# 验证安装
rinetd -v

2、创建配置文件

# 创建配置文件目录
sudo mkdir -p /etc/rinetd
# 创建配置文件
sudo vim /etc/rinetd/rinetd.conf

加入以下内容:

# 转发规则
0.0.0.0 7275 supl.google.com 7275
0.0.0.0 7276 supl.google.com 7276
# 日志设置
logfile /var/log/rinetd.log
logcommon

3. 加入开机自启

sudo vim /etc/systemd/system/rinetd.service

加入以下内容:

[Unit]
Description=rinetd - Internet TCP redirection server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/rinetd -c /etc/rinetd/rinetd.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target

4. 最后开启服务

# 启动服务
sudo systemctl start rinetd
# 设置开机自启
sudo systemctl enable rinetd
# 查看服务状态
sudo systemctl status rinetd

连接自己搭建的私有SUPL服务器,看着这服务可用率终于舒服了

ScreenShot_2026-01-25_000006_493.png

最终修复后的gps.conf内容如下:

# /system/etc/gps.conf - 通用优化配置
# 1. NTP时间服务器(定位基础)
NTP_SERVER=ntp1.aliyun.com
NTP_SERVER=ntp2.aliyun.com
# 2. XTRA星历服务器
XTRA_SERVER_1=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra3.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra1.gpsonextra.net/xtra.bin
# 3. SUPL辅助定位服务器
SUPL_HOST=supl.qxwz.com #建议自建服务器中转supl.google.com
SUPL_PORT=7275
SUPL_VER=0x20000
SUPL_MODE=1
# 4. 其他参数
DEFAULT_USER_PLANE=TRUE
AGPS_MODE=1
AGPS_IAPID=T96
AGPS_PROVID=MSB
AGPS_APN=CMWAP
AGPS_RESET_TYPE=HOT
AGPS_NETWORK=HOME

六、改造升级硬件

之前的GPS天线放在A柱内,且前车窗贴了金属膜,对信号影响很大。并且天线用几年了也存在着衰减,于是从淘宝网购一根10元的天线,并且选择了3米线长,为了从车机走线拉到前挡风上方

我所选购的这根天线是增益38dbm的,比原车的天线增益效果要好,记得选择跟原车机相同的接口

把这根3米的天线接收端贴在前档上方放ETC的位置,这里没有贴金属膜,是车内信号最好的位置了

最终,效果如下,几乎稳定在30星+,且久违的北斗又回来了

修复成功后又经过一周的测试,目前车机冷启动也能秒连卫星,在周围有楼房遮挡的情况下,最慢也未超过30秒定位成功。并且行驶在路上也没有再突然导航漂移,突然跑对向车道提示掉头等毛病。

跟之前相比简直是质的飞跃!


总结:

1、修改gps.conf文件可减少首次定位的时间(对于非高通平台效果有限)

2、换一根高增益的天线并放在合适的位置是解决问题的关键(非常重要!)

3、如果车机支持多种卫星导航系统,可以购买三模天线,以及支持更多频段更高增益的天线,当然价格也更贵

4、经过测试发现,我的车机最多只能同时连接解算32颗卫星信号,此天线搜星能力已超过车机最大值,没必要再购买更好的天线了

5、本文以我的车机飞利浦cid6680(实际用的是掌讯K2001的公版方案)为例,其他型号车机解决思路类似,抛砖引玉

image.png

相关文章

QQ全部TCP/UDP服务器地址 (截止 2010-06-08)

用法就不说了,通过搜索引擎找到本文的一定已经知道如何用了。笔者先在路由器上封堵来自笔者电脑的任何数据包,然后开始登录QQ,用抓包软件捕获到尝试连接的服务器:UDP服务器:sz.tencent.com…

快速搭建php+mySQL环境

下载地址http://phpnow.org/download.html当前版本包含 Apache-2.2.14 / 2.0.63PHP-5.2.12ZendOptimizer-3.3.3MySQL-5…

QQ最新版本号(更新至QQ2011 Beta1)

[Versions]2101=<QQ2011 Beta1>2107=<QQ2011 Beta1 优先体验版>1C53=<腾讯QQ概念版>1F57=<QQ201…

QQ、360冲突解决方案 临时兼容方案

本不想发表此文,主要还是由于部分用户对360依依不舍,或是短时间内不知用何杀毒软件替换,因此提供一个临时兼容方法。腾讯已于早些时候发布公告称强制不兼容360,非常强硬的表明了立场与360势不两立,用户…

无线网络可以同时Ping通多个IP段

无线网络可以同时Ping通多个IP段

如图,笔者发现一个非常奇怪的现象: 将路由IP地址设置为 192.168.150.1 ,子网掩码 255.255.255.0 ,在这个C类域的限制下,只有主机192.168.150.x 的主…

QQ2011版本号大全(截止正式版)

提示:如果你用的是QQext插件,则将下列内容直接替换QQext目录下的ver.txt文件内容;如果你使用的是赛博QQ等version.ini的文件,则使用这样的格式:http://www.oyzr.…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。