Android获取root权限原理

    在说明这个过程之前,先介绍Android的一个安全机制,这个机制是我们Root机器的根源。
    Android的应用程序入口肯定是Java程序。应用程序的启动者是由系统临时根据Androidmanifest.xml中定义的权限而创建的临时用户,而不像linux那样是使用登陆者的身份启动,从而使得进程具有登陆者的所有权限。这个临时用户的权限十分有限,因此就诞生了ROOT。

    下面以SuperOneClick为例介绍这个过程。
    只提目录中的三个重要文件 1. rageagainstthecage 2. su 3. Superuser.apk

    步骤一   运行
rageagainstthecage
    

    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

    执行此步骤后再次使用adb shell,会发现提示符为#,已经在电脑Shell上获取了Root权限

    步骤二 将/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目录下,是没有权限运行的。
    所以需要把su放在/system/bin目录下。以供以后的手机应用程序使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值