root_rootkit - CSDN
root 订阅
Root,也称为根用户,是Unix(如Solaris、AIX、BSD)和类UNIX系统(如Linux、QNX等),及Android和iOS移动设备系统中的唯一的超级用户,因其可对根目录执行读写和执行操作而得名。其相当于Windows系统中的SYSTEM(XP及以下)/TrustedInstaller(Vista及以上)用户。其具有系统中的最高权限,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件,添加文件或删除所有文件等等。 展开全文
Root,也称为根用户,是Unix(如Solaris、AIX、BSD)和类UNIX系统(如Linux、QNX等),及Android和iOS移动设备系统中的唯一的超级用户,因其可对根目录执行读写和执行操作而得名。其相当于Windows系统中的SYSTEM(XP及以下)/TrustedInstaller(Vista及以上)用户。其具有系统中的最高权限,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件,添加文件或删除所有文件等等。
信息
中文名
root
售后影响
部分厂商对root后机器无保修
外文名
root
类    别
系统用户及权限
操作平台
UNIX,Linux,macOS,Android
作    用
完全掌控系统底层及系统文件
root背景介绍
现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源,普通用户在所分配到的资源内进行各自的操作,相互之间不受影响。但是这些普通用户的权限是有限制的,且用户太多的话,管理就不便,从而引入root用户,此用户是唯一的,且拥有系统的所有权限。root用户所在的组称为root组。“组”是具有相似权限的多个用户的集合。
收起全文
  • root专用工具

    2020-07-30 23:30:07
    root专用工具,支持90%的Android系统,亲测可用!
  • 近两年root权限已经非常困难,奇兔刷机打破常规,采用终极方案,千余款机型支持一键ROOT权限,覆盖安卓所有版本,目前最高支持安卓9.0。
  • 强制root工具kingoroot

    2019-02-01 21:02:46
    针对部分无法root的手机,如酷派y90等支持强制root 官网:https://www.kingoapp.com/android-root/download.htm 很奇怪的是,貌似这个官网要翻墙

    针对部分无法root的手机,如酷派y90等支持强制root
    官网:https://www.kingoapp.com/android-root/download.htm
    很奇怪的是,貌似这个官网要翻墙

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

     

    2012-03-18 17:58:45|  分类: android |字号 订阅

    现在Android系统的root破解基本上成为大家的必备技能!网上也有很多中一键破解的软件,使root破解越来越容易。但是你思考过root破解的原理吗?root破解的本质是什么呢?难道是利用了Linux kernal的漏洞吗?本文将简单对root的破解原理进行分析。

    网上很多root教程所使用的都是rageagainstthecage程序,今天下载了rageagainstthecage.c源程序看了一下,大致理解了获取root权限的基本过程和原理。
    首先简单解释一下什么是root过的手机(Android系统),所谓root过的手机就是我们可以以root的权限运行各种程序,进而完全控制系统。
    因为官方系统基于安全原因,默认程序的运行都是以非root用户运行的,包括adbd进程。adbd进程是手机中运行的一个守护进程,他负责解释并运行PC传送过来的命令,
    该进程由init进程创建,但是创建后自身通过调用setuid()系统调用设置运行的用户为shell用户。所以我们在手机中执行ps命令看到的adbd进程都是以shell用户身份运行的。
    获取root权限的关键是想办法让adbd进程重新以root身份运行,这样通过电脑传送过来的命令也就能够以root身份运行了。
    众所周知,Android系统用的是linux的内核,在linux中,对于用户最大允许运行的进程数有限制,所以rageagainstthecage程序在运行后先结束当前的adbd进程,
    然后init进程会重新启动新的adbd进程。但是rageagainstthecage程序同时会创建大量的子进程,这些子进程默认都是shell用户身份,从而使得shell用户拥有的进程数达到最大值,这就使得新启动的adbd进程调用setuid()系统调用失败,因为shell用户的进程数已满,adbd无法把自己运行的用户设置为shell用户,从而保持在刚创建时的root用户身份中运行。
    这时候我们在电脑中执行adb shell命令时发现已经进入root shell了。
    从上面的分析我们可以知道:要能够root成功必须满足两点:
    1、系统必须已经设置每个用户允许运行的最大进程数(官方的Android2.1、2.2好像都已经设置,2.3的不是很清楚)。
    2、必须要在新启动的adbd进程调用setuid()系统调用前创建足够多的进程数。但是因为系统进程调度的随机性,并不能保证每一次都能满足这个要求,这也就是为什么网上说多试几次就会成功。
    执行完rageagainstthecage程序后其实已经获得了root权限,但是每次这么做非常麻烦,所以还应该设置一些永久性的东西,主要是上传几个程序到系统并设置相应权限,这几个程序分别是:
    su--使得非root用户能够以root身份运行程序。
    busybox--系统工具包,包含很多的系统使用工具。
    SuperUser.apk--授权管理软件包,为需要root身份运行的程序授权。

    网上下的一键root包其实也就是把上面的工作制作成脚本让它自动执行罢了。

     

    网上有一篇文章已经对root破解的基本原理进行了简单介绍,大家可以先参考一下《》,本文只能说对root原理进行了方向性的描述,但是在一些具体的方面没有描述清楚。本文将会对其进行一些必要的扩展和补充。

         如果你进行过程序开发,在root过的手机上面获得root权限的代码如下:

       1: Process process = Runtime.getRuntime().exec("su");
       2: DataOutputStream os = new DataOutputStream(process.getOutputStream());
       3: ......
       4: os.writeBytes("exit\n");
       5: os.flush();

         从上面代码我们可以看到首先要运行su程序,其实root的秘密都在su程序中,《》中讲到Android系统默认的su程序只能root和shell可以用运行su,这个是安全的。如果把这个限制拿掉,就是root破解了!

         下面我们仔细分析一下程序是怎样获得root权限的,如果对Linux的su命令熟悉的朋友可能知道su程序都设置SUID位,我们查看一下我的手机(已经root破解)上的su权限设置,

    获取root权限及破解原理分析 - KidGeek - 等待机遇

          我们发现su的所有者和所有组都是root,是其实是busybox的软链接,我们查看busybox的属性发现,其设置了SUID和SGID,并且所有者和所有组都是root。SUID和SGID的作用是什么呢?如果你不太清楚,请参考《Linux进程的实际用户ID和有效用户ID》,这样运行busybox的普通用户,busybox运行过程中获得的是root的有效用户。su程序则是把自己启动一个新的程序,并把自己权限提升至root(我们前面提到su其实就是busybox,运行期它的权限是root,当然也有权限来提升自己的权限)。

         再强调一下不光root手机上su需要设置SUID,所有的Linux系统上的su程序都需要设置SUID位。请参考一下UC服务器的su的权限情况:

    获取root权限及破解原理分析 - KidGeek - 等待机遇

         我们发现su也设置了SUID位,这样普通用户也可以运行su程序,su程序会验证root密码,如果正确su程序可以把用户权限提高的root(因为其设置SUID位,运行期是root权限,这样其有权限提升自己的权限)。

         这样我们就可以看出其实Android系统的破解的根本原理就是替换掉系统中的su程序,因为系统中的默认su程序需要验证实际用户权限(只有root和shell用户才有权运行系统默认的su程序,其他用户运行都会返回错误)。而破解后的su将不检查实际用户权限,这样普通的用户也将可以运行su程序,也可以通过su程序将自己的权限提升。

         到这里大家对root破解不感到神秘了吧。root破解没有利用什么Linux内核漏洞(Linux内核不可能有这么大的漏洞存在),可以理解成root破解就是在你系统中植入“木马su”,说它是“木马”一点儿都不为过,假如恶意程序在系统中运行也可以通过su来提升自己的权限的这样的结果将会是灾难性的。所以一般情况下root过手机都会有一个SuperUser应用程序来让用户管理允许谁获得root权限,也算是给系统加了一层保险吧!

     

    Android的应用程序入口肯定是Java程序。应用程序的启动者是由系统临时根据Androidmanifest.xml中定义的权限而创建的临时用户。而不像linux那样是使用登陆者的身份启动,从而使得进程具有登陆者的所有权限。这也是Android的安全机制之一。新的权限机制也带来新的问题,Android给应用程序的权限是按功能来分,java虽然可以访问文件系统。但由于应用程序本身是临时用户启动,这个临时用户权限十分有限。因此诞生了<越狱/root机器>这样的产物其实root机器不是真正能让你的应用程序具有root权限。它原理就跟linux下的像sudo这样的命令。在系统的bin目录下放个su程序并属主是root并有suid权限。则通过su执行的命令都具有Android root权限。
    Su的源代码网上也有,有兴趣的同学去google下。
    当然使用临时用户权限想把su拷贝的/system/bin目录并改属性并不是一件容易的事情。这里用到2个工具跟2个命令。工具就是busybox。不熟悉的同学可以去网上google下。这个太有名了我就不说了。把busybox拷贝到你有权限访问的目录然后给他赋予4755权限,你就可以用它做很多事了。当然busybox只能不能提升权限,真正提升权限的是ratc这个程序,这个程序中一键root包里面可以找到,作用是rooting在adb的shell。
    网上介绍Ratc的文章不多,它是rage against the cage 的缩写。是真正的提升权限的破解程序。虽然我没看过源代码,但估计是利用adb源代码部分内容来实现的,原理估计跟模拟器使用adb shell登陆可以获得root shell差不多。(因为它运行需要adb连接才会成功)。使用busybox前先运行ratc,这样运行busybox的UID将是0,也就是root。首先把system目录改成可读性的:busybox mount -o remount,rw /system,当然你还不能改下面的文件,因为system下文件的所有者都不是你。但你可以偷梁换柱把system下的目录给换掉。使用命令Busybox mount -t tmpfs none /system/xbin,呵呵这下xbin目录你随便写了。
    将su跟busybox弄过去cp /data/data/xxx/su /system/xbin。然后赋权限chmod 4755 /system/xbin/su。/然后使目录生效busybox --install -s /system/xbin,
    别忘善后busybox mount -o remount,ro /system去掉system可写。这样只是临时的,只能用su跟busybox能执行一些原来系统没有权限执行的命令而已。当系统重启后/system/xbin又变为原来的文件。真正要改系统的话需要自己写内核代码(相当于windows的驱动程序)。内核文件拥有所有权限。使用busybox命令insmod /data/data/xxx/xxx.ko装载内核文件,你想干嘛就可以干嘛了。
    当然我们不是搞破解的没必要去改别人的机器,我们只是想让自己应用程序具有root权限而已。所以临时的su就可以了。我们用c++写一个可执行文件。使用socket可以跟java的程序通讯。然后将需要使用root权限才能执行的代码放在c++程序里,然后java程序中创建新的su进程,将c++程序带全路径作为参数1。启动后就可以通过socket调用c++函数去执行你想干的事了。
    最后程序执行完了别忘了善后busybox umount /system/xbin。
    最后说说要注意的事情,如果机器已经拥有Android root权限的话就不需要做这些事情了,但root过的机器都有装有个权限管理的程序。会弹出对话框。但这个程序管理能力有限,如果不想让他弹出的话。也许可以通过改su文件名来解决。有兴趣的同学不妨试试。

    SuperOneClick 获取 Root 权限的原理

    转贴自:http://blog.csdn.net/liwei_cmg/article/details/6313944

    一、前言

    经过笔者自己测试与分析,得出结论:所以Android手机获取Root权限,最直观
    最有效,最简便的就是SuperOneClick方法!
    与i9000基带版本的什么JPE,JPD,JP8等等,没有关系
    与i9000Android软件版本的什么2.0,2.1,2.2等等,没有关系
    与具体的什么Android手机也没有关系
    管你是三星的,还是MOTO的,还是HTC……

    到底与什么有关呢,我理解是Linux的内核版本!当然普通用户根本不必关心!
    后续的文章会提到有关破解Root的底层概念,当然也超出普通用户的理解范围。

    这里,我只想介绍一下SuperOneClick获取Root权限的简单原理!

    二、提示

    有关Root权限的获取方法可参考
    《Android应用.三星i9000系列(3).无需刷机轻松获取Root权限》
    本系列文章:http://blog.csdn.net/liwei_cmg/category/241839.aspx
    三、原理简介

    我们已经知道adb(Android Debug Bridge)这个概念,不管是Moto的,还是Samsung
    的,Android手机通过USB连接电脑后,安装好驱动,在设备管理器里都会看到Android
    Composite ADB Interface这样的东东。SuperOneClick就是调用的adb这样的接口。
    同样豌豆荚,91手机助手这样的软件也是使用了adb。

    关于Android手机USB连接电脑的相关内容,可参考:
    《Android应用.三星i9000系列(1).版本选择与USB连接电脑》

    四、SuperOneClick提取Root权限的基本步骤

    F:/Own/Phone/Samsung/Tools/SuperOneClick 的目录下所有文件

    2010/10/16  22:04           577,335 adb.exe
    2010/10/18  11:27           339,885 adblinux
    2010/10/18  11:26           171,656 adbmac
    2010/10/16  22:04            96,256 AdbWinApi.dll
    2010/10/16  22:04            60,928 AdbWinUsbApi.dll
    2010/10/16  23:29         1,062,992 busybox
    2010/10/16  22:04             5,392 rageagainstthecage  //步骤一
    2010/10/16  22:04            24,120 sqlite3
    2010/10/16  22:04            26,264 su                  //步骤二
    2010/11/04  21:21           379,392 SuperOneClick.exe
    2010/10/16  22:04           196,521 Superuser.apk       //步骤三

    手机USB调试方法连接好电脑后,在电脑上运行SuperOneClick.exe,在弹出的
    界面上,点击Root按钮,便开始了Root权限提取的自动操作!

    其实它的步骤是这样的:

    步骤一:将rageagainstthecage文件存放在手机/data/local/tmp下,并执行
    ——————————————————————————–

    1) 将文件放在/data/local/tmp下,其他目录无法执行。命令如下:
    F:/Own/Phone/Samsung/Tools/SuperOneClick>adb push rageagainstthecage /data/local/tmp

    2) 使用adb shell,修改rageagainstthecage文件权限
    F:/Own/Phone/Samsung/Tools/SuperOneClick>adb shell
    $ cd /data/local/tmp
    cd /data/local/tmp
    $ chmod 777 rageagainstthecage

    3) 使用adb shell,运行rageagainstthecage
    $ ./rageagainstthecage

    [*] CVE-2010-EASY Android local root exploit (C) 2010 by 743C

    [*] checking NPROC limit …
    [+] RLIMIT_NPROC={2410, 2410}
    [*] Searching for adb …
    [+] Found adb as PID 19374
    [*] Spawning children. Dont type anything and wait for reset!
    [*]
    [*] If you like what we are doing you can send us PayPal money to
    [*] 7-4-3-C@web.de so we can compensate time, effort and HW costs.
    [*] If you are a company and feel like you profit from our work,
    [*] we also accept donations > 1000 USD!
    [*]
    [*] adb connection will be reset. restart adb server on desktop and re-login.
    $

    此时退出shell,再次使用adb shell,会发现提示符为#,已经在电脑Shell
    上获取了Root权限。如果不是#,重复执行(./rageagainstthecage),
    直到提示#。

    F:/Own/Phone/Samsung/Tools/SuperOneClick>adb shell
    #

    步骤二:将/system修改为可读写,把su复制到/system/bin/
    ——————————————————————————–

    1)上步骤一成功出现的#号提示符下,修改/system
    # mount -o remount rw /system
    #

    2)另开一个命令行窗口,复制su至/system/bin
    F:/Own/Phone/Samsung/Tools/SuperOneClick>adb push su /system/bin

    su这个文件的功能,便是实现:普通用户至root超级用户的权限切换!

    步骤三:将授权管理的标准Android软件包(Superuser.apk)复制到手机并安装
    ——————————————————————————–

    这个过程很简单,不再赘述,就是adb push与adb install。授权管理其实
    就是管理哪些程序能够使用su。也就意味着对超级用户权限的使用进行管理。

    步骤四:重启手机
    ——————————————————————————–

    其实就是重启测试一下。

     

    五、总结
    在提取Root权限过程中,只有两个重要的文件:

    rageagainstthecage
    su

    rageagainstthecage负责直接破解获取Root权限,然后才能修改/system/。
    su如果只放在/data/local/tmp目录下,是没有权限运行的。

    $ ls -l su
    ls -l su
    -rwxrwxrwx shell    shell       26264 2010-10-16 22:04 su
    $ ./su
    ./su
    Permission denied
    $

    所以需要把su放在/system/bin目录下。以供以后的手机应用程序使用!
    至于rageagainstthecage,su的运行原理,就不是本文现在讨论的问题了。

    This entry was written by sense, posted on August 5, 2011 at 20:43, filed under Android and tagged Android. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL.
     

    android 手机/平板大行其道的今天,获得 root 权限成了大家关注的话题。

    据我所知,需要获得 root 权限的嵌入式操作系统,只有 ios 和 android。其中 ios 称为越狱,随着 ios 的发布,有众多高手开发了相应的傻瓜越狱工具。但是 android 应用非常广泛,却没有统一的技术支持,所以只能由用户自己进行权限破解。因为 android 的内核是 linux,而 linux 中 root 拥有至高无上的权限,所以一时间获取 root 权限也成了很多非 linuxer 关注的话题。
    一键获取 android root 权限: Unviersal Androod (不适用所有机型)

    为什么要获得 root 权限呢?

    其实日常应用并不需要 root 权限,但是由于一些 android 的限制,我们必须拥有 root 权限才能:

    • 下载收费软件
    • 修改系统文件
    • 替换 hosts 文件
    • 截图
    • 等等 …

    连截图都要 root 权限……(记得 ios 是 home+power 吧?)

    消歧

    使用 adb 连接到设备获得的 root 权限并不是 设备所拥有的 root。

    也就是说,连接设备成功后,我们对设备的系统具有了 root 权限,而设备系统自身并没有 root 权限。例如您在 market 看到 need rooted device 字样,那就是意味着您的设备系统也具有 root 权限。通常来说,root 指设备自身可以执行 su 并获得 root 权限。

    原理

    adb ( android debug bridge ) 链接设备,并使用具有 root 权限的 adb 修改/替换设备 su 文件,从而具有 root 权限。

    前期准备

    • 开启您的 android 设备,并执行如下操作: settings — application — development, 勾选usb debugging;

    • 创建 DE>/etc/udev/rules.d/51-android.rules 文件,内容如下:DE>

    ubuntu:

    1
    2
    DE>SUBSYSTEM==&amp;amp;amp;quot;usb&amp;amp;amp;quot;, SYSFS{idVendor}==&amp;amp;amp;quot;0bb4&amp;amp;amp;quot;,             MODE=&amp;amp;amp;quot;0666&amp;amp;amp;quot;DE>
    DE>SUBSYSTEM==&amp;amp;amp;quot;usb_device&amp;amp;amp;quot;, SYSFS{idVendor}==&amp;amp;amp;quot;0bb4&amp;amp;amp;quot;,             MODE=&amp;amp;amp;quot;0666&amp;amp;amp;quot;DE>

    arch:

    1
    2
    3
    DE>SUBSYSTEM==”usb”, SYSFS{idVendor}==”0bb4″, MODE=”0666″DE>
    DE>SUBSYSTEM==”usb”,ATTR{idVendor}==”0bb4″,ATTR{idProduct}==”0c02″,SYMLINK+=”android_adb”DE>
    DE>SUBSYSTEM==”usb”,ATTR{idVendor}==”0bb4″,ATTR{idProduct}==”0c01″,SYMLINK+=”android_fastboot”DE>

    其中 USB Vendor IDs 可以在 这里 查到。

    更改文件权限:

    1
    DE>chmodDE> DE>a+rx DE>DE>/etc/udev/rulesDE>DE>.dDE>DE>/50-androidDE>DE>.rulesDE>

    重新加载 udev 规则:

    1
    DE>udevadm control –reload-rulesDE>
    下载越狱软件包,并把 su 拷贝到 adb/tools 内

    开始~

    插入 usb 数据线,然后打开终端,进入 adb/tools 目录,执行

    1
    DE>adb devicesDE>

    Android adb devices显示 ????????????    no permissions怎么办?

    Windows:运行adb root

    Linux:
    adb kill-server
    sudo adb root

    此时显示为:

    List of devices attached 0123456789ABCDEF    device

    成功列出已连接的设备后,执行

    1
    2
    3
    4
    5
    6
    7
    DE>adb shell DE>DE>mvDE> DE>/system/xbin/suDE> DE>/system/xbin/osuDE>      DE># 备份原 su 文件DE>
    DE>adb push DE>DE>suDE> DE>/system/xbinDE>      DE># 把 adb/tools 的 su 文件 推送到 android设备 /system/xbinDE>
    DE>adb shell DE>DE>rmDE> DE>/system/bin/suDE>      DE># 移除其他的 su 文件DE>
    DE>adb shell DE>DE>lnDE> DE>-s DE>DE>/system/xbin/suDE> DE>/system/bin/suDE>      DE># 软链 suDE>
    DE>adb shell DE>DE>chmodDE> DE>6755 DE>DE>/system/xbin/suDE>       DE># 变更权限DE>
    DE>adb shell DE>DE>syncDE>      DE># 同步所有缓存中的文件DE>
    DE>adb shell reboot      DE>DE># 重启 android 设备DE>

    (您需要根据您的设备和设置变更执行的路径)

    等待设备重启完成后,可以在 adb shell 模式输入:su(回车),会出现su: access granted, courtesy of www.magicandroidapps.com #等提示,代表成功了。

    现在您可以使用root explorer,蓝牙上网,截图,martket enabler等工具啦~

    为什么我不需要 root

    网上超多的 root 教程会让你惊奇的发现,ROOT好简单哦。但是看到新手一拿到手机就马上刷ROOT,然后再问:取了ROOT有什么用?
    我们不能完全责怪用户,因为很多教程都没有强调刷ROOT可能导致的严重后果,会危及到你手上设备的安全性。实际上,很多用户根本不需要ROOT权限!

    在开始之前,请先问你自己以下2个问题:
    1.你有几次细读过菜市场里下载的软件或者游戏的使用协议?
    2. 你有几次看了软件使用协议中的权限要求(full internet, gps location, read contacts等等)后会问“嗯,为什么这个游戏需要这些权限呢?”
    你是不是还是照安装不误呢?

    事实是,绝大多数的用户根本不会理会 程序所 请求 的这些权限,他们会照安装不误。

    虽然 market 已经通知了用户软件所需的权限,但这远远不够。 因为用户还是不知道这些权限和安全有什么关系。有些软件也许没有什么恶意,但设计的却极其的烂。因为开发者也是人,也会犯错。有时,程序员会选择一个他们认为安全的协议,但实际上却是很危险的。又或者有些恶意软件,可以让别人远程清空你的手机,或者将你手机里的信息传送回指定服务器后再清空你的手机(也许已经有这样的软件了)。我以上所说的这些例子表明,即便是非ROOT权限的程序都有可能很危险,何况那些获得ROOT权限的程序呢?

    其实,有些功能其实完全不应该需要ROOT权限的。很多用户取得ROOT权限只是为了添加一些自己的主题,为了一些小众的需求而已。

    老实的说,看到越来越多的ANDROID新手认为不ROOT就不能正常工作,让我感到很沮丧。(via

    参考资料

    http://developer.android.com/guide/developing/device.html

    http://www.kunli.info/2009/08/22/archlinux-android-adb-recognize-device/

    http://henryh.cn/blog/android_cupcake_root.html

    http://bbs.hiapk.com/thread-652917-1-1.html

     https://www.deleak.com/blog/2010/12/17/android-root-on-linux/

    展开全文
  • 手机Root教程

    2018-06-08 11:10:08
    声明:本文转帖自米轴论坛,作者:小嘿灰;原文链接地址:...篇幅较长,只需要下载工具的老鸟可以按块快速寻找,新手也可以寻找自己需要的部分,比较详细,请仔细阅读。写在前面...

    声明:本文转帖自米柚论坛,作者:小嘿灰

    原文链接地址:http://www.miui.com/thread-12263814-1-1.html


    4月16日更新:由于官方TWRP迟迟不支持安卓8.0+的数据解密,添加了xda里blankaf大神推荐的修改版TWRP,完美支持8.0+,而且很干净


    篇幅较长,只需要下载工具的老鸟可以按块快速寻找,新手也可以寻找自己需要的部分,比较详细,请仔细阅读。

    写在前面的话:很多人都有root需求,或者删预装或者个性化,但基本都被root过程吓得望而却步,这里就详细的教你怎么root。本教程尽量提供源地址下载而不使用网盘方式,以保持来源纯正和后面的更新。
    敬告新手:root是存在风险的,请谨慎授权,不要对不信任的应用进行授权,这样几乎就不存在风险了。

    -----------------------------------------

    为什么不推荐使用开发版自带的root?
    操作太繁琐,不停的确认等5s(用过的都知道);root不完全,有些root使用场景权限会不够,会出现一些奇怪的授权问题。
    -----------------------------------------

    提醒:所有的root都需要解锁,请在进行下面操作之前确认你的手机已经解锁了bootloader。具体过程请进入以下网址,里面有教程
    http://www.miui.com/unlock/index.html
    解锁有风险,因为一旦解锁别人就可以通过线刷的方式清空你的手机数据。不过如果你开启了“查找手机”,再次刷入miui也会要求你登陆原小米账号,但第三方rom不会受到这个限制。解锁前请三思,如果你手机里的资料很重要,解锁可能导致资料被小偷清空。

    -----------------------------------------

    刷机新手扫盲:
    手机有三种模式:一,普通模式,这不用多说了吧;二,recovery模式(开机时按住“音量+”和电源键),这个模式有点像电脑的bios或者ufei,提供一个很精简的系统,我们可以通过它进行“卡刷”;三,fastboot模式(开机时按住“音量-”和电源键),这个模式下可以通过连接电脑将手机作为一个存储器进行一些操作,也就是所谓的“线刷”。

    -----------------------------------------
    刷入前的准备和相关软件的下载:
    root过程主要分两步,第一步是在fastboot模式下,使用ADB命令刷入刷入第三方recovery;第二步是通过第三方recovery刷入root包(supersu或者magisk框架)。

    ADB工具包下载地址:https://pan.baidu.com/s/1oAfyD2E 密码: yzth
    PS:ADB包是从Android SDK开发工具里提取出来的,这里就贴一个网盘地址吧。

    第三方recovery推荐使用TWRP,这也是大家用的最多的。
    root包主要有supersu和magisk框架,推荐使用magisk框架:supersu的好处在于简洁,只是用来root而已,但目前作者chainfire处于半退休状态,更新速度比较慢;magisk框架的好处在于授权速度快,对新系统的支持更好,有些系统目前只能用magisk进行root,比如最新的pixel experience。

    官方TWRP下载地址:https://twrp.me/xiaomi/xiaomimi6.html  (找不到下载地方的人请寻找Download Links,下面的链接随便找一个就行了)
    修改版TWRP下载地址(支持8.0+):https://www.androidfilehost.com/?fid=818070582850499029(需科学 上网),搬运地址:
    链接: https://pan.baidu.com/s/1AAw2kBJ-138JybaTrJkMRg 密码: bqfj

    supersu下载地址:https://download.chainfire.eu/1220/SuperSU/SR5-SuperSU-v2.82-SR5-20171001224502.zip
    magisk框架下载地址:http://tiny.cc/latestmagisk(需要科学 上网),搬运地址:
    链接: https://pan.baidu.com/s/1rKsJnXnoW3HiKUY01IKBTg 密码: hizf

    手机正常工作在fastboot模式需要安装ADB驱动,安装小米官方的通用刷机工具Miflash的同时就会同时帮你安装好驱动,而Miflash以后也会有利于你线刷官方miui,推荐安装。
    通用刷机工具Miflash下载地址:http://www.miui.com/shuaji-393.html

    -----------------------------------------

    root过程:(不要怕,虽然看上去很长,但很多都是准备工作,核心过程其实很少,我用红色标注了,等用熟了,分分钟的事情)

    一,安装第三方recovery:
    1,在电脑上安装好miflash或者自己准备好ADB驱动,保证fastboot模式下手机可以被正常识别;
    2,在电脑上解压ADB工具包到任意目录,将下载的TWRP镜像也放入工具包目录,确认该镜像名为twrp.img;
    3,手机进入fastboot模式,电脑上点击cmd-here程序,输入以下命令:fastboot flash recovery twrp.img;
    4,输入以下命令:fastboot.exe boot twrp.img等待刷入完毕,关闭工具,弹出手机。
    5,长按“音量+”和电源键直到手机进入TWRP(不要直接重启手机,这会导致官方recovery覆盖TWRP)。

    二,通过TWRP刷入root包:
    1,准备一个u盘,把zip包复制到u盘,将u盘连接到手机;(你可能需要一个转接口。不用u盘也可以,你可以提前在系统里将压缩包复制到手机存储里,只要是你能确认找到的地方)
    2,这时你应该还处在TWRP中……进入“安装”,点击左下角的“选择存储”,选择“USB-OTG”,找到supersu或者magisk压缩包;(没使用u盘的请选择内部存储)
    3,确认刷入,重启手机。(重启的时候注意选择不安装TWRP的应用,那个没什么用处)

    至此,root大功告成,好好享受吧!

    推荐应用:Rootexplorer(root后必备的文件管理器),钛备份(备份神器……),门卡模拟(别等官方了,蛋疼)

    -----------------------------------------

    注意:
    刷好TWRP后需要立即刷入root包,不然手机重启之后可能会被官方recovery覆盖;

    关于安卓8.1:
    安卓7.0以后加密了内置存储,目前官方TWRP无法解密安卓8.0以上的版本,所以刷入supersu后无法自动安装授权软件,但其实root已经成功,你可以把压缩包里的supersu.apk解压出来手动安装到你的手机完成授权或者直接使用文中提到的修改版TWRP。

    关于系统升级:
    由于修改了系统,otg方式不能保证成功,最好直接下载完整包更新,可以正常更新。注意,自动进入TWRP更新完成后,手要快,手机重启的时候迅速长按“音量+”和电源键直到手机进入TWRP,立即刷入supersu,否则官方recovery会覆盖TWRP,那样的话你就得重刷一次TWRP。

    关于trwp和root包的版本更新:
    你可以待后续软件更新后,从提供的网址自行替换原来的旧版本,现在正处在安卓7到8的迭代时期,软件时有更新,如果出现问题,可以换成新版本软件试试。magisk自带的软件可以实现自我更新,不需要自己去下载了。
    展开全文
  • Root检测与反检测

    2019-10-21 13:15:55
    Root检测手段 检查已安装的包: SuperSU应用程序 生根应用程序:利用权限升级漏洞来启动设备的应用程序(例如One Click Root,iRootRoot Apps:需要root权限才能使用其功能的应用程序。例如busybox,SetCPU,...

    0x00背景

    需要在手机上构建一个环境对root过的设备进行伪装,让设备里面的应用将该设备当成未root的设备。
    

    0x01 Root检测手段

    1.检查已安装的APK包:

    SuperSU应用程序或者一键root的程序:
    (例如One Click Root,iRoot,360一键root,kingroot)
    Root Apps:需要root权限才能使用其功能的应用程序。例如busybox,SetCPU,Titanium Backup。
    Root Cloakers:隐藏设备是否已植根的应用程序。例如Root Cloaker,Root Cloaker Plus。
    API挂钩框架:提供API挂钩功能的库。例如Cydia Substrate,Xpose Framework。

    2.检查已安装的文件:

    静态路径:
    / system / xbin / su,/ system / bin / su或/system/xbin/…/xbin/su(路径操作)
    / system / xbin / busybox以及BusyBox创建的命令的所有符号链接。
    在生根期间或生根后安装的热门应用程序包的/ data / app / 或/ system / app / 。
    动态路径:解析PATH变量,在每个条目后附加“/ su”; 在循环中打开每一个
    检查BUILD标签:来自Google的股票Android图像是使用“release-keys”标签构建的。如果出现“ 测试密钥”,这可能意味着Android映像是开发人员构建或非官方构建。该值基本上来自“ro.build.tags”。

    3.检查目录权限:

    Root使某些根文件夹可读,如/ data或可写,如/ etc,/ system / xbin,/ system,/ proc,/ vendor / bin等。运行mount命令并检查是否有任何设备使用“rw”挂载标记,或尝试在“/ system”或“/ data”文件夹下创建文件。
    尝试使用命令“ mount -o remount,rw / system ” 挂载“/ system”分区,并检查返回码。
    C heck流程/服务/任务:
    ActivityManager.getRunningAppProcesses方法返回当前正在运行的应用程序进程的列表。此API可用于确定是否有任何需要root权限的应用程序正在运行。
    getRunningServices或getRunningTasks:获取当前正在运行的服务或任务。
    使用Shell命令检查生根特征:使用Runtime.exec,ProcessBuilder或execve(“su”)

    ps | grep :列出当前正在运行的进程。
    ls - :检查文件系统中是否存在文件
    包列表:
    pm path :输出目标包的完整路径
    cat /system/build.prop或grep ro.build.tags:检查是否= release-keys。该测试仅可用作指标,因为在野外存在许多相反的观察结果。
    构建版本:“ ro.modversion ”可用于识别某些自定义Android ROM(例如CyanogenMod)

    4.检查系统属性:

    ro.secure = 0,表示adb shell将以root用户身份运行,而不是shell用户。
    ro.debuggable = 1或service.adb.root = 1,然后adb也将以root身份运行。
    毋庸置疑,这些技术可以通过功能挂钩或自定义构建Android ROM等来绕过。

    开源的rootbeer就是用来查看是否运行在root环境
    https://github.com/scottyab/rootbeer/blob/master/README.md


    0x02 root反检测手段

    原理:hook调用api的函数
    在这里插入图片描述

    开源的RootCloak用来对抗root监测
    https://github.com/devadvance/rootcloak
    在这里插入图片描述

    参考:
    https://www.blackhat.com/docs/eu-15/materials/eu-15-Benameur-All-Your-Root-Checks-Are-Belong-To-Us-The-Sad-State-Of-Root-Detection.pdf

    Detecting Root on Android

    https://blog.csdn.net/lintax/article/details/70988565

    展开全文
  • 方法分为永久性获取root权限以及非永久性获取Root权限 非永久性获取Root权限: 非永久性获取Root权限可以在我们要键入的命令之前加上sudo前缀。 如我们要键入的命令是: rm ,以Root用户执行的方式就是: sudo rm 这样...
  • 这里讲的切换到root用户,并不是在图形界面中用root权限打开文件浏览器,而是直接在命令行中获得root权限。   众所周知,UNIX/LINUX拥有很多丰富的命令,这些命令均是直接通过命令行的方式执行的,其强大而丰富...
  • 最近在网上看到一种CSS写法,之前不怎么见过。出于学习查了一下。特此记录 原来这些仅仅是自定义的css属性,在需要的时候可以使用var()函数引用 关于var()函数的作用和使用方法,参考:MDN var() ...
  • root身份登录Linux

    2017-12-25 09:47:45
    输入 :su passwd root为了用root登入,sudo vi /etc/pam.d/gdm(或sudo vi /etc/pam.d/gdm-autologin)中,请注释下面的一行, #auth required pam_succeed_if.so user != root quiet如果还不行,到 sudo vi
  • ubuntu设置root用户密码

    2009-12-23 17:16:00
    安装完Ubuntu后在终端使用命令:su -然后输入密码,总是不正确。原来是自己没有设置ROOT密码。...Ubuntu 中的 root 帐号默认是被禁用了的。在这种情况之下,如果你想要使用 root 的权限来干些事情,就
  • 在测试的时候不小心把centos的/root用rm -rf给删除了 删除/root目录,系统不会崩溃,也可以正常启动,但就是看着不爽! 解决办法: 1.直接创建/root目录;mkdir /root 2.复制/etc/skel/下的隐藏文件到/root目录...
  • Root你的设备

    2015-01-27 14:02:27
    Root你的设备 玩智能手机的人都会存在两大烦恼,一个是iPhone上的“越狱”,另一个就是Android上的”Root”。在Android设备中获得超级用户(Super User)权限的过程中我们称为Root,即类似Linux系统下的Root账户。...
  • 起因:今天使用 Linux 系统想移动一个命令,但是这个命令我安装的时候又不是 next -> next 所以并没有在默认的 /usr/bin 目录下。 这个时候就用到了这两个命令: which(单独的查询命令所在路径) ...
  • 1、为什么要获取root权限?答:一些命令在正常状态下没有权限会报错,只有获取了root权限才能正常操作。比如我们想修改一些文件:vim /etc/shells, 修改后保存,报错如下图: 所以要我们需要获取root权限。 2...
  • 对于出现拒绝访问root用户的解决方案 错误1045(28000):用户'root'@'localhost'(使用密码:YES)拒绝访问 首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using ...
  •  正常启动MYSQL服务后,敲Linux中root账户和密码进入不去。2. 从/etc/my.cnf 配置文件中加入skip-grant-table后正常登陆,但是不能创建用户等多操作总结来说:想进去mysql后不能操作多指令,操作多指令又不能进去...
  • 本文介绍了android中获取root权限的方法以及原理,让大家对android玩家中常说的“越狱”有一个更深层次的认识。   二、 Root的介绍 1.  Root 的目的 可以让我们拥有掌控手机系统的权限,比如删除一些system/app...
  • 文章转载自:https://www.cnblogs.com/gumuzi/p/5711495.html 一般这个错误是由密码错误... 假设我们使用的是root账户。 ... #vim /etc/my.cnf(注:windows下修改的是my.ini) ...在文档内搜索mysqld定位到[mysqld]文本...
  • 1、使用:sudo passwd root设置root的密码,如下图所示: 2、使用su root来测试是否可以进入root用户,如果出现#说明已经设置root用户的密码成功,如下图所示: 3、进入到/usr/share/lightdm/lightdm.conf....
1 2 3 4 5 ... 20
收藏数 2,805,494
精华内容 1,122,197
关键字:

root