Root (Android)
Root是Android系統的一個術語,它使得使用者可以取得Android作業系統的超級使用者權限。Root能夠幫助使用者越過手機製造商的限制,得以解除安裝本身預裝的程式,或執行需要系統權限的動作。Android系統的Root與蘋果iOS系統的越獄類似。
原理
多數的手機製造商不支援獲取Root權限[1]。因此,大多數取得Root的方法都是使用特定工具藉助系統漏洞或官方後門實現的。不同手機廠商、系統和版本可能存在的漏洞不同,因此不同手機的Root原理、方法、難度都可能不同。Root需將su可執行檔複製到Android系統的/system分割區下(例如:/system/xbin/su
)並用chmod命令為其設定可執行權限和setuid權限。為了讓使用者可以控制Root權限的使用,防止手機上的任意應用程式直接獲得Root權限,使用者通常還會將Root管理程式複製(安裝)到/system/app,用以管理su程式的使用。
常見取得方法
曾經被廣泛利用的系統漏洞之一是zergRush,該漏洞適用於Android 2.2-2.3.6系統[2],因而適用於很多Android系統手機。其他漏洞還有Gingerbreak[3]、psneuter[4]等等。一些「一鍵root」類工具(例如:Kingroot)正是利用這些Android系統漏洞來取得root權限。不過,這類別方法隨著Android版本更新,漏洞封堵導致無法使用。
Magisk是當前Android社群用來取得root權限的主流方式,其作為一套用於客製化Android的開源工具,支援高於Android4.2的裝置。同時,Magisk特殊的運作機制還賦予了它systemless的特質。systemless讓Magisk在不修改/system以及/vendor的情況下,可以有針對性地隱藏root,亦可暫時隱藏Magisk本身。
其他的root方式還有KernelSU,支援修補init_boot或修改boot實現root(在GitHub上有官方提供的boot鏡像,可使用fastboot刷入或recovery刷入)。此root方式與Magisk不同,且使用此方式root後隱藏的效果比Magisk更好。
工具
曾經廣泛利用的zergRush漏洞必須在adb shell下執行[5],而adb shell只能將手機用USB資料線與PC連接之後才能開啟,因此常用的Root工具都是PC程式,透過Android系統的adb shell執行漏洞利用程式。亦有部分工具能直接在Android裝置上執行。
部分使用者已開發Android裝置上直接執行的Root工具。通常只對部分系統或機型適用,部分使用者會無法成功Root或效果不佳。程式通常簡易操作,不需親自執行,但同時也帶來強制安裝授權管理軟體,並間接剝奪授權自由等問題。
在Android 6.0以前,絕大部分Android的平台裝置可以使用SuperSU,但SuperSU並不作為Root[2]工具使用而是一個Root後裝置的權限管理程式,用於管理Root後裝置應用程式的權限問題。由於Android應用程式在獲得Root權限後可以完全控制手機,一般推薦使用者對於應用程式的權限請求仔細甄別。
所有高於Android 6.0的裝置理論上都可以使用Magisk進行取得root權限,主流的Magisk安裝方式有兩種,一為使用adb工具包中的fastboot命令對Bootloader已解鎖裝置刷入修補版boot啟動鏡像,二為解鎖Bootloader的裝置並刷入第三方 Recovery,通過第三方Recovery對magisk進行安裝,然此方法目前已被作者標記為棄用。
在支援GKI 2.0核心的Android設備可使用Kernel SU[6]獲取root權限(核心 5.10後),在5.10前的核心(版本4.14+)可透過自行編譯核心使用,KernelSU可以與Magisk相同的方法安裝,也可以透過fastboot及Kernel flasher等方式直接刷入核心安裝。
爭議
由於Root並非官方支援的行為,手機廠商對進行過Root的手機的保修政策目前存在爭議。亦有部分廠商明確稱為Root後的手機提供免費維護,但通常僅限於重新安裝手機的系統,不包括資料保全、硬體保修等服務。
大多數手機廠商為避免使用者Root或使用第三方系統,加入了分割區保護機制,未解鎖(BootLoader)的情況下無法進行Root或刷機操作。
為避免資安風險,以Google Pay與三星的Samsung Pay為首的核心級支付系統,不允許Root過的手機執行,而支付寶等第三方支付程式則一般不受此影響。[來源請求]
在解鎖Root後華為內建支付保護中心不再對QQ或支付寶此類支付APP提供安全服務。[來源請求][何時?]
2017年9月,魅族宣布旗下各機型的Flyme系統將停用開放Root功能,且以後不再開放[7]。但在2018年7月,魅族時任CEO黃章下令Flyme徹底開放Root授權[8]。
2019年2月,vivo宣布iQOO將開放Bootloader解鎖權限和類原生ROM支援,然而時至今日這項承諾沒有任何進展。iQOO系列手機依然是無法解鎖Bootloader,更妄談Root之類的進階權限。
以往的小米手機使用者只需要刷入開發版MIUI即可獲得Root管理權限,然而新發布的小米手機已不再開放開發版下載入口。使用者如需刷入開發版需在小米社群申請開發版內測。通過稽核之後才能獲得開發版下載連結。
參見
參考資料
- ^ root为什么不受官方支持. DroidLessons. 2011-02-15 [2011-12-18]. (原始內容存檔於2011-12-23).
- ^ 2.0 2.1 CVE-2011-3874: zergRush漏洞的详细描述. National Cyber-Alert System. 2012-01-27 [2012-10-21]. (原始內容存檔於2012-10-19).
- ^ CVE-2011-1823: Gingerbreak漏洞的详细描述. National Cyber-Alert System. 2011-06-09 [2012-10-21]. (原始內容存檔於2012-10-18).
- ^ CVE-2011-1149: psneuter漏洞的详细描述. National Cyber-Alert System. 2011-04-21 [2012-10-21]. (原始內容存檔於2012-06-09).
- ^ zergRush源代码. The Revolutionary development team. 2012-01-27 [2012-10-21]. (原始內容存檔於2016-02-07).
- ^ KernelSU/docs/README_TW.md at main · tiann/KernelSU. GitHub. [2023-10-08] (英語).
- ^ IT之家. 重磅!魅族Flyme将关闭手机ROOT功能,再开放后会无期. 搜狐. [2017-09-14]. (原始內容存檔於2017-09-14).
- ^ IT之家. 黄章下令:魅族Flyme彻底开放手机Root授权. IT之家. [2018-07-04]. (原始內容存檔於2018-07-30).
- ^ 百度百科-Magisk. baike.baidu.com. [2023-07-31]. (原始內容存檔於2023-07-31).