​一、什么​是root?

在操作系统中,一般都有两种用户,一是管理员,二是用户。管理员的权限很大,可以修改操作系统中的一切。比如,windows下的管理员可以删除记事本程序,但普通用户就不可以了。在Linux系统中,包括android系统

,在用户控制方面很严格,管理员帐号不允许被直接使用。

在linux系统中,管理员帐号叫root。android内核是linux,其管理员也叫做root。而在windows系统中,管理员帐号叫administrator。root首先是个名词,但我们把它动词化了。我们所说的“root”

, 其实是“得到root用户权限”的简称。

二,为什么要ROOT?

ROOT会带来哪些好处?可以让我们拥有掌控手机系统的权限,比如删除系统自带的软件,更换开关机铃声和动画,拦截状态栏弹出的广告等。ROOT带来了更高的权限,但对系统本身,没有任何影响。

​三, 怎么ROOT?

一般对手机root按照以下思路进行。

(一)能利用漏洞的利用漏洞提升到root。

下面以ageAgainstTheCage漏洞为例,谈谈root提权的过程。其它漏洞,参见利用系统漏洞提权的案例,http://blog.csdn.net/tanwei4199/article/details/17532805。

基于安全原因,手机android系统默认程序的运行都是以非root用户运行的,包括adbd进程。adbd进程运行在手机中,他负责解释并运行PC传送过来的命令,该进程在刚启动时具有root权限,运行过程中降权为shell用户权限。如果能想办法让adbd进程一直以root身份运行,那么通过电脑传送过来的命令也能以root身份运行了。

​RageAgainstTheCage程序就能达到上述目的,它主要做两件事:一是结束当前的adbd进程。二是创建大量的僵尸进程,这些进程默认都是shell用户身份。

我们看看它这么做会造成什么影响。首先,android系统一旦发现adbd进程结束,会重新启动新的adbd进程,此时它有root权限。其次,android系统用的是linux的内核,在linux中,对于用户最大允许运行的进程数有限制,由于RageAgainstTheCage程序创建的大量僵尸进程使shell用户拥有的进程数达到最大值,也就是说shell用户的进程数已经满了,导致新启动的adbd进程无法降权为shell用户,从而始终以root用户身份运行。这时候我们在电脑中执行adb

shell命令时发现已经进入root shell了。

从上面的分析我们可以知道,要能够root成功必须满足两点:

1、系统必须已经设置每个用户允许运行的最大进程数(官方的Android2.1、2.2好像都已经设置,2.3的不是很清楚)。

2、必须要在新启动的adbd进程降权为shell用户前创建足够多的进程。但是因为系统进程调度的随机性,并不能保证每一次都能满足这个要求,这也就是为什么网上说多试几次就会成功。

执行完rageagainstthecage程序后其实已经获得了root权限,但是每次这么做非常麻烦,所以还应该设置一些永久性的东西,主要是上传几个程序到系统中并设置相应权限。这几个程序分别是:

su:使得非root用户能够以root身份运行程序。

busybox:系统工具包,包含很多的系统使用工具。

SuperUser.apk:授权管理软件包,为需要root身份运行的程序授权。

这里再说一下为什么要上传上面几个程序。su本来是linux系统中的一个命令,意思是switch

user,可让一个普通用户切换为root用户,并可临时拥有root用户的权限。比如以普通用户的身份运行su

-root命令,能从当前用户切换到root用户,取得root的权限。可见,su是达到我们root目的一个便捷途径。

android内核尽管用的是linux,但对su的使用做了限制,只有root和

shell用户才有权运行su程序,其他用户运行都会返回错误。于是,获取android系统root权限的目标就是去掉这个限制,所以我们要替换掉系统中的su程序(位于/system/bin/或/system/xbin/目录),替换后的su将不检查实际用户权限,这样普通的用户也将可以运行su程序,

从而提升自己的权限。

替换su后,我们可以提升自己的权限,恶意程序也可以通过su来提升权限,那这样的结果将会是灾难性的。为了防止不良软件也取得root用户的权限,当我们在root的过程中,还会给系统装一个程序superuser.apk,放到system/app下面。当某些程序执行su指令想取得系统最高权限的时候,superuser就会自动启动,拦截该动作并作出询问,当用户认为该程序可以安全使用的时候,那么我们就选择允许,否则,可以禁止该程序继续取得最高权限,这也算是给系统加了一层保险吧!

使用android漏洞来直接root,这是最原始最纯洁的方式。不过这种方式root的成功率已经非常低了,因为随着android系统的升级,漏洞也在一个一个的被堵上。很多手机上的“一键root”程序就是利用这种方式。​

(二)如果官方recovery功能允许, 可以刷入包含su和root管理程序的刷机包。

1、什么是recovery?

recovery是一个小型的手机系统,类似于windows

PE或dos。可以理解为手机上装了双系统,一个是android系统(位于rom中的/system分区),一个是recovery(位于rom中的/recovery分区)。如果android系统被毁了,手机还是可以进入recovery的。

recovery的使用原理就和电脑上的ghost软件一样,起到系统备份与还原作用,也可以升级内核,刷补丁等。recovery的编写是和系统基带联系在一起的,不同的基带版本不能乱刷。

有关recovery的介绍,可参考:

2、​通过recovery怎样获取root权限?

原理很简单,进入recovery后,/system分区就变成了rom中的一个硬件盘块,对它当然可以自由修改。我们把su放到/system/xbin文件夹下,赋予rwsr-sr-x权限,基本就大功告成了。

(三)如果官方开放bootloader,

可以刷入第三方recovery,其余的步骤同上一步。

每部手机都自带官方的recovery,但有些官方的recovery功能简单,不能刷入刷机包,有的只能刷入由厂商签名的刷机包。于是我们就要用到第三方的recovery,这是目前最常见的情况。

1、什么是bootloader?

bootloader是嵌入式系统在加电后执行的第一段代码,它的作用类似于个人电脑中的BIOS固件程序,在完成CPU和相关硬件的初始化之后,再将操作系统映像装在到内存中,然后跳转到操作系统所在的空间,启动操作系统运行。

为了深入了解什么是bootloader,要先了解android的启动流程:

2、bootloader加锁

为了安全起见,有些手机厂商会对bootloader加锁。加锁的bootLoader在加载操作系统映像或其它重要固件之前,会先对其进行签名校验,签名不符的话就中止启动流程,以此来防止用户刷入修改过的包。如HTC手机在刷机前需要保证S-OFF,S-OFF代表什么呢?S代表SecurityLock安全锁,保护锁的意思,S-OFF就是关掉锁保护。再有就是Motorola的手机,有很多型号的bootLoader是锁住的,因此,在刷机前要先解锁bootLoader。

3、如何解锁bootloader?

4、如何刷入第三方recovery?​

linux 手机root原理,手机root原理相关推荐

  1. linux系统给安卓root权限,安卓手机该如何获取Root权限?方法很简单,但不建议Root...

    原标题:安卓手机该如何获取Root权限?方法很简单,但不建议Root 想要获取安卓智能手机的Root权限,现在已经是相当简单,只需要网上搜索Root精灵.Root大师.百度一键Root.360一键Ro ...

  2. 获取root权限及破解原理分析

    现在Android系统的root破解基本上成为大家的必备技能!网上也有很多中一键破解的软件,使root破解越来越容易.但是你思考过root破解的原理吗?root破解的本质是什么呢?难道是利用了Linu ...

  3. adb复制root到手机,怎样通过adb命令来root手机

    实战--Androidadb常用命令详解 ADB 全称Android Debug Bridge 是一个功能非常强大的工具,它位于Android SDK安装目录的platform-tools 子目录下, ...

  4. android10为什么开不了root,安卓手机不能ROOT怎么办

    root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限.适当的使用是可以利用一些需要root权限的应用,譬如广告阻挡.在Unix.Linux或Android中,除非确实需要,一般情况下不推荐 ...

  5. 谷歌piexl手机如何刷机 root

    目录 前言--步骤:手机先刷机再root; 一.刷机步骤 二.下面是root的步骤 1⃣️下载Magisk,并push到手机内存里 2⃣️电脑刷入第三方Recovery:Twrp 1.下载twrp文件 ...

  6. 手机怎样快速获取root权限,手机怎样快速获取root权限密码

    安卓智能手机如何获取一键ROOT权限? 安卓智能手机获取一键ROOT权限的方法如下: 准备材料:安卓智能手机 1.为了提高ROOT的成功率,选择使用腾讯应用宝作为操作平台,手机连接后打开USB调试选项 ...

  7. root开启有什么坏处吗,手机开启了root对手机有什么影响吗?

    手机root有什么坏处? 手机root后的好处: 1.深度查杀病毒木马 当手机获取Root权限后,安全软件就可以向系统请求获取Root权限,一旦安全软件获取Root权限,其就可以查杀手机固件中的顽固病 ...

  8. root化对手机什么影响,root对手机有影响

    手机root以后有什么坏处吗 手机root以后的坏处: 1.手机不安全: Root后的手机有了管理权限之后,也是给恶意的软件有了捷径可入,很容易被病毒或者木马侵入,大大地影响了手机的安全性. 2.隐私 ...

  9. root好的手机怎么硬改,手机硬改需要root吗

    root后的手机怎么升级系统? 方法: 1.在手机上找到"授权管理"软件 2.点击[设置]或[更多]按钮删除移除ROOT权限 3.重新启动手机后完成操作. Root用户是系统中唯一 ...

  10. android local root,脏牛漏洞影响范围超出想象,以后所有Android手机都能被Root?

    原标题:脏牛漏洞影响范围超出想象,以后所有Android手机都能被Root? [新朋友]点击标题下面蓝字「皮鲁安全之家」关注 [老朋友]点击右上角,分享或收藏本页精彩内容 [公众号]搜索公众号:皮鲁安 ...

最新文章

  1. Elasticsearch: 索引别名Aliases
  2. AngularJS学习篇(十六)
  3. WordPress在nginx下的URL重写规则
  4. 2、xen虚拟机的安装
  5. [云炬创业基础笔记]第二章创业者测试20
  6. C++Adaline自适应线性神经网络算法(附完整源码)
  7. matlab delete、clf、cla、close、closereq删除对象
  8. CCF 201312-4 有趣的数
  9. iBatis 事务控制 与 两表操作将SQL语句写入单表
  10. 计算机组成实验八,计算机组成原理实验八内存系统实验
  11. OSS SSL 访问异常
  12. 图片上传限制文件类型
  13. 在WPF中开启摄像头扫描二维码(Media+Zxing)
  14. 开源ONE兔3.0社交社区交友婚恋视频即时通讯双端APP原生源码
  15. linux查看cpu核数命令,Linux系統下如何查看CPU型號、核心數量、頻率和溫度?
  16. word多级标题的使用
  17. cad打印样式ctb丢失,CAD打印样式表如何设置?CTB和STB有何区别?
  18. 为IntelliJ IDEA安装EmmyLua插件
  19. 电子计算机出现的背景,世界第一台电子计算机产生的背景是什么
  20. 安卓外置SD卡linux,Android获取机身存储、内置SD卡与外置TF卡路径

热门文章

  1. Unity打开Windows虚拟键盘
  2. 使用 LDAP Browser 登入ad域控提示 Root error: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903C5, commen
  3. 固定码率(CBR)与可变码率(VBR)
  4. 房租分期业务系统-抓住新的市场机遇
  5. 我的2011--虚荣、挣扎、总结和转变的一年
  6. UnityShader(三)基础多光照+遮罩Shader
  7. 学生教育邮箱申请免费JetBrains套装正版授权
  8. 网络工程师2017上半年上午试题答案
  9. VR/AR年度创投报告
  10. 如何编写无法维护的代码,让自己稳拿铁饭碗