2017年,SuperSU 的主要開發者 Chainfire 宣布停止對 SuperSU 的進一步開發和維護,並將項目移交給中國公司 Coding Code Mobile Technology LLC.(CCMT)。此舉引發了社區對項目未來和安全性的廣泛擔憂。Chainfire 退出後,SuperSU 的開發和更新速度顯著放緩,無法跟上Android系統的快速迭代和變化。
此時,由 John Wu 維護的開源專案 topjohnwu/Magisk 在開發者社區中迅速獲得了廣泛支持和推廣。最顯著的特點是 systemless root,這種模式允許使用者在不修改系統分區的情況下取得 root 權限,從而減少了系統更新時的兼容性問題。此外,Magisk-Module-Repo 允許開發者來開發和分享模組,添加或改變 Android 系統的功能,而不需要修改底層系統文件。
距離上次撰寫安裝記錄文章「Magisk v20.4 – The Magic Mask for Android 簡易安裝流程」已有一段時間,在軟體發展過程中,變動最大的版本莫過於 v24.0 (Jan 26, 2022)。這個版本不僅移除了 MagiskHide 功能,還終止了對 Magisk-Module-Repo 的維護。由於 Android 安全機制的不斷加強,維護和更新 MagiskHide 變得越來越困難且不具可持續性,而 Magisk-Module-Repo 平台依賴 GitHub 進行分享和更新,但其管理和維護成本日益增加。上述這兩項功能變更使開發者能夠將更多資源和注意力集中在提升核心功能與新特性 Zygisk 的發展上。
時至今日,Magisk 依然是多數使用者取得 Android 手機 root 權限的首選工具,目前的最新版本也來到 v27.0 (Feb 3, 2024),下面就是個人安裝記錄與分享。
基本需求
- 在 v26.0 (Apr 6, 2023) 之後,只支援 Android 6 或以上版本
- 如果有要安裝 LSPosed Framework,Android 需為 8.1 或以上版本(由於 LSPosed 好陣子沒更新,建議可考慮使用 LSPosed_mod)
- 請確定手機已經解鎖,並於啟用開發人員選項後,開啟「 OEM 解鎖」,允許解除鎖定開機載入器
- 手機須移除任何形式的 root 權限,若是選用第三方韌體也務必選擇無內建或可移除 root 權限
前置作業
下載 Android SDK Platform-Tools
本文的操作方式,會使用到 adb 與 fastboot 的,所以請先到安卓開發者網站下載最新版本的 SDK Platform Tools,並解壓縮至任意資料夾
安裝最新版本 Magisk
在手機上開啟 Github 專案 topjohnwu/Magisk 來下載最新版本 APK 來安裝
在安裝完畢後,開啟 Magisk 檢視手機在啟動分割區是否包含 Ramdisk
- Ramdisk (是) : 後續可用 Magisk 去處理 boot/init_boot.img (以 Pixel 7 之後的版本為例,就是使用 init_boot.img)
- Ramdisk (否) : 後續需用 Magisk 去處理 recovery.img
提取啟動映像檔
boot/init_boot/recovery.img 等檔案,會需要從目前手機版本對應的韌體包去提取對應檔案,以目前手邊的 Pixel 3 XL 為例,目前使用韌體版本為 12.0.0 (SP1A.210812.016.C1),那這邊就是從 Factory Images for Nexus and Pixel Devices 下載 crosshatch-sp1a.210812.016.c1-factory-67ea87fc.zip
開啟 crosshatch-sp1a.210812.016.c1-factory-67ea87fc.zip 壓縮檔並找到 image-crosshatch-sp1a.210812.016.c1.zip
開啟 image-crosshatch-sp1a.210812.016.c1.zip 壓縮檔後,即可找到 boot.img
將該檔案解壓出來並上傳至手機下載(Download)資料夾
安裝流程(刷入修補檔)
修補啟動映像檔
開啟 Magisk 點選安裝,點擊「選擇並修補檔案」
選取從韌體包中提取並上傳至手機的 boot.img 後,點擊「開始執行」
修補完畢後,在手機下載資料夾處,會多出一個修補完畢的啟動映像檔,檔名格式為 magisk_patched_[隨機字串].img
點擊 magisk_patched_RU4TQ.img 查看「檔案資訊」,不熟悉的使用者可以將檔案路徑記錄下來
刷入引導映像(Patched boot/init_boot/recovery.img)
執行此步驟之前,請將手機開機,待完成後,確認「開發人員選項」下的「 USB 偵錯」已經啟用。
- 開啟「命令提示字元」,並切換到先前下載解壓縮後的 platform-tools 資料夾
- 將手機與電腦透過數據線進行連接後,輸入 adb devices 指令,確認手機與電腦可透過 adb 模式連線 (這時裝置管理員下的 Android Device 應該會顯示 Android Composite ADB Interface)
- 輸入 adb pull /storage/emulated/0/Download/magisk_patched-27000_RU4tQ.img 指令,將手機上 Magisk 修補過的 boot.img 下載至 platform-tools 資料夾
- 輸入 adb reboot bootloader 指令,將手機切換至 fastboot 模式
- 輸入 fastboot devices 指令,確認手機與電腦可透過 fastboot 模式連線 (這時裝置管理員下的 Android Device 應該會顯示 Android Bootloader Interface)
- 輸入 fastboot flash boot magisk_patched-27000_RU4tQ.img 指令,將修補過的映像檔刷入手機
- 輸入 fastboot reboot 指令,將手機重新開機
刷入的分割區,取決使用者手機 patch 的映像檔,指令也要跟著做相應的調整
1. fastboot flash boot magisk_patched_[隨機字串].img
2. fastboot flash init_boot magisk_patched_[隨機字串].img
3. fastboot flash recovery magisk_patched_[隨機字串].img
Magisk 簡易操作說明
確認 Magisk 正確安裝
手機開機完畢,執行 Magisk 若跳出「需要修復執行環境」,請按下「確認」讓程式額外下載安裝包來進行修復,修復完成後,手機將自動重啟
驗證裝置 root 權限
手機重啟後開啟 Magisk ,顯示已安裝的版本為 27.0 (27000),要驗證是否順利取得 root 權限的方式,就是到 Google Play 下載 Root Checker
執行 Root Checker 的「驗證Root」功能,並「授予」超級使用者要求,即可確認裝置是否擁有root權限
隱藏 Magisk
「隱藏 Magisk」 是為了避免某些應用程式檢測到設備有安裝 Magisk,特別是銀行、支付、遊戲等應用程式,會去檢查裝置安裝的套件名稱是不是有 com.topjohnwu.magisk 等關鍵字眼。
開啟 Magisk 並點擊右上角齒輪圖是進入設定選單,找到「隱藏 Magisk」並點擊,這時會跳出重新安裝的畫面
使用者可以自行重新命名 Magisk 的名稱,這邊用 L33t 的方式,將新軟體名稱取名為 M4g15k,如果怕重新建立的軟體圖式無法辨識,可以在主螢幕新增捷徑
點擊 M4g15k 的圖示開啟,這邊會看到原本的套件名稱,已從 com.topjohnwu.magisk 變成不帶任何是別字串的 yqwmeqtoufm.h
啟用 Zygisk
開啟 Magisk 並點擊右上角齒輪圖是進入設定選單,找到「Zygisk」並點擊
這邊區要重新啟動裝置來套用設定邊更,完成後開啟 Magisk 的 Zygisk 顯示為「是」
如何使用強制黑名單
強制黑名單的主要用途是阻止特定應用程式(尤其是銀行、支付和一些遊戲)檢測到設備已經 root 或正在使用 Magisk,只是隱藏永遠市場無止盡的攻防戰,原本適用的方式,或許在更版後就會失效。
同樣進入 Magisk 設定畫面啟用「強制黑名單」,並打開「設定黑名單」來選取指定程式,這邊以 Root Checker Basic 為例,在完成設定後再去執行「驗證Root」,就會看到顯示 Root access is not installed on this device
常用模組
以下為個人常用的模組列表,提供各位參考
- Play Integrity Fix : 繞過 Play Integrity (SafetyNet) 檢查機制
- Zygisk Assistant : 強化 Root 隱藏機制
解除安裝
按下操作畫面的「解除安裝 Magisk」後,選擇「完整解除安裝」,包含已安裝的模組都會被停用並移除
運行完所有反安裝程序後,手機會自行重開機
小結
上述記錄,主要仍以通用裝置流程為主軸,包含如果要去 Patch Recovery 或者對象為三星手機,由於手邊並無相關設備可供測試或使用,記錄不夠完善之處,可參考 Github 專案頁面相關說明文件。
參考網站
topjohnwu/Magisk: The Magic Mask for Android
Installation Instruction
Magisk Documentation