root权限,类似于
Windows系统中的
Administrator,root是
Linux系统中的
超级管理员用户帐户,该帐户拥有整个系统的最高权限,可方便地对于系统的部件进行删除或更改。
简介
root权限,系统权限的一种,也叫根权限,与SYSTEM权限可以理解成一个概念,但高于
Administrator权限,root是
Linux和
unix系统中的
超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作。获得root权限之后就意味着已经获得了系统的最高权限,这时候你可以对系统中的任何文件(包括
系统文件)执行所有增、删、改、查的操作。手机root权限是android的使用最高权限,获取了root权限,可以轻松的对
手机刷机备份还原卸载系统文件等重要操作。为了避免在应用
Android平台时的一些潜在风险,厂商的通用做法就是设置SecureLock安全锁定和限制Root权限。这种做法在保证安全的同时,一定程度上也限制了Android系统潜能的发挥。
Root原理
目前获取Android root权限常用方法是通过各种
系统漏洞,替换或添加SU程序到设备,获取Root权限,而在获取root权限以后,会装一个程序用以提醒用户是否给予程序最高权限,可以一定程度上防止恶意软件,通常会使用SuperSU,这种方法通常叫做“不完全Root”。而“完全ROOT”是指,
替换设备原有的ROM,以实现取消secure设置。
通过ADB可以直接将SU程序放入到系统。首先分析Android自带su
源代码,由于源码较多,下面摘录最重要几行。
intmain(intargc,char**argv)
{
/*Untilwehavesomethingbetter,onlyrootandtheshellcanuse
su.*/
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权限也将会变得更加实用。