記錄移除Folo Google 服務驗證的過程

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這個類好好修改了一下。

  1. 廢掉連接請求 (connectToLicensingService) 這個方法是啟動授權檢查的入口。我們讓它在啟動時就直接結束,根本不去連谷歌商店。

修改後:

.method private connectToLicensingService()V
    .registers 1

    # 直接返回,什么都不做
    return-void
.end method
  1. 廢掉錯誤處理 (retryOrThrow) 應用在連接失敗或驗證不通過時會調用這個方法來彈窗。找到 .method ... retryOrThrow(...)V

修改後:

.method private retryOrThrow(Lcom/pairip/licensecheck/LicenseCheckException;)V
    .registers 2

    # 哪怕报错了,也直接返回,不准弹窗,不准退出
    return-void
.end method

測試一下,現在就不會彈窗了。