更新时间:2023-12-06 14:22
root权限,系统权限的一种,也叫根权限,与SYSTEM权限可以理解成一个概念,但高于Administrator权限,root是Linux和unix系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作。获得root权限之后就意味着已经获得了系统的最高权限,这时候你可以对系统中的任何文件(包括系统文件)执行所有增、删、改、查的操作。手机root权限是andriod的使用最高权限,获取了root权限,可以轻松的对手机刷机备份还原卸载系统文件等重要操作。为了避免在应用Android平台时的一些潜在风险,厂商的通用做法就是设置SecureLock安全锁定和限制Root权限。这种做法在保证安全的同时,一定程度上也限制了Android系统潜能的发挥。
目前获取Android root权限常用方法是通过各种系统漏洞,替换或添加SU程序到设备,获取Root权限,而在获取root权限以后,会装一个程序用以提醒用户是否给予程序最高权限,可以一定程度上防止恶意软件,通常会使用SuperSU,这种方法通常叫做“不完全Root”。而“完全ROOT”是指,替换设备原有的ROM,以实现取消secure设置。
通过ADB可以直接将SU程序放入到系统。首先分析Android自带su源代码,由于源码较多,下面摘录最重要几行。
intmain(intargc,char**argv)
{
/*Untilwehavesomethingbetter,onlyrootandtheshellcanuse
su.*/
myuid=getuid();
if(myuid!=AID_ROOT&&myuid!=AID_SHELL){
return1;
}
if(exevp(argv[2],exec_args)<0){
}
/*Defaultexecshell.*/
}
可以看出只允许getuid()为AID_ROOT和AID_SHELL的进程可以继续执行,否则直接返回,这就决定了只有当前用户为root和shell才能运行su。接下来执行execvp(argvexec_args),su并没有通过fork命令行查看此程序权限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的权限。
这样就可以看出Android系统的破解的根本原理就是替换掉系统中的su程序,因为系统中的默认su程序需要验证实际用户权限(只有root和shell用户才有权运行系统默认的su程序,其他用户运行都会返回错误)。而破解后的su将不检查实际用户权限,这样普通的用户也将可以运行su程序,也可以通过su程序将自己的权限提升。
在Unix系统(如AIX、BSD等)和类UNIX系统(如Debian、Redhat、Ubuntu等各个发行版的Linux)中,系统的超级用户一般命名为root。root是系统中唯一的超级用户,具有系统中所有的权限,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件等等。
root就是手机的神经中枢,它可以访问和修改你手机几乎所有的文件,这些东西可能是制作手机的公司不愿意你修改和触碰的东西,因为他们有可能影响到手机的稳定,还容易被一些黑客入侵(Root是Linux等类UNIX系统中的超级管理员用户帐户。)
“root”是安卓系统中的最高管理员,获取它也就代表你可以随意控制该系统中任意一项功能。生产厂商是不会给手机配置root权限的。注意:获取root权限是有风险的,不要随便尝试。
1)可以备份手机系统和软件应用等重要的私人资料(包括可以备份联系方式、短信、手机系统等),这样即使手机出现故障丢失了相关数据,也可以在备份中还原。
2)使用高级的程序,例如RE管理器、省电大师、甜椒刷机助手等等。
3)可以修改手机系统,也就是root后可以给安卓手机刷机,体验不同安卓系统的乐趣。修改系统的内部程序和文件,如修改build.prop来DIY手机信息。
4)可以把一些程序应用安装在SD卡上(Android2.2以下默认是不支持的),减轻手机负担。
5)可以卸载系统程序(需谨慎使用),可以删除原厂系统自带的感觉没什么用的软件。
6)可以管理开机启动项,禁用不需要后台运行的程序,进行手机省电优化。
1)用户可以按照自己的需求来删除不需要的系统自带应用程序,比如Youtube、Google Map、Talk等,从而节省设备内存,提高运行速度。
2)用户可以使用一些需要root权限才能运行的应用程序,比如截屏、开机自启动等。
3)用户可以更改系统核心策略,例如CPU性能优先还是节电优先,从而延长设备的使用寿命、扩展设备的功能。
4)用户可以更改替换系统原生的铃声、图片、icon等。
1)获取root权限可能会造成额外的手机售后成本,所以会被一些手机生产商不认可,造成失去保修。
2)使用root方法可能会存在一些风险,若获取root失败,可能手机无法开机。
3)错误使用root权限,可能会造成核心数据的丢失。
1)如果恶意软件获取root权限之后,将对系统造成不可修复的破坏,用户存储在手机上的所有隐私都将暴露在恶意软件之下。
2)如果用户购买的是正品行货手机,一旦在保修期内进行ROOT,一般就失去了保修的权利。
3)设备系统获取root权限之后,任何软件都能对系统文件进行任意操作,对系统的稳定性产生极大的影响。
4)用户可以随意安装来自第三方的应用程序,包括未经过签名的恶意软件。
Android设备厂商发售的出厂设备没有开放Android root权限,而是级别相对低的Android用户权限,低权限使得用户在操作设备的过程中遇到很多制问题,系统无法发挥出最大的功能,解决办法就是进行权限提升。就是将Android系统的权限从低等级的Android用户权限提升到高等级的Android root权限。
漏洞,也叫脆弱性,是指系统在硬件、软件、协议的具体实现和系统安全策略上存在的缺陷和不足,从广义上讲,漏洞是指一切威胁、破坏系统可靠性、可用性、保密性、完整性、可控性、不可抵赖性的因素。权限提升漏洞,也叫提权漏洞,是指那些可以被利用来实现权限提升技术的漏洞,通常发生于驱动程序、系统核心组件或拥有高权限的服务进程等程序中。由于这些程序在设计过程中的代码瑕疵或逻辑错误,使得低权限的程序可以不通过合法审查而获得高权限,从而获取访问更多系统资源的权利。提权漏洞和所有其它类型的漏洞一样,也是程序开发中无法完全避免的,它的产生原因不是故意行为。
权限提升软件,即“一键ROOT软件”,原理是通过编写代码触发Android提权漏洞,通过不同的方法绕过Android权限安全机制,获取临时root权限,改写系统内部的一些文件,从而获得root权限。目前已经公开在网络上的可使用的提权软件,比较知名的包括UniversalAndroot、Kingroot、SuperOneClick、z4root、GingerBreak、ZergRush等等。同时,已被捕获的典型Android平台病毒/木马主要包括索马里海盗、GingerMaster、DroidDream、RecordSpy、Droidkungfu等等。
root新版系统的过程相对简单,至少符合特定的要求。运行Android L的Nexus 5和Nexus 7(2013)用户需要先刷入定制Recovery和Chainfire SuperSU,然后再刷入与自己设备相匹配的镜像便可。
但如外界所预料的那样,即使获取了root权限,应用程序已经无法像从前那样在系统分区进行写入了。不过升级到了新安全环境的应用依然可以访问系统分区。
考虑到并非所有应用都已获得升级,因此许多需要root权限的应用在Android L当中都无法正常工作,比如钛备份。但随着越来越多的应用进行升级,Android L的root权限也将会变得更加实用。