使用 Magisk 實現寶可夢虛擬定位飛人設定教學 (2019/05)

/ 分類: , / 35 則回應

標籤: , , , ,

最後更新日期

Android 6.0/7.0 在 March 2017 的 Security Patch 修正了 GPS Spoofing 的漏洞,如想要繼續使用向是 Fly GPS 這類大家熟悉的虛擬定位輔助軟體,為有降版才能繼續正確運作,不過手機推出時間推出不同,不見得會有舊版的韌體可以使用,甚至出廠就已經是 Android 8.0,想要在手機上配合虛擬定位/虛擬搖桿來玩寶可夢,使用 Magisk 是目前唯一可行解法,不過由於 Magisk 本身對於手機韌體還是有相容性的問題,虛擬定位/搖桿軟體亦存在相同狀況,文中僅以記錄個人手機操作流程,並無法保證任何手機都能順暢無誤。

本文記錄步驟為個人經驗分享,僅提供參考,操作前請先行備份重要資料,如果操作後造成手機無法正常運作或使用者資料遺失,不負擔相關責任

操作需求

手機需求

  • 手機韌體版本須為 Android 5.0+ ,並已經安裝 Magisk 17.1+,同時也順利通過 Magisk Manager 內建的 SafetyNet 檢查
  • 尚未安裝 Magisk 的使用者,可參考「[教學] Magisk v19.2 簡易安裝流程」一文

電腦需求

測試環境

  • 手機韌體版本 : LineageOS 8.1.0/9.0.0
  • 寶可夢遊戲版本 : 0.143.2

前置作業

啟用開發人員選項/USB 偵錯

  1. 於開機後,進入 「設定」 / 「系統」 / 「關於手機」 的畫面後,將畫面滑至最底,連續點擊 「版本號碼」 七次後啟用開發人員選項
  2. 進入 「設定」 / 「系統」 / 「開發人員選項」,找到 「USB 偵錯」 並啟用
  3. 這時透過 USB 線材連接電腦與手機,此時手機會跳出 「電腦的 RSA 金鑰」,勾選 「一律允許透過這台電腦進行」 後按下 「確定」

驗證 ADB Interface 驅動狀態

  1. 下載 SDK Platform Tools 並解壓縮到 C:\platform-tools
  2. 確認手機已經啟用 「USB 偵錯」 並與電腦連接後,開啟命令提示字元,輸入 cd C:\platform-tools
  3. 輸入 adb devices 確認手機已透過 ADB Interface 與電腦連接並正確偵測
  • 如果 device 顯示 unauthorized,代表並未允許目前連接電腦所使用的 RSA 金鑰,請確認在 「USB 偵錯」 啟用的情況下,重新連接手機與電腦並加已授權
  • 如果 ADB/Bootloader Interface 並未正常驅動,在裝置管理員也顯示驚嘆號,請參考 「如何正確安裝 Google 通用驅動程式」 一文

隱藏 Magisk root 權限

進入 Magisk Manager 選單點選 「Magisk Hide」 ,對寶可夢隱藏 root 權限

隱藏 Magisk Manager 安裝足跡

進入 Magisk Manager 選單點選「設置」,按下「隱藏 Magisk Manager」

隱藏會花上一點時間,出現「還原 Magisk Manager」選項時,就代表完成隱藏

製作手機專屬 Magisk Smali Patcher 模組與安裝

使用 Smali Patcher 的主要目的,是擷取手機本身所使用包含 classes.dex 與 services.jar 等檔案,在加以修改後產生 Magisk 模組安裝檔,當手機套用後即可以隱藏使用虛擬定位的狀態,藉此規避軟體會去檢查是否使用虛擬定位的情形,操作流程如下:

  1. 請先到 [MODULE] Smali Patcher 4.0 下載 SmaliPatcher-0.0.4.9-fOmey@XDA.zip,解壓縮到任意資料夾後會得到 SmaliPatcher.exe 並執行,初次執行會自動從網路上下載必備檔案
  2. 確認 Mock locations 與 Signature spoofing 都都有勾選
  3. 連線手機與電腦後,確認 ADB Interface 有正常抓取到目的手機後按下 PATCH JAR

看到完成訊息後,產生的 Magisk 模組會與 SmaliPatcher.exe 在相同資料夾下方,檔名會是 SmaliPatcherModule-0.0.4.9-fOmey@XDA.zip,這時請將產生的壓縮檔上傳至手機中

開啟 Magisk Manager 後進入模組選單,點擊下方 + 圓形圖示,選取先前上傳到手機的 SmaliPatcherModule-0.0.4.0-fOmey@XDA.zip 進行安裝

安裝完畢後按下重啟,重新進入 Magisk Manager 中的模組清單,即可看到 Smali Patcher 已經安裝完成並啟用

正確安裝虛擬定位/搖桿軟體

儘管 Smali Patcher 可以提供隱匿使用虛擬定位的狀態,不過在安裝虛擬定位軟體最重要的步驟,就是配合使用 Magisk 模組 App Systemizer 來將安裝好軟體本身轉為手機系統軟體,不過由於 Google Play 上各類虛擬定位軟體種類繁多,對於手機的支援性也不盡相同,是否適用仍須各位看官自行嘗試,下文將以 假定位 (偽裝GPS位置) 這套 App 為範例:

App Systemizer 所需軟體與安裝教學,請參考「[教學] 如何使用 Magisk 模組將應用程式轉為系統 App」一文,就不贅述

  1. 開啟 Termux 後輸入 su 來取得 root 權限
  2. 輸入 systemize 啟用 App Systemizer (Terminal)
  3. 輸入 1 來掃描目前已安裝 Apps

  1. 輸入 1 選擇 Fake Location (此處名稱會依 App 定義而有不同)
  2. 輸入 2 將 com.lkr.fakelocation 安裝至手機 /system/priv-app
  3. 完成後將手機重新開機來套用

  1. 手機重開完畢後,進入 「設定」 / 「系統」 / 「開發人員選項」
  2. 找到 「選取模擬位置應用程式」 並選取 假定位 (偽裝GPS位置)

啟用軟體定位位置後,開啟遊戲之後就會定位在指定位置,若要關閉虛擬定位,務必在跳出遊戲後再執行,避免瞬間移動去離過大造成系統判斷為可疑行為

注意事項

  • 安裝過程中,請務必將手機檔案下載項目中,有 Magisk 字眼的檔案都移除,避免寶可夢本身去掃描資料夾底下的檔案造成遊戲無法正常登入
  • 如要嘗試不同的虛擬定位軟體,建議務必使用 App Systemizer 先將原本已經轉為手機系統軟體的 App 先還原(需先重開機)再移除(重開機後),完成後再安裝其他虛擬定位軟體

一般留言 (35)

  1. 版主您好
    我在最後的SmaliPatcher步驟出現了以下的訊息
    !!! ERROR: Mock location class not found.
    拜託版主請問這個問題是否有解呢?

  2. 請問OTA以後還需要再做一次Magisk Smali Patcher嗎?

  3. 你好 當我想systemizing時 出現/system/xbin/systemize[580] awk: not found tr: write: Broken pipe
    Package doesnt exit!

  4. 如果 Smali Patcher 生成時出現 “Target JAR must be deodexed” 是什麼意思?

  5. 請問我的手機是sharp aquos s2要怎麼進入”工程模式”

  6. 請問開遊戲後一直顯示”無法取得GPS訊號(11)”是為什麼呢??

  7. 測試後發現只要裝上生成的Magisk模組,就能用了,如果怕定位飄來飄去的話,可以停用系統的fused Location,但關機之前要啟用回來,不然會無限重啟,因為這樣還原兩次才測試出是這個原因😅

  8. 紅米6 可以使用這種方式嗎?安卓8.1

    • 分享文章主要為個人使用經驗流程分享,礙與手邊並無回響中所提到的手機型號,建議可嘗試先從手機是否能夠安裝 Magisk 下手

    • 可以用嗎? 我也是紅米6的 或是你有其他方式請跟我說

      • 並無嘗試過對應手機,這個部分只能自行嘗試看看文中方式是否可行了 安卓系統太分化了 文中分享方式只是基本原則 謝謝

      • 可以飛喔! 只是買GPS阻斷器不會飄~今天又重新灌一次,發現Magisk 1.9版本 一直卡認證 CTSPROFILE:TURE 這個一直過不了,後來發現裝上 手機SIM卡後 認證就過了~~ 好無言

  9. 請問WIN10/8.1系統下無法辨識Framework版本有解嗎?
    WINDOWS官方的檢測說已安裝更新版,但是SmaliPatcher顯示無安裝

  10. SmaliPatcher生成不了

發表迴響