快轉到主要內容

Android手機Magisk防Root偵測 + 通過Play Integrity教學

· 民國114年乙巳年
·
切換繁體/簡體
分類   智慧型手機 Root與刷機
標籤   Magisk KernelSU
目錄

本文Ivon解說防止APP檢測到Android Root環境的最新手段,並附上通過Play Integrity的方法。不定時更新。

0. Root環境帶來的問題
#

安裝Magisk之後,便會遇到APP偵測Root不給使用,還有無法通過Play Integrity(SafetyNet後繼者)的問題。這多半是開發者出於安全性考量所設下的限制。

所謂「偵測Root環境」可能包含以下項目:

  1. 讀取APP列表,偵測Magisk Manager或KernelSU Manager
  2. Zygisk
  3. Play Integrity或SafetyNet狀態,後者現在已經棄用了,所以APP會看Play Integrity有沒有達到MEETS_DEVICE_INTEGRITYMEETS_STRONG_INTEGRITY等級才給使用
  4. TWRP資料夾
  5. 開發人員模式或ADB啟用狀態
  6. Bootloader解鎖狀態

不論各路好手推出防止偵測的手段,總有APP能偵測到,從這點也可以看出銀行對資安的重視。

像玉山銀行、行動郵局、花旗銀行、台新銀行這類跟金融有關的APP,就處於攻防最激烈的階段,常常一更新完後,Magisk隱藏Root就失效,接著APP閃退。

Google Play商店一偵測到Root環境也會不給安裝特定APP,顯示「這個應用程式不支援你的裝置」。

自從Magisk Hide從官方Magisk移除之後,使用者就得用其他手段規避Root偵測。

如果不想因為少數APP犧牲整個Root環境,就得使一些手段防止Root偵測。應該都有方式繞過,除非APP連Bootloader有無解鎖都要管,那就很難解決了。

1. 最乾脆的解決方法:不要再用Magisk
#

與其用Magisk加上一堆有的沒的隱藏Root的模組,或者用其他Magisk的奇怪fork,不如改用KernelSU或者APatch這類Linux核心的Root方案,能夠更好的隱藏Root,並且增加通過Play Integrity的機會。

Ivon必須老實說,這二個方案真的比使用Magisk隱藏Root簡化許多。

KernelSU有自己的模組框架,APatch則是同時相容Magisk與KernelSU的模組。隨著這些社群成熟,許多Magisk模組的作者也把模組移植到這些嶄新的方案上了。

2. 使用Kitsune Magisk隱藏Root + 通過Play Integrity
#

Kitsune Magisk,舊稱Magisk Delta,是官方Magisk的修改版(fork),由HuskyDG開發,把Magisk Hide的功能加了回來,並加入一些試驗性程式碼,專門用於躲避Root偵測。

進一步說,Kitsune Magisk可以針對特定APP取消掛載模組,甚或只給特定APP掛載模組。這樣銀行APP就很難偵測到Root環境啦,也不需要Shamiko和Xposed模組介入了。

Kitsune Magisk的原始碼位於Github。跟官方版Magisk一樣,Kitsune Magisk可以用修補boot.img的方式安裝。這裡則是從現有Magisk切換至Kitsune Magisk。官方Magisk與Kitsune Magisk二者APP可以共存,不過一次只能使用其中一方的版本。

  1. 您應該已經裝有Magisk Manager,在設定裡面啟用「隱藏Magisk」,將Magisk Manager重新打包,再新增捷徑到手機桌面

  2. 如果有安裝Shamiko模組,請在Magisk Manager選單將其停用或解除安裝。

  3. Github下載Kitsune Magisk的app-release.apk

  4. 安裝後開啟,授予Root權限,點選修復執行環境

  5. 點選直接安裝,重開機。

  6. 重開機後就不要再使用官方版的Magisk Manager了,請改點選Kitsune Magisk的圖示

  7. 點選右上角設定,勾選啟用Zygisk,並同樣點選「隱藏Magisk」,將Kitsune Magisk重新打包。

  8. 這樣您的桌面應該就會有二個Magisk的APP了,現在Root管理的權限已移交給Kitsune Magisk。如果想切換回官方版Magisk:開啟官方版Magisk Manager,取得Root權限,點選修復執行環境,重新安裝Magisk。

  9. 然後設定要防止Root偵測的APP,關閉ADB偵錯,或是將手機開發人員選項整個關掉(有的APP真的會偵測這個)

  10. 開啟Kitsune Magisk,勾選Zygisk和MagiskHide

  11. 點選Configure MagiskHide,選取要防止root偵測的APP,重開機,完成,不需設定其他模組了。如果要做得更絕一點:點選Enforce SuList,只給需要的APP掛載Magisk模組。注意此功能可能會導致許多模組失效。

  12. 最後設定通過Play Integrity檢測的方法。有時Kitsune Magisk還不夠,針對需要Play Integrity(取代SafetyNet)的APP,得另外安裝模組。我們將用開源的SPIC和Google Play作為檢測Play Integrity是否有通過的證明。

  13. 在Magisk Delta勾選「啟用Zygisk」,再刷入PlayIntegrityFix模組。PlayIntegrityFix對應Google最新的Play Integrity API,可取代Universal SafetyNet fix。

  14. 將SPIC加入至Kitsune Magisk的Magisk Hide列表,重開機。

  15. 再開啟SPIC查看Play Integrity狀態。有了MEETS_DEVICE_INTEGRITY等級的話,對大多數APP來說已經足夠。

  16. 如果Google Play還是偵測到手機有Root,請參考XDA分享的自訂指紋方法,蒐集舊手機的指紋(fingerprint),開啟檔案管理員,編輯/data/adb/pif.json檔案,將指紋填進去,Play Integrity API模組就會自動修改指紋。

其他可參考的防Root偵測方案:Reddit的r/Magisk板是討論Root相關問題的好地方。我把隱藏Magisk Root狀態的替代方案列在這裡,有些方案會互相衝突:

  • Magisk Alpha:跟Kitsune Magisk類似作用的Magisk分支版本,會追蹤使用者,封閉原始碼。
  • Hide-My-Applist:防止APP讀取應用程式列表,需搭配LSPosed Zygisk使用。
  • MagiskHide Props Config:修改props數值的工具。
  • Shamiko:依賴Zygisk運作的Maigsk Hide。

相關文章

2025年Magisk推薦安裝的模組,提升手機效能、擋廣告、自定義主題
分類   智慧型手機 Root與刷機
標籤   Magisk KernelSU
APatch Root方案安裝教學,相容KernelSU與Magisk模組,繞過Play Integrity
分類   智慧型手機 Root與刷機
標籤   Linux Kernel Magisk KernelSU
開源「MRepo」Magisk模組管理器,取代Androidacy
分類   智慧型手機 Root與刷機
標籤   Magisk KernelSU

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。