複製鏈接
請複製以下鏈接發送給好友

root權限

鎖定
root權限,類似於Windows系統中的Administrator,root是Linux系統中的超級管理員用户帳户,該帳户擁有整個系統的最高權限,可方便地對於系統的部件進行刪除或更改。 [1] 
中文名
root權限
外文名
root access
地    位
Android系統最高權限
作    用
備份系統
操作平台
Unix,Linux及其他類Unix系統

root權限簡介

root權限,系統權限的一種,也叫根權限,與SYSTEM權限可以理解成一個概念,但高於Administrator權限,root是Linuxunix系統中的超級管理員用户帳户,該帳户擁有整個系統至高無上的權力,所有對象他都可以操作。獲得root權限之後就意味着已經獲得了系統的最高權限,這時候你可以對系統中的任何文件(包括系統文件)執行所有增、刪、改、查的操作。手機root權限是andriod的使用最高權限,獲取了root權限,可以輕鬆的對手機刷機備份還原卸載系統文件等重要操作。為了避免在應用Android平台時的一些潛在風險,廠商的通用做法就是設置SecureLock安全鎖定和限制Root權限。這種做法在保證安全的同時,一定程度上也限制了Android系統潛能的發揮。 [1] 

root權限Root原理

目前獲取Android root權限常用方法是通過各種系統漏洞,替換或添加SU程序到設備,獲取Root權限,而在獲取root權限以後,會裝一個程序用以提醒用户是否給予程序最高權限,可以一定程度上防止惡意軟件,通常會使用SuperSU,這種方法通常叫做“不完全Root”。而“完全ROOT”是指,替換設備原有的ROM,以實現取消secure設置 [2] 
通過ADB可以直接將SU程序放入到系統。首先分析Android自帶su源代碼,由於源碼較多,下面摘錄最重要幾行 [2] 
intmain(intargc,char**argv)
{
/*Untilwehavesomethingbetter,onlyrootandtheshellcanuse
su.*/
myuid=getuid();
if(myuid!=AID_ROOT&&myuid!=AID_SHELL){
fprintf(stderr,"su:uid%dnotallwedtosu\n",myuid);
return1;
}
if(exevp(argv[2],exec_args)<0){
}
/*Defaultexecshell.*/
execlp("/systm/bin/sh","sh",NULL);
}
可以看出只允許getuid()為AID_ROOT和AID_SHELL的進程可以繼續執行,否則直接返回,這就決定了只有當前用户為root和shell才能運行su。接下來執行execvp(argvexec_args),su並沒有通過fork去創建一個新的進程,而是直接把自己啓動一個新的進程,此時原先執行的程序實際上由su來創建的。通常情況下,執行su並不會帶參數,於是它會執行execlp("/system/bin/sh","sh",NULL);通過命令行查看此程序權限ls–l/bin/su-rwsr-xr-x1rootroot368642010-01-2701:09/bin/su由上可以看到,su的所有者和所有組都是root,並且其設置了SUID和SGID。實際用户ID和實際用户組ID:標識我是誰。也就是登錄用户的uid和gid。有效用户ID和有效用户組ID:進程用來決定我們對資源的訪問權限。一般情況下,有效用户ID等於實際用户ID,有效用户組ID等於實際用户組ID。當設置-用户-ID(SUID)位設置,則有效用户ID等於文件的所有者的uid,而不是實際用户ID;同樣,如果設置了設置-用户組-ID(SGID)位,則有效用户組ID等於文件所有者的gid,而不是實際用户組ID。由此可以得出,當一個其他用户或者用户組的進程來執行su的時候,正常情況下會因為用户ID不是root而被拒絕。但是,如果它能夠跳過檢查UID這一步,即能夠使自己的進程獲得和su相同的root的權限 [2] 
這樣就可以看出Android系統的破解的根本原理就是替換掉系統中的su程序,因為系統中的默認su程序需要驗證實際用户權限(只有root和shell用户才有權運行系統默認的su程序,其他用户運行都會返回錯誤)。而破解後的su將不檢查實際用户權限,這樣普通的用户也將可以運行su程序,也可以通過su程序將自己的權限提升 [2] 
在Unix系統(如AIXBSD等)和類UNIX系統(如Debian、Redhat、Ubuntu等各個發行版的Linux)中,系統的超級用户一般命名為root。root是系統中唯一的超級用户,具有系統中所有的權限,如啓動或停止一個進程,刪除或增加用户,增加或者禁用硬件等等。
root就是手機的神經中樞,它可以訪問和修改你手機幾乎所有的文件,這些東西可能是製作手機的公司不願意你修改和觸碰的東西,因為他們有可能影響到手機的穩定,還容易被一些黑客入侵(Root是Linux等類UNIX系統中的超級管理員用户帳户。)
“root”是安卓系統中的最高管理員,獲取它也就代表你可以隨意控制該系統中任意一項功能。生產廠商是不會給手機配置root權限的。注意:獲取root權限是有風險的,不要隨便嘗試。

root權限作用

1)可以備份手機系統和軟件應用等重要的私人資料(包括可以備份聯繫方式、短信、手機系統等),這樣即使手機出現故障丟失了相關數據,也可以在備份中還原。
2)使用高級的程序,例如RE管理器省電大師甜椒刷機助手等等。
3)可以修改手機系統,也就是root後可以給安卓手機刷機,體驗不同安卓系統的樂趣。修改系統的內部程序和文件,如修改build.prop來DIY手機信息。
4)可以把一些程序應用安裝在SD卡上(Android2.2以下默認是不支持的),減輕手機負擔。
5)可以卸載系統程序(需謹慎使用),可以刪除原廠系統自帶的感覺沒什麼用的軟件。
6)可以管理開機啓動項,禁用不需要後台運行的程序,進行手機省電優化。

root權限優點

1)用户可以按照自己的需求來刪除不需要的系統自帶應用程序,比如Youtube、Google Map、Talk等,從而節省設備內存,提高運行速度
2)用户可以使用一些需要root權限才能運行的應用程序,比如截屏、開機自啓動等。
3)用户可以更改系統核心策略,例如CPU性能優先還是節電優先,從而延長設備的使用壽命、擴展設備的功能。
4)用户可以更改替換系統原生的鈴聲、圖片、icon等。 [3] 

root權限缺點

1)獲取root權限可能會造成額外的手機售後成本,所以會被一些手機生產商不認可,造成失去保修。
2)使用root方法可能會存在一些風險,若獲取root失敗,可能手機無法開機。
3)錯誤使用root權限,可能會造成核心數據的丟失。

root權限注意事項

1)如果惡意軟件獲取root權限之後,將對系統造成不可修復的破壞,用户存儲在手機上的所有隱私都將暴露在惡意軟件之下。
2)如果用户購買的是正品行貨手機,一旦在保修期內進行ROOT,一般就失去了保修的權利。
3)設備系統獲取root權限之後,任何軟件都能對系統文件進行任意操作,對系統的穩定性產生極大的影響。
4)用户可以隨意安裝來自第三方的應用程序,包括未經過簽名的惡意軟件。 [3] 

root權限權限提升

Android設備廠商發售的出廠設備沒有開放Android root權限,而是級別相對低的Android用户權限,低權限使得用户在操作設備的過程中遇到很多制問題,系統無法發揮出最大的功能,解決辦法就是進行權限提升。就是將Android系統的權限從低等級的Android用户權限提升到高等級的Android root權限。 [3] 

root權限權限提升漏洞

漏洞,也叫脆弱性,是指系統在硬件、軟件、協議的具體實現和系統安全策略上存在的缺陷和不足,從廣義上講,漏洞是指一切威脅、破壞系統可靠性可用性保密性完整性可控性不可抵賴性的因素。權限提升漏洞,也叫提權漏洞,是指那些可以被利用來實現權限提升技術的漏洞,通常發生於驅動程序系統核心組件或擁有高權限的服務進程等程序中。由於這些程序在設計過程中的代碼瑕疵或邏輯錯誤,使得低權限的程序可以不通過合法審查而獲得高權限,從而獲取訪問更多系統資源的權利。提權漏洞和所有其它類型的漏洞一樣,也是程序開發中無法完全避免的,它的產生原因不是故意行為 [3] 

root權限權限提升軟件

權限提升軟件,即“一鍵ROOT軟件”,原理是通過編寫代碼觸發Android提權漏洞,通過不同的方法繞過Android權限安全機制,獲取臨時root權限,改寫系統內部的一些文件,從而獲得root權限。目前已經公開在網絡上的可使用的提權軟件,比較知名的包括UniversalAndroot、KingrootSuperOneClickz4root、GingerBreak、ZergRush等等。同時,已被捕獲的典型Android平台病毒/木馬主要包括索馬里海盜、GingerMaster、DroidDream、RecordSpy、Droidkungfu等等。 [3] 

root權限新版系統

root新版系統的過程相對簡單,至少符合特定的要求。運行Android LNexus 5Nexus 7(2013)用户需要先刷入定製Recovery和Chainfire SuperSU,然後再刷入與自己設備相匹配的鏡像便可。
但如外界所預料的那樣,即使獲取了root權限,應用程序已經無法像從前那樣在系統分區進行寫入了。不過升級到了新安全環境的應用依然可以訪問系統分區。
考慮到並非所有應用都已獲得升級,因此許多需要root權限的應用在Android L當中都無法正常工作,比如鈦備份。但隨着越來越多的應用進行升級,Android L的root權限也將會變得更加實用。
參考資料
  • 1.    姜穎韜.淺析Android平台ROOT權限[J].科技經濟市場,2011,(10):3-4. DOI:10.3969/j.issn.1009-3788.2011.10.002.
  • 2.    邢曉燕, 金洪穎, 田敏..Android 系統 Root 權限獲取與檢測:軟件,2013
  • 3.    曹承志.Android平台權限提升技術研究與實現[D].江蘇:南京郵電大學,2014.