记一下去掉Folo谷歌服务验证的过程
2 min
虽然已经有了部署在Serv00上的Miniflux,用起来很方便也没有被墙,还是想再体验一下Folo的安卓版。
之前就尝试过Windows上的Folo,效果还不错。安卓上的Rss阅读器没有一个能让我完全满意的,当时Folo还没有出安卓版,最近看了一下出来了想体验一下。
Github release上没有编译好的安卓版本,找来找去似乎只有谷歌商店有了。我没启用谷歌套件(主要为了省电,应该能省点电吧)。平时我就直接用Aurora Store,安装Folo不知道为什么失败,就在APKPure上面安了。
打开后发现过几秒钟就会弹窗Something went wrong,是一个缺少谷歌服务的提示。关了之后软件就会退出。
首先用MT管理器提取安装包,再把xapk转成apk,没有加壳和混淆,很好。
搜索范围选方法名,发起搜索找到很多个isGooglePlayServicesAvailable的检验,全部修改返回true。然而还是不行。
通过算法助手pro定位弹窗,定位到com.pairip.licensecheck.LicenseClient.connectToLicensingService。
Google Play App Integrity (原名 App Licensing / LVL) 的高级保护方案,通常被称为 PairIP。
把LicenseClient这个类好好修改了一下。
- 废掉连接请求 (
connectToLicensingService) 这个方法是启动授权检查的入口。我们让它在启动时就直接结束,根本不去连谷歌商店。
修改后:
.method private connectToLicensingService()V
.registers 1
# 直接返回,什么都不做
return-void
.end method- 废掉错误处理 (
retryOrThrow) 应用在连接失败或验证不通过时会调用这个方法来弹窗。找到.method ... retryOrThrow(...)V。
修改后:
.method private retryOrThrow(Lcom/pairip/licensecheck/LicenseCheckException;)V
.registers 2
# 哪怕报错了,也直接返回,不准弹窗,不准退出
return-void
.end method测试一下,现在就不会弹窗了。