Magisk是一種systemless的Android Root方案,原作者是topjohnwu,於2016年推出。
它取代了以往SuperSU修改Android /system來塞入su的Root方式,這樣做可以確保不損壞系統檔案完整性,使得手機在Root之後仍有接收OTA更新的能力。

Magisk透過修改Android手機固有的boot.img,在Android系統正式開機前,修改Linux核心的ramdisk,注入自己的初始化程式magiskinit,並掛載一個虛擬檔案系統,將su掛載進去。
Magisk提供一套模組系統,讓開發者可以systemless的修改系統檔案,達到想要的自定義效果。
Magisk還提供Zygisk服務,給注入Zygote修改APP行為的APP提供界面,讓LSPosed模組能夠順利地在新版本Android運作。
雖然每支Android手機解鎖Bootloader流程不同,不過根據Ivon的經驗,安裝Magisk的流程是大同小異的。
測試裝置:Google Pixel 6a。系統版本Android 16。Magisk版本v30.6
Magisk、Kitsune Magisk、Magisk Alpha差異#
Magisk最初作為一個全新Root方案,本身是有隱藏Root偵測的能力的。可是在Magisk原作者topjohnwu去Google上班之後,為了避免窩裡反,移除了隱藏Root偵測的Magisk Hide功能,因此Magisk本體非常容易被反Root程式偵測到。
Magisk現在仍一直有在更新,但幾乎沒有加入任何隱藏Root的機制。變成要靠開源社群各顯神通,因此有了許多分支版。
Kitsune Magisk以及Magisk Alpha是兩個比較受歡迎的分支版本,它將移除的Magisk Hide功能加了回來,並新增了一些反Root偵測的措施,讓使用者不用裝一堆模組去隱藏Root。不過因為更新進度較慢,與原版Magisk會有一些相容性問題。
如果你不在意隱藏Root,那就用原版Magisk。這也就是本文Ivon所使用的版本。
1. Magisk系統需求#
你的裝置必須支援解鎖Bootloader才能刷Magisk。通常為了安全,解鎖Bootloader後手機會自動清除一次手機資料。
以Google Pixel為例,解鎖Bootloader的方法,就是到開發人員選項 → 勾選允許OEM解鎖,然後手機重啟到Fastboot模式,在電腦用ADB工具輸入fastboot flashing unlock即可解鎖。
2. Magisk安裝流程#
Magisk是自由軟體,原始碼位於Github。
刷Magisk的方式有很多種,有的會使用TWRP這類第三方Recovery刷入,它可以操作手機上的各個分區。也有的是直接修補boot.img。考慮到第三方Recovery並不是所有機型都支援,Ivon偏好用修補boot.img的方式來安裝Magisk。
如何取得
boot.img?Pixel手機的boot.img可以從原廠映像檔解出。較新的裝置可能要使用init_boot.img。將
boot.img傳送到手機。到Github Releases,下載Magisk Manager
開啟Magisk Manager,已安裝應該會顯示「無」

點安裝,選取boot.img,開始修補

將修補後的檔案傳送到電腦
安裝ADB工具,重新開機進入Fastboot
adb reboot bootloader
- 刷入
fastboot flash boot boot.img
- 重開機
fastboot reboot
- 重開機後,Magisk Manager應會顯示「已安裝」。
3. 管理Magisk的Root權限#
Magisk開機後會自動啟用Root權限。
不過有APP需要使用Root的時候,Magisk就會跳出授權視窗,需要使用者授權一次後才可以使用。在那之後,APP就會自動使用Root權限執行,不用再次確認。

Magisk安裝模組是透過.zip方式刷入,然後重開機套用。如果裝到了不相容的模組可能會卡開機,這個時候,請將手機重開機進入fastboot,然後刷入原廠的boot.img映像檔解決。
