快轉到主要內容

Magisk通用安裝教學,systemless的Android手機Root方案

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

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 Hide功能加了回來,並新增了一些反Root偵測的措施,讓使用者不用裝一堆模組去隱藏Root。不過因為更新進度較慢,與原版Magisk會有一些相容性問題。目前,Kitsune Magisk已經停止維護。

Magisk Alpha是另外一個專為隱藏Root設計的分支版本,不公開原始碼,會收集使用者資料。

如果你不在意隱藏Root,那就用原版Magisk。這也就是本文Ivon所使用的版本。

1. Magisk系統需求
#

你的裝置必須支援解鎖Bootloader才能刷Magisk。

通常為了安全,解鎖Bootloader後手機會自動清除一次手機資料。

每個手機廠牌解鎖Bootloader的方式不一樣,有的甚至根本不給你解!請自行參閱官方網站資料。

以Google Pixel為例,解鎖Bootloader的方法都寫在官網了,就是到開發人員選項 → 勾選允許OEM解鎖,然後手機重啟到Fastboot模式,在電腦用ADB工具輸入fastboot flashing unlock即可解鎖。

2. Magisk通用安裝流程
#

Magisk是自由軟體,原始碼位於Github

一般來說,Magisk安裝步驟為: 解鎖手機Bootloader → 刷入Magisk

上一節我們已經介紹了解鎖Bootloader的方式。接下來要刷入Magisk,我們要讓它修改系統一開始開機的時後會初始化的檔案,也就是boot分區。

刷Magisk的方式有很多種,有的會使用TWRP這類第三方Recovery刷入,它可以操作手機上的各個分區,包含boot分區。

也有的是手動修補boot.img。考慮到並不是所有機型都支援第三方Recovery,Ivon偏好用手動修補boot.img的方式來安裝Magisk。大部分的Android手機應該都能用這種方式刷Magisk。

  1. 如何取得boot.img呢?Pixel手機的boot.img可以從原廠映像檔解出。較新的裝置可能要使用init_boot.img

  2. boot.img傳送到手機。

  3. Github Releases,下載Magisk Manager

  4. 開啟Magisk Manager,已安裝應該會顯示「無」

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

  6. 將修補後的boot.img檔案傳送到電腦

  7. 安裝ADB工具,重新開機進入Fastboot

adb reboot bootloader
  1. 刷入boot.img
fastboot flash boot boot.img
  1. 重開機
fastboot reboot
  1. 重開機後,Magisk Manager應會顯示「已安裝」。

3. 管理Magisk的Root權限
#

Magisk開機後會自動啟用Root權限。

不過有APP需要使用Root的時候,Magisk就會跳出授權視窗,需要使用者授權一次後才可以使用。在那之後,APP就會自動使用Root權限執行,不用再次確認。

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

4. 隱藏Root & 通過Play Integrity
#

參見隱藏Root + 通過Play Integrity

參考資料
#

相關文章

KernelSU安裝教學 ~ 基於Linux核心的Android Root方案,隱藏Root能力強
分類   智慧型手機 Root與刷機
標籤   Linux Kernel Magisk KernelSU
Android手機Magisk防Root偵測 + 通過Play Integrity教學
分類   智慧型手機 Root與刷機
標籤   Magisk KernelSU Xposed
APatch Root方案安裝教學,相容KernelSU與Magisk模組,繞過Play Integrity
分類   智慧型手機 Root與刷機
標籤   APatch Linux Kernel Magisk KernelSU

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

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

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