为什么会这样,到底怎么看手机有没有roott,这不是矛盾吗

本博客所记录的文章,主要是从网络收集的,有一些因为经过多次转载,所以出处已经不知,若是侵权,请通知我,我及时修改。本博客主要是用来记录我对所写文章的理解,若有错误,请大家指点,相互学习!...
android的 root权限
本文将从几个方面,由浅至深地讲述ROOT到底是什么东西?
一. ROOT权限简单介绍
二.为什么需要ROOT
三. ADBD的ROOT权限
四.深入源代码
ROOT权限简介:
ROOT权限是Linux内核中的最高权限,如果你的身份是ROOT,那么你就具有了ROOT权限。有了最高权限,你就可以为所欲为,换句话说,如果恶意程序获取到了ROOT权限,那么就可以肆意地破坏你的手机,获取的隐私...所以厂商一般在生产手机的时候,不会提供给用户ROOT权限,官方宣称是为了保护用户手机的安全,然后装了一堆开机自动启动,而用户这辈子也用不到也卸载不了垃圾软件(相信使用安卓的同学们都懂我的意思),而苹果所说的越狱,也就是获取ROOT权限。
为什么需要获取ROOT权限?
苹果用户获取ROOT权限,是为了可以免费安装各种软件,以及为了获取更加灵活的操作体验,苹果不会安装一堆恶心的软件;而安卓普通用户获取ROOT权限,最大的目的就是为了卸载这些恶心的自带软件,安卓极客用户则是为了各种折腾安卓手机,安卓开发人员是为了得到日志文件,分析BUG。
ADBD的ROOT权限:
ADBD是什么?相信大家都看过,IT男把手机连上电脑,然后不知怎么的弹出一个黑乎乎的窗口,上面有一排排白色的英文字母,然后帅气的敲击着键盘(一般敲击 adb shell,然后进入手机),啪啪几下,可以帮你解决一些手机的问题。这个可以和手机交互的进程就是ADBD。这就好比,你去朋友家玩,然后你朋友家比较高端,进大门之前有个可视对讲机,那么你首先通过对讲机呼叫朋友(敲击adb shell),看看在不在家(手机是否相应adb shell这个命令),如果朋友在家,那么就会通过对讲机为你开门(成功进入手机中),提供这个服务的可视对讲机就相当于ADBD。说白了,ADBD就是可以为你提供一种进入手机内部的服务通道。
那么为什么需要ADBD具有ROOT权限?这就涉及到另一个与ROOT息息相关的东西——su。
我们开机之后,使用手机的身份就是一个普通用户(user),如果执行su,那么就可以直接切换到ROOT身份。就像仙剑奇侠传三里面的景天,是个凡人,法力有限,但是大家都知道,他的前世是飞蓬将军,法力高强,天界无人能敌,只有魔界至尊重楼可以与他一较高下,当他们来到天庭的时候,玉帝施法,让景天直接切换成飞蓬将军,于是他就有了飞蓬将军的记忆和法力,与重楼又一次大战。su就是这样一个神奇的命令。
高通平台上,su的相关代码位于: LINUX/android/system/extras/su/su.c中
其实我们所说的越狱或者ROOT,就是把su安装到手机里面 /system/bin目录下,并把它的权限设置为4755,那么某些程序需要ROOT权限的时候,就可以通过su切换到ROOT身份,然后去执行,因此一般被ROOT的手机都会安装一个“超级用户”这样的应用,就是用于管理哪些软件可以切换到ROOT身份,哪些不可以,保证用户安全,这个想法是很好很天真,对于正规的软件,人家按照你的路子来,不正规的软件,你一个小小的超级用户的应用,岂能挡我获取ROOT,虐不死你。
那么为什么需要ADBD获取ROOT权限呢?经过上面的讲解大家应该能猜到,如果ADBD有ROOT权限,就可以通过adb 工具,为所欲为,而又不留下痕迹(不安装su),可以删除自带垃圾软件,获取任意目录的文件,安全性较高。笔者就是通过这种方式获取一些系统级别文件。
深入代码:
看了上面的文字,也许很多人会有这样的想法,原来ROOT一个手机这么简单?错!一点也不简单。
首先:/system分区是只读的文件系统,即你无法往system分区中写入任何东西,其次就算你侥幸把su安装到/system/bin下,你也没法修改它的权限为4755,再者,即使你侥幸把su的权限设为4755,你也逃不过有些手机的反root机制(即检测到有文件的权限为4755,就删除)。
首先我们来看看su的部分代码:
/* Until we have something better, only root and the shell can use su. */
myuid = getuid();
if (myuid != AID_ROOT && myuid != AID_SHELL) {
fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
这句话告诉我们,如果执行su的不是ROOT或者SHELL用户,那就直接退出,说明切换身份时候,你必须是这两个用户,还好我们用adb shell进入,是SHELL用户,好险啊。
if(argc & 2) {
uid = gid = 0;
int gids_count = sizeof(gids)/sizeof(gids[0]);
extract_uidgids(argv[1], &uid, &gid, gids, &gids_count);
if(gids_count) {
if(setgroups(gids_count, gids)) {
fprintf(stderr, "su: failed to set groups\n");
判断执行su的时候,有没有其它参数,我们只是执行su,即argc & 2成立,su也可以切换成其它用户(argc & 2,详细看su命令的使用),这时候,uid 和 gid 都被设置为0 。即ROOT用户的ID号和组号
if(setgid(gid) || setuid(uid)) {
fprintf(stderr,"su: permission denied\n");
来了来了,就是它,这就是我们最终的目的,把我变身成飞蓬将军,如果一切顺利,你就可以变身成功了(切换ROOT成功)
/* Default exec shell. */
execlp("/system/bin/sh", "sh", NULL);
每次su之后,就会变成root#,然后就可以通过控制台继续敲命令,但是不同的是,你已经是ROOT了,权限已经很大了。
系统启动的时候,ADBD是ROOT权限,只是后来被降级了,判断是否降级的函数是should_drop_privileges()这个函数:
static int should_drop_privileges() {
#ifndef ALLOW_ADBD_ROOT
#else /* ALLOW_ADBD_ROOT */
首先判断是否定义了ALLOW_ADBD_ROOT,如果系统都不允许你ROOT,就直接返回1,下面什么都不看了,就像找工作的时候,不管你多么厉害,如果你第一条要求都不符合,就直接把你pass了,说什么都没用,够狠的。
int secure = 0;
char value[PROPERTY_VALUE_MAX];
/* run adbd in secure mode if ro.secure is set and
** we are not in the emulator
property_get("ro.kernel.qemu", value, "");
if (strcmp(value, "1") != 0) {
property_get("ro.secure", value, "1");
if (strcmp(value, "1") == 0) {
// don't run as root if ro.secure is set...
secure = 1;
下面就是获取系统的属性,判断是否打开ROOT权限,可以看到如果ro.kernel.qumu 这个属性被置为了,没关系再给你一次机会,判断ro.secure是否也是1,如果是,对不起你无法获得root权限,我要把secure置为1了(secure为1意味着要降级,后面会讲解),接着:
// ... except we allow running as root in userdebug builds if the
// service.adb.root property has been set by the "adb root" command
property_get("ro.debuggable", value, "");
if (strcmp(value, "1") == 0) {
property_get("service.adb.root", value, "");
if (strcmp(value, "1") == 0) {
secure = 0;
哈哈,又给了你一次机会,我再来判断ro.debuggable是不是1,如果不是,对不起,我必须要降级,否则再给你一次机会,判断service.adb.root这个属性的值,如果也是1,那么就不降级,一般在编译ROM版本的时候,会同事编译两个版本,一个是工程版本,是具有ROOT权限的ADBD,这样方便开发者调试系统,另一个就是我们用户用的版本,叫user版本,这个是没有ROOT权限的,可以看到,就是通过property_get一系列属性来判断是否降级。
#endif /* ALLOW_ADBD_ROOT */
最后,返回secure即可。可以看到最后决定是否降级的变量就是secure,所有如果有源代码的话,只有最后将secure赋值为0,不管什么版本,最后都是ROOT权限。
if (should_drop_privileges()) {
drop_capabilities_bounding_set_if_needed();
gid_t groups[] = { AID_ADB, AID_LOG, AID_INPUT, AID_INET,
AID_NET_BT, AID_NET_BT_ADMIN, AID_SDCARD_R, AID_SDCARD_RW,
AID_NET_BW_STATS };
if (setgroups(sizeof(groups)/sizeof(groups[0]), groups) != 0) {
/* then switch user and group to "shell" */
if (setgid(AID_SHELL) != 0) {&span style="white-space:pre"&
&/span&//曾经的漏洞,被封住了
if (setuid(AID_SHELL) != 0) {&span style="white-space:pre"&
&/span&//曾经的漏洞
D("Local port disabled\n");
从这段代码可以看到,如果should_drop_privileges返回1,那么就可以降级了,降级函数为setgid(AID_SHELL)和setuid(AID_SHELL),曾经有黑客利用一些方法,使得setgid和setuid执行失败,即降级失败,以前的代码中是没有exit的,那么当setuid和setgid执行失败之后,就不会降级。
ROOT不是那么轻易的,现在有很多已知的漏洞,但是都被封锁了,所有不是每个root工具都能root成功的,要看它采用的是什么方法来ROOT。
没有更多推荐了,手机如何ROOT?_百度知道
手机如何ROOT?
我有更好的答案
现在网上有很多软件都提供了“一键root”功能,比如刷机精灵啊、刷机大师啊、360手机、手机管家等等都有这个功能,个人觉得刷机精灵的root是最成功的。自己可以root,但是如果你不懂的话,不建议你root,因为如果你不小心删除了必要的系统软件,那么手机就不可以正常使用了。ROOT是一种存在于UNIX系统(如AIX、BSD等)和类UNIX系统(如大名鼎鼎的Linux,比如稳定到服务器都在用的Debian、适合长期作业成熟老道的Redhat、比较流行的Ubuntu和archlinux等Linux发行版以及Android系统)中的唯一的超级用户,其相当于Windows系统中的SYSTEM(XP及以下)/TrustedInstaller(Vista及以上)用户。其具有系统中所有的权限,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件等等。现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源,普通用户在所分配到的资源内进行各自的操作,相互之间不受影响。但是这些普通用户的权限是有限制的,且用户太多的话,管理就不便,从而引入root用户,此用户是唯一的,且拥有系统的所有权限。root用户所在的组称为root组。&组&是具有相似权限的多个用户的集合。root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限。一些需要root权限的应用,譬如广告阻挡,是需要root权限的。可问题在于root比windows的系统管理员的能力更大,足以把整个系统的大部分文件删掉,导致系统完全毁坏,不能再次使用。所以,用root进行不当的操作是相当危险的,轻微的可以死机,严重的甚至不能开机。所以,在Unix、Linux及Android中,除非确实需要,一般情况下都不推荐使用root。最好单独建立一个普通的用户,作为日常之用。不推荐使用root的一个原因则是出于安全的考虑。root具有系统所有的权限,root密码如果泄漏,足以导致整台计算机完全被窃取root密码的人所控制,拥有root密码就意味着拥有了这台计算机上所有用户的所有数据。有些任务必须由root才能执行,例如删除系统内置应用程序。但在Unix或Linux系统中又不推荐使用root,这构成了一个矛盾。于是产生了一个sudo的做法,就是在必要时使用su提权,即把系统管理的一部分权限授予普通用户,并且只有在这些用户需要更高权限的时候,才允许这些用户暂时性的使用root命令来管理系统。在默认情况下root的根目录(/root)是其他用户无权访问的,这在一定程度上增强了整个系统的安全性,但不完全是。Unix、Linux及Android的安全性更在于它的高度可配置性,也就是说,Unix或者Linux的安全性更取决于系统管理员而不是Unix或Linux系统本身。一般的模式是:Unix、Linux和Android提供一种健全的安全机制,由系统管理员根据实际需要制定相应的安全策略,并且部署这些安全策略。&机制&是能做什么不能做什么,&策略&是要做什么不要做什么。而Windows的安全策略和安全机制则比较混乱,windows本身过于依赖安全策略,导致系统管理员在很多时候束手束脚,反而得不偿失。
采纳率:99%
最简单的就是用一键root工具root手机了你可以在电脑上安装一个应用宝,它里面的一键root工具就很好用支持的机型很多,过程也稳定,不会出现任何异常操作也是傻瓜式的,不需要你有任何经验首先在电脑上安装一个应用宝,然后打开手机的usb调试把手机连接到电脑上,待手机驱动装好之后打开应用宝的工具箱,选择里面的一键root工具就可以了root的过程完全自动化,按提示备份好资料耐心等待几分钟就可以了希望可以帮到你
本回答被网友采纳
一般的安卓系统的手机都是可以root成功的,但是root的方法是不对的。1,小米之类的手机直接刷机开发版本就自带了root的权限的/2,三星,魅族,等等安卓系统的手机可以连接电脑用电脑版本的应用宝就可以直接的root成功的。3,还有就是华为手机之类的是需要在官方解锁了以后才可以root成功的。
用强力一键ROOT,具体的操作步骤如下:1:下载强力一键ROOT,点击“立即安装”安装软件。2:将手机连接到电脑上,点击“连接手机按钮”。3:点击“安装APP”。4:安装成功后会提示“APP安装完成”。5: 打开手机上的APP,按照操作进行就可以了。
oot1、先在电脑上打开软件,可从电脑管家里面启动。然后点击【连接手机】——看到【请用USB数据线
连接手机】时候连上数据线。然后手机进入【设置】——【开发者选项打开】——【USB调试开启】——接着在弹出的界面上,点击【已经开启USB调试】就行。之后手机上会显示【是否允USB调试】——【确定】。  2、等待成功连接
手机和电脑应用宝后,它会自己装好驱动,应用主界面左上角会看到手机品牌型号。点击右上角的【工具箱】——【解除root】——解除好了会显示已成功解除权限。权限就解除完毕了
1、用上root的软件来操作下手机,就让手机上权限可以获取的。2、谷歌市场、应用宝软件使用着工具来设置着操作下的。3、usb调试在手机设置--开发者选项上打开,点击工具操作着。4、Kingroot、刷机精灵设置下就成功操作着了。5、从而让手机上有稳定的权限就可以获取到手机上。所以手机通过这样的方式就成功root操作好的了。
1,安装root软件,就可以给手机进行一键root,但root有风险,而且会失去保修哦2,给手机ROOT的方法:先安装一个应用宝在电脑上3,将手机打开设置——开发人员选项——USB调试——打开,并将手机通过数据线连接到电脑上面。4,打开应用宝PC端——工具箱——KINGROOT——显示手机连接成功,一键ROOT即可5,手机root过程中,会出现重启的情况,都是属于正常的。
其他11条回答
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。为什么Linux不建议用root登陆_百度知道
为什么Linux不建议用root登陆
除了怕误删东西之外,还有别的吗?
我有点不明白啊假如我用的A用户登录(非root),然后用这个A用户在里边做项目。然后某天不小心把做的东西都删掉了,假设就是用rm -fr删的吧,没有额外去做粉碎。这种情况下,这些东西还有可能能找回来吗?假设删完之后我没有往硬盘里写过东西。如果用root做了这样的误操作呢?情况是否一样呢?还是说只是因为root有权限动系统的东西,容易损坏系统呢?对了,如果是系统坏了,要重装(或者修复)的话,能不能保证我的非系统文件不受损失呢?
我有更好的答案
权限太大,有很多程序因为安装原因,不支持root用户。 这个你应该找本书,系统的看下(文件系统)部分,linux的文件存储都是节点(大概是这个意思,记不清了),有个好处就是有效利用硬盘,相应的坏处就是删除时不是对文件操作,只是删节点信息,相当于彻底删除,很难找回(不知道有一些数据恢复软件行不行,想来如果能识别硬盘格式,应该是行的)。不论是哪种系统,修复系统文件都不是很容易的,但肯定可修复,而且,只要你不是对硬盘再操作(比如格式化、重分区等),原有的数据就没有问题,不知说明白没,呵呵。
采纳率:30%
我来解释一下吧;简单地说,这么建议就是为了安全。到底怎么安全呢?主要是因为root登录时,所有的程序都拥有了最高的权限,甚至都有权力可以把整个系统毁掉。 一方面是怕root误操作导致巨大的灾难,一方面是怕万一有恶意软件、或者软件本身有缺陷,那么就会造成很大的损失。相比之下,如果只是一个普通用户的身份,那么最大的破坏就是把这个用户自己的数据毁坏罢了。一句话:“权力越大,责任越大。权力越大,造成破坏可能就越大”
误删的几率很低 基本上 不会发生的 一个考虑是安全 担心密码泄漏 另外就是一台服务器可能会有很多人用 大家干的事情不一样 有的是配置环境 有的上传东西 总不能大家都是ROOT权限吧 肯定要分权限
出于安全考虑,ROOT用户造成的失误不可挽回
其他1条回答
为您推荐:
其他类似问题
linux的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。root不完全还是怎么回事?_百度知道
root不完全还是怎么回事?
本人刚入手三星i9100,自己获得了root权限后,在系统软件里把一个授权管理的软件(好像是获得完root给的程序)给删除了,重启手机后瞬间发现手机又提醒未获得root权限,这是怎么回事?我的手机现在到底有没有root权限?
360手机卫士和360优化大师都显示没获得r...
我有更好的答案
root不完全,有可能兼容性不好或在root过程中出现问题。建议用户使用之前的ROOT软件,将root移除。移除root后,用户可以尝试使用其它root软件root手机。用户可以选择360一键ROOT,百度一键ROOT,刷机精灵等工具。例如使用360一键ROOT,下载安装后进入应用。选择一键ROOT,应用会自动选择ROOT方案。在设备经过几次重启后,显示ROOT成功即可。再次进入360一键ROOT的软件管理,卸载预装可进行相关操作。
市场部经理
不需要的定制软件,就可以通过RE管理器进行操作。但这些都需要安卓4.0root权限(由于Root权限对于系统具有最高的统治权,便可方便的对于系统的部件进行删除或更改。对于玩家而言,只有获得Root权限,我们便可随心所欲地对自己的爱机进行“重新包装”,感受新版本软件的优点)。取得root后我们可以备份系统,使用更高级的程序,可以通过RE管理器进行修改系统的程序,把程序安装在SD卡上。标准root教程纵然每款机型root方式各不相同,但一般步骤还是差不多的。那么root有什么需要注意的呢?首先就是国行用户了,国行的手机一旦root就不再保修了,不过小编认为,只要不是硬件上的损伤,其余都是可以自己弄好的。一般root的步骤都是先关机重启手机进入到一个模式,再在电脑上进行操作,全程耗时不会太长。root过后,在应用列表里会发现多了一个应用程序,superuser或是LBE什么的,该程序出现即代表了手机已root成功,这时你便拥有你手机的最高权限。同时为了更加妥善的管理手机,你可以下载些管理手机的软件,例如RE管理器,之后你便能删除那些多余的系统应用了,让手机运行速度再上一级台阶。
本回答被网友采纳
这么简单都不知道?root得权限必须要有软件管理,你把软件删了,默认就是拒绝root权限,并不是获取了root就是全局最高权限,默认是关闭的,只有你允许的才能有root权限。另:小白别玩root。
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。平板/笔记本
HiLink生态产品
终端云服务专区
ROOT与不ROOT到底有什么区别,主要改变了那哪些功能啊?
&已臻大成&
来自:浏览器
如题。谁能给我这个菜鸟详细的普及一下知识呢?
width:100%">
&花粉特种部队&
来自:浏览器
root后你就拥有了对系统的完全控制权,但是不仅你有了这个权利,你安装的软件如果被允许后也会有这个权力,所以说root是有风险的,对于不太懂安卓的用户这种危险就会更大!如果楼主不熟悉安卓还是不要root的好!
求助特种部队请将帖子发到“问题反馈栏目“反馈或提供后续信息,请在我的回贴下面,直接点击“回复”
如果感觉我的回复对你有帮助请点击下面的支持!你们的支持是我最大的动力!
width:100%">
&已臻大成&
来自:浏览器
ROOT后主要方面就是1、可以装更多的如翻墙,LBE软件。2、可以删除系统预装的软件(包括华为的)3、可以刷第三方的rom
width:100%">
&已臻大成&
来自:浏览器
楼主要是感兴趣的话可以去看一下版主的帖子,介绍的比较全面
width:100%">
&已臻大成&
来自:浏览器
以前用iPhone,别人说root好,我没有root,现在用mate7,到底做不做呢,很纠结
width:100%">
&已臻大成&
来自:浏览器
以前用iPhone,别人说root好,我没有root,现在用mate7,到底做不做呢,很纠结
iphone是越狱哦,主要还是为了免费使用各种软件或者在cydia下载各种小插件
width:100%">
&已臻大成&
来自:浏览器
楼主您好,ROOT是对手机系统权限的最高获取,可以删除预装软件,不过不建议ROOT更不建议随意删除预装软件,否则会影响手机使用
width:100%">
花粉特种部队荣耀勋章
1000万花粉
纪念花粉俱乐部注册花粉数超过1000万
申请成为热心花粉,满足热心花粉条件即可获得!http://cn.club.vmall.com/forum.php?mod=viewthread&tid=183642
随手拍毕业季(上)P20pro随手拍p10镜头下的小生灵华为P20伴我新疆徒步行3清晨时光
花粉客户端
Make it Possible
Make your device special
华为云空间
Huawei cloud services
音乐播放器
Huawei Music
Huawei Vmall
关注花粉俱乐部
举报邮箱:
|关注花粉俱乐部:
增值电信业务经营许可证:苏B2-号|
Copyright (C)
华为软件技术有限公司 版权所有 保留一切权利}

我要回帖

更多关于 毛周到底有没有矛盾 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信