02.25 每個 Android 玩家都不可錯過的神器(一)

Come together, not the same.

選擇 Android 的同時,我們也選擇一種「可能性」。

今天厭倦了死板的默認字體我們可以更換,明天想在 MIUI 上試試顏值更高並且沒有廣告的索尼天氣,我們也可以想辦法突破 OEM 定製應用的機型限制……諸如 這類不斷湧現的「神器」在自定義這件事情上為 Android 插上了騰飛的翅膀,也讓「千機千面」成為了可能。

只是美麗向來也伴隨著風險:未獲得 Google「認證」的設備無法從 Play 應用商店下載安裝 Netflix,Google Pay、Pokémon Go 等應用不能在已 root 的設備上正常運行,改動過系統文件的 ROM 無法通過 OEM 渠道進行正常的 OTA 更新升級……

對 Android 生態而言,自定義和穩定性長久以來似乎都是「魚與熊掌」——直到 Magisk 的橫空出世。

Magisk 是如何工作的?

在一些用戶眼裡,Magisk 與另一款名為 Xposed 的神器有著高度的相似性,部分群體當中甚至還存在著「Magisk 框架」這樣的說法。

的確,二者的工作機制都是「攔截」。Xposed 通過劫持 Android 系統的 zygote 進程來加載自定義功能,這就像是半路截殺,在應用運行之前就已經將我們需要的自定義內容強加在了系統進程當中。

Magisk 則另闢蹊徑,通過掛載一個與系統文件相隔離的文件系統來加載自定義內容,為系統分區打開了一個通往平行世界的入口,所有改動在那個世界(Magisk 分區)裡發生,在必要的時候卻又可以被認為是(從系統分區的角度而言)沒有發生過。

每個 Android 玩家都不可錯過的神器(一)

Xposed/Magisk 原理示意圖

Magisk 的實現方式就像是一種魔法,當被掛載的 Magisk 分區被隱藏甚至被取消掛載時,原有系統分區的完整性絲毫未損,玩需要 root 驗證的遊戲、運行對設備認證狀態有要求的應用甚至進行需要驗證系統完整性的 OTA 更新都沒有任何問題

每個 Android 玩家都不可錯過的神器(一)

可通過 SafetyNet 認證並有針對性地隱藏 root

因此嚴格來說 Magisk 可以被看作是一種文件系統,這種文件系統通過巧妙的實現方式避開了對系統文件的直接修改,從穩定性上來看要優於以往任何一種系統框架,這也是當前它在玩機社區廣受認可和好評的原因所在。

它的魔力不止於 root

很多人對 Magisk 的初步認識可能是 root ——在 銷聲匿跡之後,它自然而然就成為了當前 Android 社區用來獲取 root 權限的主流方式。

不過 Magisk 特殊的運作機制還賦予了它相較於 Android 平臺其他定製工具而言獨一無二的特質——systemless。這種 systemless 特質讓 Magisk 擁有了獲取 root 權限之外的諸多優勢:

一方面,得益於獨特的掛載機制,使用 Magisk 時我們可以有針對性地隱藏 root,甚至暫時隱藏 Magisk 本身

如此一來,不僅「root 模式下使用特定應用」成為了可能,就連無縫 OTA 更新這種「魔改黨」們想都不敢想的事也變得不再遙遠。在 Magisk Manager 應用的設置中,我們甚至還可以用隨機包名對 Magisk 進行重新安裝,讓它從其他應用的眼皮底下徹底消失——多麼具有魔法特質的高明手段!

每個 Android 玩家都不可錯過的神器(一)

另一方面,掛載系統的存在,也讓 Magisk 擁有了多樣的模塊化生態系統。

既然用了「開外掛」的實現方式,那不妨就多掛載一些額外的東西,字體、音效、驅動……甚至 Xposed 本身。Magisk 提供了一個獨立於系統分區以外的、可以隨時隱形的「沙盒」,那自然不能將其才華禁錮於 root 這一件事上。在 Magisk 的模塊倉庫裡,我們可以找到各式各樣的模塊(modules)來滿足自己的定製化需求,藉助這些模塊,我們在 root 之後能做的事情其實也還有很多。

在這裡的討論語境下,Magisk 如何給人們留下「框架」這一認知誤區的原因就浮出水面了。只是功能方面好不遜色的 Magisk,穩定性和上手門檻對大部分用戶來說都更加友好

如何安裝 Magisk

作為一套複雜的文件系統,Magisk 的安裝步驟卻是十分簡單。

在電腦上配置好 並解開 Bootloader 鎖後,如果你的設備有來自 的官方支持,只需在打開 USB 調試後將手機與電腦相連,然後打開電腦端的命令行窗口:

  1. 執行 adb reboot bootloader 進入 Bootloader 界面
  2. 執行 fastboot boot TWRP.img 進入臨時 TWRP
  3. 在 TWRP 中刷入你下載的 Magisk 安裝包

沒有官方 TWRP 支持的設備安裝 Magisk 的步驟要稍微複雜一些:

  1. 從你的刷機包中提取當前固件的 boot.img 文件,將它傳入到安裝了 Magisk Manager 的手機中
  2. 進入 Magisk Manager —— 安裝(install)—— install —— 修補 boot 鏡像文件
  3. 然後選擇傳入的 boot.img 文件進行生成,並將生成後的 Patchedboot.img (姑且這麼命名) 傳輸到電腦上。
每個 Android 玩家都不可錯過的神器(一)

隨後我們使用 Magisk 應用對 boot.img 進行重新打包:

  1. 打開命令行窗口
  2. 執行 adb reboot bootloader 進入 Bootloader 界面
  3. 執行 fastboot boot Patchedboot.img 來加載生成後的 boot 分區文件獲取臨時 root

此時進入系統,你會發現你已經成功安裝了 Magisk,但這還不夠,我們還得進入 Magisk Manager,選擇安裝(install)——install——Direct Install(直接安裝)才能將臨時 root 轉換為永久 root。

每個 Android 玩家都不可錯過的神器(一)

安裝完 Magisk 後,我們就可以通過 TWRP 或者 Magisk Manager 刷入獲取到的模塊了。模塊的獲取方式可以是 Magisk Manager 自帶的模塊倉庫,也可以是其他第三方論壇(如酷安、XDA 等)。

卸載 Magisk 最為徹底的方式就是在 Magisk Manager 中點擊「卸載」、「完全卸載」,應用會自動下載刷完 uninstall.zip 卸載包、自動卸載它自己、自動重啟。如果你無法進入系統,在 TWRP 中手動刷入 uninstall.zip 卸載包即可。

至於哪些模塊值得刷,就是完全看個人需求了。我們會在後續文章為大家推薦一些基礎的必備模塊,也歡迎 Magisk 的老玩家們向我們投稿分享。

本文由 @ 和 @ 聯合撰寫。


分享到:


相關文章: