随便折腾一下小米运动健康
我一直以为小米运动健康的运动记录不能显示地图,是因为这个程序不支持海外地图
所以我的解决方案是,在手机上安装国行版的地图,同步数据,然后用 iPhone 也装小米运动健康(iOS 版可以正常加载地图)查看运动轨迹,或者用小米平板装国际版小米运动健康(国际版可以加载地图)查看运动轨迹
但是带多个手机很不方便,所以我想着是不是能够在一个手机上共存
国行版的小米运动健康是 com.mi.health,而国际版的小米运动健康是 com.xiaomi.wearable
那就很方便了,Magisk 或者 MT 随便一搞就共存了
后来无意中发现国行版的小米运动健康有时候是可以加载地图的,有时候是加载出来瞬间又变成白屏
我就觉得有点奇怪
用 Reqable 检查以后,发现不仅请求了 Mapbox 的数据,还请求了高德的数据,我觉得大概是高德的响应带了一些什么东西,覆盖了 Mapbox 的响应
abroad-restapi.amap.com 明显就看着是海外地图的意思,但竟然返回了 USER_DAILY_QUERY_OVER_LIMIT
不知道小米的工程师有没有好好测试
屏蔽掉这个 amap 的请求之后,手机上也可以正常加载海外地图了,一切正常
不过一段时间之后,大概十几秒或者半分钟,依然会白屏,猜测是 amap 请求超时之后回退到了一样的处理逻辑上
但这不重要,如果我要看的话,甚至要导出分享的话,十几秒已经足够我完成操作了,那么也没必要继续去改太多的东西,直接屏蔽 abroad-restapi.amap.com 这个请求就好
本来想搞一个 Magisk Module,因为这东西肯定不能简单地 /etc/hosts,那样会直接返回失败,从而加速白屏,而是让这个请求消失,还是有点麻烦
后来发现直接找个广告拦截模块,写一条自定义规则 ||abroad-restapi.amap.com^$important,app=com.mi.health
拦截这个请求就好了