åºäº KernelSU + LSPosed çé«ä¿ç Android ç³»ç»çº§èæå®äœäžæ 线ç¯å¢äŒªè£ æš¡å
High-fidelity Android system-level location spoofing and wireless environment simulation module based on KernelSU + LSPosed
ð¢ å å ¥æä»¬ç Telegram 亀æµçŸ€ è¿è¡
ææ¯æ¢è®šã嬿Žãå¹çéŒãææœè±¡ãð æ¥ç LocationSpoofer 诊ç»äœ¿çšæçš
åšç°ä»£ Android ç³»ç»ç飿§ç¯å¢äžïŒäŒ ç»çâæš¡æäœçœ®ïŒMock LocationïŒâåŒåè
é项æ©å·²è¢«åç±»åäœåŒ SDKïŒåŠé«åŸ·é£æ§ãè
Ÿè®¯å®å
šãçœææçŸçïŒå䞺é«é£é©ç¹åŸãå®ä»¬äžä»
èœå€èœ»æŸæ£æµå° isFromMockProvider æ å¿ïŒè¿äŒéè¿æ¶éåšåŽç以äžä¿¡æ¯æ¥è¯å«åŒåžžïŒ
- Wi-Fi BSSID å衚
- ç§»åšåºç«èçªå°åºçèçªæçº¹
- éè¿ BLE èçä¿¡æ
- çè³éè¿å¯¹å®äœæ°æ®åºåè¿è¡å éå¶åæ¢ïŒFFTïŒæ¥è¯å«è§åŸçéææçº¿æ§æš¡æèœšè¿¹ã
LocationSpoofer æ¯äžäžºåºå¯¹æ€ç±»é«åŒºåºŠé£æ§è讟计çç³»ç»çº§èæå®äœäžæ 线çµç¯å¢å éæ¹æ¡ã å®åºäº KernelSU / Magisk / APatch è·ååºå± Root æéïŒå¹¶å©çš LSPosed (libxposed) æ¡æ¶æ³šå ¥ç®æ è¿çšïŒä»¥æé«çç©çå¥ååºŠæŠæªå¹¶äŒªé ææäžå®äœãçœç»ç¯å¢çžå ³çåºå± API ååºïŒç¡®ä¿åºçšåšæ æ³å¯è§çæ åµäžè·åé«åºŠäžèŽçèåäœçœ®æçº¹ã
Tip
ð ææ°çæ¬éèŠæŽæ°
æ°å¢äºæŽå®æŽç Wi-Fi ç¯å¢æš¡æ äž ç§»åšåºç«æš¡æïŒå¯ä»æ¬å°æ«è¡æ°æ®ãWiGLE äºç«¯çç¹æ°æ®ä»¥å OpenCellID åºç«æ°æ®äžæå»ºç®æ åæ éè¿çç宿 çº¿çµæçº¹ïŒå¹¶åšç®æ App è¿çšå
åæ¥äŒªé WifiManagerãTelephonyManagerãPhoneStateListener äž TelephonyCallback çæ¥å£è¿åïŒè®©äœçœ®ãWi-Fiãè¿è¥åãåºç«å°åºäžä¿¡å·åŒºåºŠä¿æäžèŽã
- å°åŸæ çŒåæ¢ïŒåœå 讟å€èªåšåå§åé«åŸ·æè çŸåºŠ 3D å°åŸïŒæµ·å€è®Ÿå€èªåšåæ¢è³ Google Maps è¿è¡è·¯çº¿è§åäžåååæåŸ®è°ã
- ç¬ç«åºçšåæ ç³»éé
ïŒåŸ®ä¿¡ãåŠä¹ éãçŸåºŠå°åŸçäžååºçšå¯¹å®äœæ¥å£çææåæ ç³»äžåãè¥çŽæ¥äŒ å
¥ GCJ-02 äŒåšçŸåºŠå°åŸäžäº§çæ°çŸç±³åç§»ãLocationSpoofer æ¯æäžºæ¯äžªç®æ App åç¬æå®
GCJ-02(ç«æåæ )ãWGS-84(GPS åå§åæ ) æBD-09(çŸåºŠåæ )ã - é¶å»¶è¿ç¿»è¯ïŒåš Xposed æé©æ¶ïŒçŽæ¥ä»äž»è¿çšé¢å 计ç®å¥œçç»çº¬åºŠæ°æ®è¯»åïŒè§é¿é«é¢ Hook åºæ¯äžçäžè§åœæ°åŒéã
çå® GPS è¯çèŸåº of coordinates å çµçŠ»å±éªçãå€åŸæåºåæ¥æ¶æºåªå£°ïŒå€©ç¶å ·æé«æ¯ååžççœåªå£°ãè¥è¿åéæåæ ææºæ¢°ççŽçº¿åæ ïŒææè¢«åäœåŒæ£æµã
-
Ornstein-Uhlenbeck éæºè¿çšïŒæä»¬åŒå
¥äºé«æ¯éæºæžžèµ°ç©çæš¡åæ¥çæèªç¶äœçœ®æåšïŒå
¶ç¶ææ¹çšå®ä¹äžºïŒ
$$\mathrm{d}X_t = -\alpha X_t \mathrm{d}t + \sigma \mathrm{d}W_t$$ å ¶äž$\sigma$ 䞺æŒç§»åŒºåºŠïŒ$\alpha$ 䞺ååŒååœç³»æ°ïŒæ¬æš¡å讟å®äžº0.05ïŒå³æ¯ç§å°åœåæŒç§»æå 5%ïŒã宿¢äº§çäºç¬Šåç©çè§åŸçäœé¢çŒæ ¢æŒç§»ïŒå䜿æŒç§»éåš 3-Sigma ååäžäž¥æ ŒæçïŒç¡¬æ§éå¶åš 4 ç±³å ïŒïŒé²æ¢æŒç§»æ é忣åŒèµ·âäœçœ®ç¬ç§»âåèŠã -
æ¥é¢æšªåæåšïŒGait JitterïŒïŒåœå€äºæ¥è¡æè·æ¥æš¡åŒæ¶ïŒåŒæèªåšæ²¿åœåç§»åšæ¹åçæ£äº€æšªåäžïŒæ ¹æ®æ¥é¢åšæçç»è®¡æŠçæœå
0.15 * N(0,1)ç±³ç髿¯æšªåäœç§»ïŒå®çŸæš¡æçå®äººè¡æ¶èº«äœå·Šå³æåšçæ¥æç¹åŸã - æµ·æé«åºŠäžç²ŸåºŠïŒGDOPïŒæ ¢æŒç§»ïŒç²ŸåºŠåŒïŒAccuracyïŒåæµ·æé«åºŠïŒAltitudeïŒäžåæ¯æ»æ¿çåžžéïŒèæ¯åšåºååŒéè¿è¿è¡åžæè¿åšåŒççŒæ ¢æ³¢åšïŒæš¡æå€§æ°å¯¹æµå±å»¶è¿äžå«æå äœååžçèªç¶ååã
- 深床è°çšæ æž
æŽïŒStack Traces ScrubbingïŒïŒåšææŠæª
Throwable.getStackTraceåThread.getStackTraceïŒäžæŠåç°è°çšæ äžå å«de.robv.android.xposedãio.github.libxposedãlsposedçææè°çšåž§ïŒèªåšæ¹é€ïŒè®©åäœåŒ SDK æ æ³åšè°çšéŸå溯äžåç° Xposed æ¡æ¶ã - ç±»å 蜜é犻ïŒHook
Class.forNameåClassLoader.loadClassïŒå¯¹äºäžè¿°ææç±»åçæ¥è¯¢çŽæ¥æŠæªå¹¶æåºClassNotFoundExceptionã - Mock 屿§åœ»åºæ¹é€ïŒ
- å°
Location.isFromMockProvider()åLocation.isMock()çè¿ååŒæ°žä¹ 区å¶èŠå䞺falseã - é对 Android 12/13+ ç³»ç»ïŒéè¿åå°åŒºå¶å°
Locationå éšç§æå段mMockåmIsFromMockProvideréå䞺falseïŒå¹¶ç§»é€ Extra Bundle äžå¯èœæ®ççmockLocationæ è®°ã - æŠæª
AppOpsManagerçOP_MOCK_LOCATION (58)æéæ¥è¯¢ïŒåŒºå¶è¿åMODE_IGNORED (1)ïŒä»€ç®æ App è®€äžºç³»ç»æ²¡æåä»»äœèœ¯ä»¶æææš¡æäœçœ®ã - æŠæª
Settings.Secureäžmock_locationåallow_mock_locationç读åïŒè¿å0ïŒå ³éç¶æïŒã - éè
LocationManageräžçèæ Test ProviderïŒå°å ¶äžåŸéåœåå¹¶äŒªè£ äžºç³»ç»çåçgpsæäŸè ã
- å°
倧倿°åäœåŒ SDK äŒééåšèŸ¹çæ çº¿çµæçº¹ãåŠæäœ å®äœå°å京ïŒäœææºæ«åºæ¥ç Wi-Fi åè¡šå šåšäœ äžæµ·çå®¶éïŒç¬éŽå°±äŒè¢«æ è®°åŒåžžã
- å®å°æ«è¡æ«æåšïŒEnvironmentScannerïŒïŒæ¯æåšèæ¯è¿è¡æ«æïŒä»¥ 10s éŽéèªåšä¿åäœ çå®èµ°è¿çç©çäžçäžç Wi-Fi æ¥å ¥ç¹ïŒSSID/BSSID/RSSI/é¢ç/ä¿¡é/Wi-Fiæ åïŒãåºç«å°åºä¿¡æ¯ïŒGSM, WCDMA, CDMA, LTE, çè³æ¯ 5G NR ç宿Žèçªæçº¹ MCC/MNC/LAC/CID/TAC/PCI/NCI å dbm ä¿¡å·åŒºåºŠïŒä»¥åéè¿ BLE èçä¿¡æ ã
-
空éŽåè·çŠ»å æïŒIDWïŒæåŒïŒåœèæå®äœåšå°åŸäžè¿åšæ¶ïŒç³»ç»äŒåš Room æ¬å°æ°æ®åºäžæ£çŽ¢ 50 ç±³èåŽå
çåå²ééç¹ã䜿çšåè·çŠ»å¹³æ¹æ¯äœäžºæéïŒ
$$w_i = \frac{1}{d_i^2}$$ 对åšèŸ¹ææ Wi-Fi RSSI ä¿¡å·åŒºåºŠãèçª dbm 级èç RSSI è¿è¡åšæå·®åŒè®¡ç®ãè¿äœ¿ææºåšèæç§»åšæ¶ïŒWi-Fi ä¿¡å·äŒåšåå°å¹³æ»è¡°ååå¢åŒºïŒæš¡ææçå®çä¿¡å·è¿æž¡ïŒç»æ æçº¹çªå垊æ¥çå®å šéæ£ã -
Wi-Fi æ«æäžè¿æ¥ææš¡æïŒHook
WifiManager.getScanResults()ãgetConnectionInfo()ãgetConfiguredNetworks()ãgetDhcpInfo()çæ¥å£ïŒæç®æ åæ è¿å䌪é ç SSID/BSSID/RSSI/é¢ç/ä¿¡é/å å¯èœåïŒåæ¶åæ¥ Wi-Fi åŒå ³ç¶æãè¿æ¥çœç»ãçœå ³äž DHCP ä¿¡æ¯ã - çå®åç OUI åçŒå¹é ïŒåšæ æ¬å°ééæ°æ®ç空çœåºåïŒç³»ç»éçš TP-LinkãHuaweiãZTEãXiaomiãCisco ççå®äžåœäž»æµåçè·¯ç±åšçåæ³ MAC åçŒïŒOrganizationally Unique IdentifierïŒçæèæ Wi-Fi BSSIDïŒæç»å éæºçæéæ³ MAC è被åäœåŒååè¯ç Žã
- äºç«¯èåäŒªè£ (WiGLE API)ïŒå¯é 眮 WiGLE API å¯é¥ïŒå®æ¶åšçº¿æåå šçæå®ç»çº¬åºŠåšåŽçå®ç©çååšç Wi-Fi çç¹ïŒå¹¶åå ¥æ¬å°ç¯å¢æ°æ®åºïŒåç»å¯çŠ»çº¿å€çšã
- OpenCellID åºç«æ°æ®å¯Œå ¥ïŒå¯é 眮 OpenCellID API KeyïŒæç®æ åæ æ¥è¯¢éè¿çå®èçªå°åºïŒèªåšå®æ GCJ-02 å° WGS-84 åæ èœ¬æ¢ãbbox æ©å±æ¥è¯¢ãåæ®µåœäžåäžæ¬å°çŒåã
-
ç§»åšåºç«äžè¿è¥åæ¥å£æš¡æïŒèŠç
TelephonyManager.getAllCellInfo()ãgetCellLocation()ãgetNetworkOperator()ãgetServiceState()ãgetSignalStrength()ãlisten()ãrequestCellInfoUpdate()ãregisterTelephonyCallback()ç读åè·¯åŸïŒæ¯æ GSM/WCDMA/LTE/NR å°åºä¿¡æ¯ãMCC/MNC/LAC/CID/TAC/PCI/NCIãRSRP/dbm ä¿¡å·åŒºåºŠäžè¿è¥ååç§°æš¡æïŒåœäºç«¯æ°æ®çŒºå° LTE/NR æ¶ïŒäŒè¡¥å åæ LTE äž»å°åºä»¥å Œå®¹åªè¯»å 4G çæ£æµèœ¯ä»¶ã
-
GNSS Status 嫿ïŒHook ç³»ç»ç
GnssStatusç±»ïŒæš¡æå€èŸŸ 20+ é¢å æ¬ GPSãåæãGLONASS ç嫿ååžç©éµïŒæ³šå ¥çå®ç PRN æ è¯ãä¿¡åªæ¯ïŒCNRïŒã俯仰è§ãæ¹äœè§çïŒå¹¶æ£ç¡®æ±æ¥usedInFixïŒåäžå®äœè®¡ç®ïŒç¶æã -
NMEA è¯å¥æµåšææŒè£
ïŒå«æ
OnNmeaMessageListenerãæ ¹æ®åœåçæš¡æäœçœ®ãèªåè§ãéåºŠåæš¡æåºç嫿ïŒåšå åäžåšæç»è£ 笊ååœå®¶æ åçåå§\$GPGGA,\$GPRMC,\$GPGSA,\$GPGSVè¯å¥å¹¶è®¡ç®æ ¡éªåïŒChecksumïŒå®æ¶èŸåºïŒæ»¡è¶³å¯¹åºå± NMEA ä¿¡å·è¿è¡ç¡¬æ žæ ¡éªç Appã
- çå®ç©çè·¯çœæåïŒæ¯æç¹å¯¹ç¹æå€è·¯ç¹èªçº¿è®Ÿè®¡ãåŒå¯â䜿çšçå®è·¯çº¿âåïŒç³»ç»å°éè¿è·¯åŸæçŽ¢ç®æ³æåå®é é路蜮å»ïŒé²æ¢èœšè¿¹ç©¿å¢æèµ°çŽçº¿ã
- çº¢ç»¿ç¯æºèœè¯å«ïŒè·¯çº¿è§åæååïŒåŒæäŒèªåšè§£æè·¯æ®µäžççº¢ç»¿ç¯æ»æ°ïŒå¹¶éæºååè³æçº¿æè§å€ãåœæš¡æåšè¿è¡å°çº¢ç»¿ç¯ç¹æ¶ïŒäŒèªåšåé©» 15 ç§åéæ°å éïŒå®çŸæš¡æçå®ç蜊èŸè¡èœŠç¹åŸã
- æ¬æµ®çªææïŒæäŸæ¬æµ®çªèæææïŒå¯åšåå°çŽæ¥æåšåŸ®è°åæ ãæ¯ææ ¹æ®æææäŒžå¹ åºŠåš 0 ~ 10 m/s ä¹éŽå¹³æ»è¿æž¡ïŒå¹¶åšèœ¬åæ¶åºçšèªåè§é»å°Œã
æ¬é¡¹ç®éçš MVVM æ¶æïŒå¹¶å©çš Root æéè§é¿äº Android 11+ çæ²çå¯è§æ§é犻ïŒå®ç°é¶æéè·šè¿çšé çœ®äŒ éïŒ
âââââââââââââââââââââââââââââââââââââââââââââââ
â LocationSpoofer (宿䞻 App) â
â ââââââââââââ ââââââââââââââââââââââââââââ â
â â Dual-Map â â RouteStateMachine â â
â â(é«åŸ·/è°·æ)â â (IDLE/READY/RUN...) â â
â ââââââ¬ââââââ ââââââââââââââ¬ââââââââââââââ â
â â â â
â ââââââŒââââââââââââââââââââââŒââââââââââââââ â
â â ConfigManager â â
â â (å°é
眮åºååïŒéè¿ Root æéåå
¥ Temp) â â
â ââââââââââââââââââââ¬ââââââââââââââââââââââââ â
â ââââââââââââââââââââŒââââââââââââââââââââââ â
â â SpoofingService â â
â â (åå°éç¥æå¡ & 蜚迹计ç®åŒæ) â â
â ââââââââââââââââââââââââââââââââââââââââââ â
âââââââââââââââââââââââ¬ââââââââââââââââââââââââ
â (åå
¥é
眮 JSON)
âŒ
âââââââââââââââââââââââââââââ
â /data/local/tmp/ é
眮æä»¶ â
â (chmod 777 + chcon) â
âââââââââââââââ¬ââââââââââââââ
â (读åé
眮ïŒå®æ€çº¿çš 1000ms çŒå)
⌠LSPosed 泚å
¥
âââââââââââââââââââââââââââââââââââââââââââââââ
â ç®æ App è¿çš â
â ââââââââââââââââââââââââââââââââââââââââââ â
â â LocationHooker â â
â â ⢠Location API / Baidu / Tencent SDK â â
â â ⢠WiFi & èçªåºç« (2G-5G NR) ç¯å¢æ³šå
¥ â â
â â ⢠èç BLE æ«æè¿æ»€ â â
â â ⢠Anti-Mock & Xposed å æ æž
æŽåæ£æµ â â
â â ⢠GnssStatus 嫿 & NMEA æš¡æ â â
â ââââââââââââââââââââââââââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââ
Note
å
³äºè·šè¿çšéä¿¡ (IPC) ç讟计å³çïŒ
ç®æ App è¿çšåšæ²çå
è¿è¡æ¶ïŒç±äº Android 11+ å
å¯è§æ§å SELinux çç¥ïŒè¥äœ¿çš ContentProvider äŒå¯ŒèŽäž»çº¿çšå¡é¡¿å¹¶äº§ç Failed to find provider info é误ã
宿䞻 App åå© Root æéå°é
眮以 JSON æ ŒåŒåå
¥ /data/local/tmp/locationspoofer_config.jsonïŒå¹¶èµäº 777 æéå shell_data_file SELinux äžäžæã
ç®æ æ²çå
ç LocationHooker å¯åšäžäžªåå°å®æ€çº¿çšïŒæ¯ 1000ms åŒæ¥è¯»åæä»¶å¹¶ååšåš Volatile å
åäžã䞻线çšç Hook æ¹æ³è¯»åé
çœ®æ¶æ°žè¿æ¯ 0-IO å»¶è¿ïŒåœ»åºæç»äºå é¢ç¹è¯»åé
眮富èŽçç®æ App çé¢äž¢åž§äžå¡é¡¿ã
- ç³»ç»çæ¬ïŒAndroid 8.0 (API 26) å以äž
- Root 管çåšïŒå·²è·å Root æéïŒåŒºçæšèäœ¿çš KernelSU / APatchïŒäºŠæ¯æ Magiskã
- Xposed æ¡æ¶ïŒå·²å®è£ å¹¶æ¿æŽ» LSPosedïŒæèŸæ°çæ¬ç LSPosed æ¯çº¿çæ¬ïŒã
# å
鿬ä»åºå°æ¬å°
git clone https://github.com/your-username/LocationSpoofer.git
# çŒè¯ Debug çæ¬å¹¶çŽæ¥å®è£
è³è®Ÿå€
./gradlew installDebug- æåŒ KernelSU / Magisk / APatch 管çåšïŒæäº LocationSpoofer Root æéïŒçšäºåš
/data/local/tmpåå ¥å ±äº«é 眮 JSON æä»¶ïŒã - æåŒ LSPosed 管çåšïŒæŸå° LocationSpoofer æš¡åïŒå°å ¶åŸéå¯çšã
- åšæš¡åçäœçšåïŒScopeïŒäžïŒåŸééèŠè¿è¡å®äœäŒªè£ çç®æ åºçšïŒåŠåŸ®ä¿¡ãééãè¶ æåŠä¹ éçïŒã
- 区è¡åæ¢åŸéçç®æ AppïŒæé坿æºïŒä»¥äœ¿å ¶å 蜜 Xposed æé©é»èŸã
- å¯åš LocationSpooferïŒåšäž»é¡µå°åŸäžé¿ææå©çšæçŽ¢æ æå¯»æå®å°ç¹ã
- åšäžæ¹æœå±äžéæ©åŒå¯éèŠäŒªè£ ç项ç®ïŒäŒªé Wi-Fi æ°æ®ãæš¡æåºç«æ°æ®ãæš¡æèçæ°æ®ãåŒå¯èœ»åŸ®æåšã
- ç¹å»âå¯åšæš¡æâå³å¯æ¥ç®¡ç³»ç» GPSã
- ç¹å»äž»é¡µäžæ¹çâ路线è§åâè¿å ¥éç¹é¶æ®µïŒåšå°åŸäžäŸæ¬¡ç¹å»æ è®°å€äžªè·¯ç¹ã
- è®Ÿå®æ§å¶æš¡åŒäžºâ埪ç¯ïŒèªåšïŒâïŒå¹¶éæ©äœ çç§»åšæ¡£äœïŒæ¥è¡ãè·æ¥ãéªè¡ãé©Ÿé©¶ïŒæèªå®ä¹é床åŒïŒã
- å¯çšâ䜿çšçå®è·¯çº¿è§åâïŒåšèçœæ åµäžïŒç³»ç»äŒèªåšæåé«åŸ·/è°·æè·¯çœè¿è¡ç²Ÿåæ²çº¿æåïŒå¹¶é 眮红绿ç¯åççåŸ ïŒã
- ç¹å»âä¿å路线â以䟿äºäžæ¬¡çŽæ¥ä»â路线åºâäžäžé®å 蜜ã
- ç¹å»âåŒå§æš¡æâïŒæ€æ¶å¯éæ¶å¯å𿬿µ®çªïŒäœ¿çšâæåšïŒææïŒâéè¿æ¬æµ®çªææåšåå°ææ§å®æ¶åè¡æåéã
- åšç©çäžçäžæŽ»åšåïŒè¿å ¥ LocationSpoofer â讟眮â -> åŒå¯ âç¯å¢åŸè°±äžæ«è¡â ééæš¡åŒã
- æ€æ¶æš¡åäŒèªåšåšåå°é黿«æå¹¶ä¿ååœåäœçœ®å¯¹åºç Wi-Fi/åºç«/èçç¹åŸå°æ¬å° Room æ°æ®åºã
- éé宿åïŒå¯ä»¥éæ¶åšâç®¡çæ¬å°ééæ°æ®âäžçŒèŸééç¹å€æ³šãå逿 ææ°æ®ïŒæè 以 JSON æä»¶æ ŒåŒå¯Œåº å€ä»œãå ±äº«ç»ä»äººå¯Œå ¥ã
- äžæ¬¡åœäœ åšèæå®äœäžéæ©æš¡æè¯¥ç»çº¬åºŠæ¶ïŒç³»ç»å°éè¿ IDW æåŒç®æ³ å®çŸéç°ééå°çç©çä¿¡å·åºã
- åŠæäœ åç°åŸ®ä¿¡ãåŠä¹ éçåºçšå®äœäº§çäºå çŸç±³çåºå®æŒç§»ïŒ
- è¿å ¥ LocationSpoofer â讟眮â -> ç¹å» âé 眮åºçšåæ ç³»âã
- ç¹å»âæ·»å åºçšå åâïŒæŸå°äº§çåç§»çç®æ Appã
- å°å
¶åºå±çåæ æ åä¿®æ¹äžº
WGS-84(åç GPS åæ ) æBD-09(çŸåºŠå°åŸåæ )ïŒç³»ç»å°åš Hook å±èªåšèœ¬æ¢ïŒå°åŸå³å¯å®çŸéåã
- åŒåè¯èšïŒ100% Kotlin
- ç颿¡æ¶ïŒJetpack Compose & Material Design 3
- äŸèµæ³šå ¥ïŒKoin
- åºå±æ°æ®åºïŒRoom Database (SQLite)
- çœç»è¯·æ±ïŒOkHttp 3 & Kotlinx Serialization
- å°åŸç»ä»¶ïŒAMap 3DMap SDK (äžåœå€§é讟å€) / Google Maps & Places SDK (æµ·å€è®Ÿå€)
- Xposed æ¡æ¶ïŒLSPosed API 93 / libxposed (service æš¡åŒ)
æ¬çšåºä» äŸåŠä¹ ç ç©¶ãææ¯äº€æµä»¥åäžªäººåæ³åè§æµè¯ïŒåŠåŒåè å®äœæµè¯ã讟å€å Œå®¹æ§è°è¯ïŒäœ¿çšã 䜿çšè 请å¿å°æ¬å·¥å ·çšäºä»»äœè¿æ³è¿è§æè¿åçžå ³å¹³å°æå¡åè®®çæŽ»åšïŒå æ¬äœäžéäºèåæå¡ãçœç»èè¯äœåŒãåäžæ¬ºè¯çïŒã äœ¿çšæ¬æš¡åé æçä»»äœèŽŠå·å°çŠãæ°æ®äž¢å€±ãæ³åŸçº 纷æå ¶ä»çŽæ¥/éŽæ¥æå€±ïŒåç±äœ¿çšè èªè¡æ¿æ ïŒäœè äžå¯¹æ€æ¿æ ä»»äœèޣ任ã
æ¬é¡¹ç®åºäº GNU General Public License v3.0 åè®®åŒæºã
Copyright (C) 2026 SuseOAA