用 Thanox 在不支持地区启用 Google 地图时间轴(位置记录)
问题发生
某次 Android Beta 更新后,LSPosed manager 已经无法打开,虽然每次开机还是会用「LSPosed loaded」提醒我 LSPosed 依然在工作,只是似乎无法再打开设置应用。此时 Android 15 QPR1 Beta 1 已经向我推送,而 LSPosed 已经归档大半年不再更新,虽然有诸如 LSPosed_mod 等分支尝试给出除设置应用外的 CLI、API 模块支持,可后者同样也大几个月没有更新,对 Android 15 正式发布前的 QPR 稳定版本的支持也是较大未知数。
在 Android 玩机环境整体陷入低迷的背景下,我也逐渐进入「避险模式」──过去许多使用的模块、进行的修改不再被我视为刚需,在一次次更新还原的过程中被逐渐缩减,只剩下一些必要的模块和修改,而在不支持地区(例如国内大陆区域)强制激活 Google 地图时间轴(Google Maps Timeline,以前称之为「位置记录」Location History)模块便是筛选留存下来的其中之一。
不幸的是,相关模块 Riru-LocationReportEnabler 早在三年前被归档且在后续 Riru 与 Zygisk 不兼容进而前者归档停更的情况下不再可用,老牌 Xposed 模块应用 LocationReportEnabler 也随着(至少在我设备上的)LSPosed manager 无法打开不再可用。更火上浇油的是,Google 此时发邮件提醒我地图时间轴功能将在今年关闭浏览器端,且该功能不再跟随账户而是跟随主要设备,这件事似乎不可再拖延。
一个月后的更新:
LSPosed 不兼容包含 此变更 的 ART。来源自 LSPosed TG 群消息。
解决方法是通过命令卸载:
adb uninstall com.google.android.art
回归本质
在我接触的两种可行方法都失效后,不妨关注下这两个模块工作的本质,而它们都在仓库 README 中解释了模块究竟在做什么:
gsm.sim.operator.numeric
设置为310030
gsm.sim.operator.iso-country
设置为us
而 Riru 模块还提醒了上述修改需要欺骗的应用范围:
- com.google.android.gsf
- com.google.android.gms
- com.google.android.apps.maps
这说明 Google 地图时间轴判断是否启用的依据是 SIM 卡的运营商信息,而非位置或网络环境。考虑到 LocationReportEnabler 七、八年未更新,说明这个逻辑在这么长时间内都没有变化。而上述两个模块失效的原因也并非因为这个逻辑发生了变化,而是因为依赖的 Riru 或 LSPosed 的变化导致模块无法正常工作。所以只要我们自行依靠其他手段实现类似的修改行为或许就能实现相同的效果。
自己动手
早在三年前我写过 Thanox 的使用教程,当时主要关注此应用在限制应用后台方面的功能,作为绿色守护、黑域的替代品。除了设置后台启动、后台运行、任务清理这管理后台三板斧,Thanox 情景模式通过触发条件可以实现更精细的控制。
这次的需求──修改 SIM 卡信息──正好可以通过 Thanox 的另一个功能「隐匿」来实现。「隐匿」可以针对选中的应用隐藏 SIM 卡、序列号等一系列敏感信息。
首先,我们需要在 Thanox 的「隐匿」中添加一个模板,将 SIM Country ISO
设置为 us
,SIM Operator
设置为 310030
。
回到「隐匿」,将应用筛选规则设置为系统应用,找到 Google Play Services
、Google Services Framework
、Google Maps
并应用刚刚设置的模板。
注意 Thanox 有 Xposed 激活和 Zygisk 激活两种方式,如果是前者需要额外在 Xposed 管理器中将 Thanox 模块的作用域除了系统以外还要覆盖到上述三个应用。
完成后强制清除 Google Maps 数据(不是缓存),重启设备,正常情况下 Google 地图时间轴应该已经出现在设置中。
参考: