本文旨在帮助各位使用UnifiedNlp实现安卓手机的室内定位。
如果您继续向下阅读,即表示您同意作者对由下述操作所引起的账号被ban、手机爆炸、世界末日等情况不负任何责任。
本文仅针对部分安卓机(苹果貌似也没有这样的烦恼),需要root及xposed框架,目前在LineageOS测试有效,估计其他类原生ROM(如RR、AICP、AEX等)应该也是有效的,其他ROM(MIUI、Flyme、EMUI等)未做测试。
设备的root与xposed框架的安装不在本文的讨论范围之内。
理论上来说网络定位只是辅助定位,利用GSM基站,附近的WIFI信号等进行定位,绝不是作弊。况且在早些的安卓系统(可能是国内ROM)中内置了NetworkLocation.apk进行网络定位,同时UnifiedNlp可以使用Apple的辅助定位,尽管我已经使用了几个月都没有问题,但猩猩的作弊检测算法是未知的,因此不保证不会出现封号的情况!
因此不保证不会出现封号的情况!
因此不保证不会出现封号的情况!
因此不保证不会出现封号的情况!
你必须知道你在做什么,并且USE PROPERLY AT YOUR OWN RISK!
以下正文
之前尝试了LineageOS-microG(https://lineage.microg.org/),原本这只是一个内置了microG的LineageOS,几乎只要有LineageOS的官方支持的机器都会有LineageOS-microG,不是本文的主角,具体不做介绍。
在使用LineageOS-microG的几天,注意到microG里面内置的一个替代google网络定位的UnifiedNlp,其实我一直不知道为什么google的网络定位完全无法使Ingress在室内定位,甚至街道都显示不了。
经过测试,对UnifiedNlp进行简单设置就可以使Ingress实现室内定位。于是顺手(其实挺麻烦的)找到了UnifiedNlp的单独apk,这个UnifiedNlp同时与microG和google的定位冲突,也就是说安装了GApps就不能用。
……这就很尴尬了
但是解决方案是有的,就是利用一个xposed插件XposedUnifiedNlp
总的来说,要做的事情是:
将UnifiedNlp1.6.8的apk扔进/system/priv-app/(不用安装,放进去就行)
安装Xposed插件:XposedUnifiedNlp 1.0.4 experimental(直接在xposed模块仓库搜索就有,需要对Xposed框架的某些设置进行修改才能检索到experimental版本)
安装location backends和address lookup backends,推荐Apple WiFi、Mozilla Location Service。address lookup backends目前只找到Nominatim这一个
然后重启
-
查看UnifiedNlp Settings,7.x可以在应用列表里找到,8.x只能在设置->安全性及位置信息下面找到,如果没有,请检查/system/priv-app/。这里我们可以看到如下图,Unified Settings与Google的位置信息分享、位置记录是并列的,可能也能说明点啥。
-
第一个勾勾:点击并赋予位置信息权限;第二个勾勾和第三个勾勾:如果正确放在/system/priv-app/下面并且Xposed插件正常(Xposed插件也需要给位置信息权限),Xposed插件可以在框架的模块列表里点开,点击Check Settings,应有如下图
- 返回上一级进Configure location backends,勾选Apple和Mozilla Location Service,千万不要勾选自带的Dummy Backend!!!!这个是个假定位,会让你飞到地球另一侧。进Configure address lookup backends,勾就完了。位置信息的模式不能设置为第一个(仅GPS)。
大概这样就差不多了,基本上开Ingress是瞬间定位的,并且比较准确。但室外主要还是依靠GPS。
你可以在https://f-droid.org/中搜索unified找到其他的Backend,但上面提到的方案是用起来最准确、快速的,也可以参考该项目的GitHub页面来获得帮助。