【2014年8月10日】原来,没有GPS,手机是这么定位的

2014-08-11(一) by chenjia.me

苹果手机收集个人隐私?

最近苹果公司的收集位置信息的新闻被某些媒体大幅报道,看了原理好像并没有那么恐怖,可能最近国内的走势比较那个吧~

不过这样的好处就是,很多人都知道苹果手机(iOS7)中的常去的地点默认是开启的,这样可以避免多少xxxx的事情发生(笑)。

其实我最开始也是不知道的。像我这样把设置看过一遍的人都没有注意到这样的小细节,最开始的时候是5月底在知乎上的某个问题里面看到的~不过我还是建议大家关闭吧~毕竟哈哈哈

手机是如何定位的?

回到正题,大家现在无论是发微博,朋友圈,抑或是各种各样的SNS,都会有习惯带上地点的,那么APP是如何知道你在那里的呢?

手机GPS

说起GPS大家一定不陌生,很多手机都是默认开启的,不过大家发现他很耗电,然后就经常被关闭。GPS以及现在都用的的A-GPS

A-GPS技术是一种结合了网络基站信息和GPS信息对移动台进行定位的技术,可以在GSM/GPRS、WCDMA和CDMA2000网络中使用。该技术需要在手机内增加GPS接收机模块,并改造手机天线,同时要在移动网络上加建位置服务器、差分GPS基准站等设备.

所以很多Android 的ROM说秒定位秒收星就是指A-GPS的服务器地址比较优秀,Andorid同学可以通过设置-定位里面查看GPS的配置

网络定位和WiFi定位

很久以来我都好奇为什么手机通过WiFi可以定位的如此准确,而我家的WiFi或者学校的WiFi并不具备定位功能。并且我的itouch并没有GPS。 想了很久这个问题,知道今天看到了某个破解论坛的文章,恍然大悟。 发出来给大家看看~

http://www.chinasnow.net/index.php/archives/673

首先普及一下基站定位的原理:

如果你在你的手机装过Google Mobile Maps,你就可以发现只要你的手机能连接GPRS/EDGE/3G,即使手机没有GPS功能,也能定位到你手机所在的位置, 只是精度不够准确。这个Google Map所利用的定位,就是基站定位。在探讨这个原理之前,我们需要了解一些移动知识,了解什么是MNC/LAC/Cell ID。

Mobile Network Code(MNC) 移动网号码,中国联通CDMA系统的MNC为03,中国移动的为00。

Mobile Country Code(MCC) 移动用户所属国家代号:460

Location Area Code(LAC) 地区区域码,用来划分区域,一般一个小地方就一个LAC

Cell Tower ID(Cell ID) CellID代表一个移动基站,如果你有基站数据,查CellID你就可以知道这个基站在哪里。

这些信息有什么用呢? 通过这些信息可以知道你的手机是从哪个国家,区域和哪个基站接入移动网络的。

这些信息从哪里来呢,一般的手机系统都提供相应的API来获取这些信息(Cell Info),比如Window SmartPhone 或Mobile就是通过RIL.dll里的API来取得,Android和iPhone也能通过FieldTest来查看到,每个手机操作系统不一样,相关的信息可以查相关资料。

得到了这些信息,如果没有基站信息表(基站的CellID对应的经纬度),得到了这些信息也不知道在哪里,因为只有移动运营商才拥有每个基站的经纬度数据。但Google凭借Android系统,还有路上测试的信息收集车辆,却可以收集到每个基站的大概经纬度。

早期Google可以采用车辆收集这些信息,车上装载GPS定位,可以准确拿到经纬度信息,与此同时,利用手机,可以获取到周边的基站Cell ID,于是 Cell ID-经纬度这样的对应关系就可以建立起来。要全部利用车辆来收集这些信息是个庞大的工程。Android的智能手机,大多数拥有GPS硬件定位,于是大家的手机在查询Google定位的同时,也给Google提供了很好的定位数据,这些数据通过Google内部的算法,就可以建立非常完善的基站定位数据库了。

随着Wifi热点的增多,Android现在也可以通过Wifi来定位了,原理跟基站定位差不多。每个无线路由会有一个BSSID,这个就是路由器的标识,与基站的CellID相同。Android手机根据GPS或者基站定位得到大概位置后,再把周边的Wifi的BSSID提交到Google服务器,于是这些路由器的具体位置也被大概定位出来了。当下一个用户搜索到某个Wifi信号,这个Wifi位置信息曾经被另外一位用户上传过,于是马上就可以得知其具体位置。

为什么部分4G用户无法定位了?

如果你看懂了上面的基站定位原理,估计就能够猜到原因了: 4G基站的LAC,CI还没有足够的终端上传关联数据!

也就是说,目前4G终端数量还不够多,所以Google/苹果取得的基站LAC,CI跟GPS所关联的数据还不够多。如果你所在的位置的基站,在服务端上还没有对应的位置信息,那么就无法定位到你所在的大概位置(但室外定位,靠GPS信号,还是能够准确获得你的位置)

PS:把4G功能关闭,采用2G,你又会发现,室内定位又正常了!这是因为2G,3G基站的数据,早已经采集足够多了!


恩说的很详细~恍然大悟啊~

最后

所以说苹果手机位置服务有的时候也是为了我们的方便呀~是不是~

这样就很好解释了为什么最开始在家的时候WiFi定位不准而有一次回家后定位就很精确了。

不过,说一个奇怪的事情,有一次在学校自习无聊,然后拿出touch来看定位,结果发现定位一直在动,就像一个人拿着手机打电话的走动,现在想想或许那个手机和我连接的是一个相同的WiFi,然后他在打电话而他的手机开着GPS,我在看定位,然后我就 监控了他的行踪。

细思恐极。


Comments