Come together, not the same.
選擇 Android 的同時,我們也選擇一種「可能性」。
今天厭倦了死闆的默認字體我們可以更換,明天想在 MIUI 上試試顔值更高并且沒有廣告的索尼天氣,我們也可以想辦法突破 OEM 定制應用的機型限制……諸如 Xposed 這類不斷湧現的「神器」在自定義這件事情上為 Android 插上了騰飛的翅膀,也讓「千機千面」成為了可能。
隻是美麗向來也伴随着風險:未獲得 Google「認證」的設備無法從 Play 應用商店下載安裝 Netflix,Google Pay、Pokémon Go 等應用不能在已 root 的設備上正常運行,改動過系統文件的 ROM 無法通過 OEM 渠道進行正常的 OTA 更新升級……
對 Android 生态而言,自定義和穩定性長久以來似乎都是「魚與熊掌」——直到 Magisk 的橫空出世。
Magisk 是如何工作的?在一些用戶眼裡,Magisk 與另一款名為 Xposed 的神器有着高度的相似性,部分群體當中甚至還存在着「Magisk 框架」這樣的說法。
的确,二者的工作機制都是「攔截」。Xposed 通過劫持 Android 系統的 zygote 進程來加載自定義功能,這就像是半路截殺,在應用運行之前就已經将我們需要的自定義内容強加在了系統進程當中。
Magisk 則另辟蹊徑,通過挂載一個與系統文件相隔離的文件系統來加載自定義内容,為系統分區打開了一個通往平行世界的入口,所有改動在那個世界(Magisk 分區)裡發生,在必要的時候卻又可以被認為是(從系統分區的角度而言)沒有發生過。
Xposed/Magisk 原理示意圖
Magisk 的實現方式就像是一種魔法,當被挂載的 Magisk 分區被隐藏甚至被取消挂載時,原有系統分區的完整性絲毫未損,玩需要 root 驗證的遊戲、運行對設備認證狀态有要求的應用甚至進行需要驗證系統完整性的 OTA 更新都沒有任何問題。
可通過 SafetyNet 認證并有針對性地隐藏 root
因此嚴格來說 Magisk 可以被看作是一種文件系統,這種文件系統通過巧妙的實現方式避開了對系統文件的直接修改,從穩定性上來看要優于以往任何一種系統框架,這也是當前它在玩機社區廣受認可和好評的原因所在。
它的魔力不止于 root很多人對 Magisk 的初步認識可能是 root ——在 SuperSU 銷聲匿迹之後,它自然而然就成為了當前 Android 社區用來獲取 root 權限的主流方式。
不過 Magisk 特殊的運作機制還賦予了它相較于 Android 平台其他定制工具而言獨一無二的特質——systemless。這種 systemless 特質讓 Magisk 擁有了獲取 root 權限之外的諸多優勢:
一方面,得益于獨特的挂載機制,使用 Magisk 時我們可以有針對性地隐藏 root,甚至暫時隐藏 Magisk 本身。
如此一來,不僅「root 模式下使用特定應用」成為了可能,就連無縫 OTA 更新這種「魔改黨」們想都不敢想的事也變得不再遙遠。在 Magisk Manager 應用的設置中,我們甚至還可以用随機包名對 Magisk 進行重新安裝,讓它從其他應用的眼皮底下徹底消失——多麼具有魔法特質的高明手段!
另一方面,挂載系統的存在,也讓 Magisk 擁有了多樣的模塊化生态系統。
既然用了「開外挂」的實現方式,那不妨就多挂載一些額外的東西,字體、音效、驅動……甚至 Xposed 本身。Magisk 提供了一個獨立于系統分區以外的、可以随時隐形的「沙盒」,那自然不能将其才華禁锢于 root 這一件事上。在 Magisk 的模塊倉庫裡,我們可以找到各式各樣的模塊(modules)來滿足自己的定制化需求,借助這些模塊,我們在 root 之後能做的事情其實也還有很多。
在這裡的讨論語境下,Magisk 如何給人們留下「框架」這一認知誤區的原因就浮出水面了。隻是功能方面好不遜色的 Magisk,穩定性和上手門檻對大部分用戶來說都更加友好。
如何安裝 Magisk作為一套複雜的文件系統,Magisk 的安裝步驟卻是十分簡單。
在電腦上配置好 adb 環境 并解開 Bootloader 鎖後,如果你的設備有來自 TWRP 的官方支持,隻需在打開 USB 調試後将手機與電腦相連,然後打開電腦端的命令行窗口:
- 執行 adb reboot bootloader 進入 Bootloader 界面
- 執行 fastboot boot TWRP.img 進入臨時 TWRP
- 在 TWRP 中刷入你下載的 Magisk 安裝包
沒有官方 TWRP 支持的設備安裝 Magisk 的步驟要稍微複雜一些:
- 從你的刷機包中提取當前固件的 boot.img 文件,将它傳入到安裝了 Magisk Manager 的手機中
- 進入 Magisk Manager —— 安裝(install)—— install —— 修補 boot 鏡像文件
- 然後選擇傳入的 boot.img 文件進行生成,并将生成後的 Patchedboot.img (姑且這麼命名) 傳輸到電腦上。
随後我們使用 Magisk 應用對 boot.img 進行重新打包:
- 打開命令行窗口
- 執行 adb reboot bootloader 進入 Bootloader 界面
- 執行 fastboot boot Patchedboot.img 來加載生成後的 boot 分區文件獲取臨時 root
此時進入系統,你會發現你已經成功安裝了 Magisk,但這還不夠,我們還得進入 Magisk Manager,選擇安裝(install)——install——Direct Install(直接安裝)才能将臨時 root 轉換為永久 root。
安裝完 Magisk 後,我們就可以通過 TWRP 或者 Magisk Manager 刷入獲取到的模塊了。模塊的獲取方式可以是 Magisk Manager 自帶的模塊倉庫,也可以是其他第三方論壇(如酷安、XDA 等)。
卸載 Magisk 最為徹底的方式就是在 Magisk Manager 中點擊「卸載」、「完全卸載」,應用會自動下載刷完 uninstall.zip 卸載包、自動卸載它自己、自動重啟。如果你無法進入系統,在 TWRP 中手動刷入 uninstall.zip 卸載包即可。
至于哪些模塊值得刷,就是完全看個人需求了。我們會在後續文章為大家推薦一些基礎的必備模塊,也歡迎 Magisk 的老玩家們向我們投稿分享。
本文由 @Clyde 和 @路中南 聯合撰寫。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!