知名百科 >> Root权限 >> 历史版本
编辑时间历史版本内容长度图片数目录数修改原因
2023-06-05 18:56:05 最新历史版本 32556 1 6 修正错误
  返回词条

Root权限

Root权限也是一种系统权限,类似于Windows系统中的管理员root是Linux系统中的超级管理员用户帐户,拥有整个系统的最高权限,可以轻松删除或更改系统的组件。而系统权限可以理解为一个概念,但高于管理员权限,root是Linux和unix系统中的超级管理员用户账号,拥有整个系统的至高权力,可以操作所有对象。获得根权限后,意味着你获得了系统的最高权限此时,您可以访问系统中的任何文件(包括系统文件)执行所有增、删、改、查的操作。手机根权限是andriod的最高权限有了root权限,就可以在手机上轻松执行备份还原卸载系统文件等重要操作。为了避免Android平台应用中的一些潜在风险,厂商普遍的做法是设置SecureLock安全锁,限制Root权限。这种做法既保证了安全性,又在一定程度上限制了Android系统的潜力。


目录

新版系统

新根系的工艺相对简单,至少满足特定要求。Nexus 5 running Android L and contact  7(2013)用户需要先刷入定制的Recovery和Chainfire SuperSU,再刷入匹配自己装备的镜像。

然而,正如外界所料,即使获得了root权限,应用程序也无法再像以前那样在系统分区中写入。但是,升级到新安全环境的应用程序仍然可以访问系统分区。

考虑到并不是所有的应用都升级了,很多需要root权限的应用在Android L中无法正常工作,比如钛金备份。不过随着越来越多的应用升级,Android L的root权限会变得更加实用。

Root原理

目前获取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){
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的权限。
这样就可以看出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,一般就失去了保修的权利。
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等等。

标签