本帖最後由 padfone_chao 於 2021-1-13 08:47 編輯
Dear A大,
依照您修改的「全自動阻斷」services.jar 解開比對原版檔案,應該是修改2個檔,GnssLocationProvider.smali、MockProvider.smali。
雖然我是 MIUI 11但是與 MIUI 12的 services/smali/com/android/server/location 底下 208個檔仍然一樣。
修改上面說的兩個檔,編譯成 dex 執行免阻斷沒問題,拿華碩 ROG2(I001 Android 10 我兒子的)改後免阻斷也是沒問題。
但是者兩個機子都有不能瞬回的問題,就是 GPS Joystick 停止飛人應該就要回實際現地位置,但是等了 20幾分鐘就是不會回來。
在 GnssLocationProvider.smali 中,您定義兩個新的 method
.method public static fneodscpbga()V (應該是傳回 0x1)
.method public static hfgfeodscpbga()V (應該是傳回 0x0)
hfgfeodscpbga() 在MockProvider.smali 有運用到,在 .method public setLocation(Landroid/location/Location;)V 中的
iget-object v0, p0, Lcom/android/server/location/MockProvider;->mLocation:Landroid/location/Location;
invoke-static {}, Lcom/android/server/location/GnssLocationProvider;->hfgfeodscpbga()V <--- 這是新加上的
const/4 v1, 0x0 <--- 原本為 0x1 (這在 Android 9也是如此改法)
invoke-virtual {v0, v1}, Landroid/location/Location;->setIsFromMockProvider(Z)V
找遍整個 location目錄中除了 GnssLocationProvider.smali 檔的其他檔案,都沒有運用到 fneodscpbga() 這個 method。
還是我漏掉哪個部分,請撥冗不吝教導,不勝感激,謝謝。
附上 Asus ROG2 與 Redmi Note Pro 8 MiUI 11 android 10 的 services.jar
|
評分
-
查看全部評分
|