Android 获取ROOT权限原理解析
一、 概述
本文介绍了android中获取root权限的方法以及原理,让大家对android玩家中常说的“越狱”有一个更深层次的认识。
二、 Root的介绍
1. Root 的目的
可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等。
2. Root的原理介绍
谷歌的android系统管理员用户就叫做root,该帐户拥有整个系统至高无上的权利,它可以访问和修改你手机几乎所有的文件,只有root才具备最高级别的管理权限。我们root手机的过程也就是获得手机最高使用权限的过程。同时为了防止不良软件也取得root用户的权限,当我们在root的过程中,还会给系统装一个程序,用来作为运行提示,由用户来决定,是否给予最高权限。这个程序的名字叫做Superuser.apk。当某些程序执行su指令想取得系统最高权限的时候,Superuser就会自动启动,拦截该动作并作出询问,当用户认为该程序可以安全使用的时候,那么我们就选择允许,否则,可以禁止该程序继续取得最高权限。Root的过程其实就是把su文件放到/system/bin/
Superuser.apk 放到system/app下面,还需要设置/system/bin/su可以让任意用户可运行,有set uid和set
gid的权限。即要在android机器上运行命令:adb shell chmod 4755
/system/bin/su。而通常,厂商是不会允许我们随便这么去做的,我们就需要利用操作系统的各种漏洞,来完成这个过程。
特别说明:我们烧机中的Eng版本并没有Root权限
3. Root的方法
从Root的原理我们了解到,root过程分三步:
a. adb push su /system/bin
b. adb push SuperUser.apk /system/app
c. adb shell chmod 4755 /system/bin/su
若系统是eng版的,做到以上三步,那么我们Root就大功告成,但实际是不行的。为什么呢?原因有三:
1、user版的/system路径是只读权限,不能简单写入
2、 chmod需要Root权才能运行(死循环了)
3、有些系统在启动时会自动将su的4755权限设成755,甚至直接删除su
那么针对这种情况,我们怎么办呢?非常简单:烧一个eng版本的boot.img就行了
可以用展讯的烧录工具,或者用fastboot模式从sd卡烧一个boot.img文件即可
至此,我们Root就成功了,可以用R.E(Root Explorer)在根目录创建和删除文件。
三、 深入理解Root机制
其流程是:
1. Su 被用户调用
2. Su 创建了一个socket监听
3. Su 向Superuser发送了一个广播,说是有一个程序要请求root
4. Su 等待socket 数据接收。有超时处理。
5. Superuser 界面收到广播后,弹出一个对话框,询问用户
6. Superuser 向传来的数据中的socket写回用户应答结果。
7. Su 根据socket得到的结果处理应该不应该继续执行
8. 完成提权管理
superuser.apk这个程序是root成功后,专门用来管理root权限使用的,防止被恶意程序滥用。
转载:https://blog.csdn.net/pan0755/article/details/76927015
Android 获取ROOT权限原理解析的更多相关文章
- Android 上SuperUser获取ROOT权限原理解析
Android 上SuperUser获取ROOT权限原理解析 一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. ...
- Android获取ROOT权限
获取Android的ROOT权限其实很简单,只要在Runtime下执行命令"su"就可以了. // 获取ROOT权限 public void get_root(){ if (is_ ...
- Android获取ROOT权限的通用方法
背景 自从Android问世以后,给手机获取ROOT权限变成了玩机爱好者老生常谈的话题.拥有手机,却不能拥有操作手机的最高权限,这对于手机爱好者而言,这怎么可以忍?所以无论Android升到什么什么版 ...
- Android获取Root权限之后的静默安装实现代码示例分析
转:http://blog.csdn.net/jiankeufo/article/details/43795015 Adroid开发中,我们有时会遇到一些特殊功能的实现,有些功能并没有太高技术难度,但 ...
- Android 获取 root权限
在进行android 开发的时候,经常用真机进行调试,有时候需要把手机中的sqlite数据复制出来.这时候就需要获取手机的root权限.通过 adb shell 命令可以获取权限. 1. 运行cmd ...
- 转:Android 获取Root权限
来自:http://blog.csdn.net/twoicewoo/article/details/7228940 import java.io.DataOutputStream; import an ...
- android中获取root权限的方法以及原理(转)
一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...
- [Android Pro] Android fastboot刷机和获取Root权限
参考文章: https://developers.google.com/android/nexus/images 转载自: http://www.inexus.co/article-1280-1 ...
- 获取root权限及破解原理分析
2012-03-18 17:58:45| 分类: android |字号 订阅 如今Android系统的root破解基本上成为大家的必备技能!网上也有非常多中一键破解的软件,使root破解越来越ea ...
随机推荐
- Executor框架(一)Executor框架介绍
Executor框架简介 Executor框架的两级调度模型 在HotSpot VM的线程模型中,Java线程被一对一映射为本地操作系统线程.Java线程启动时会创建一个本地操作系统线程:当Jav ...
- Wechall 部分WP
前言: 开始打CTF,掌握一些新的姿势与知识. 这里我选择的平台是Wechall.这里从简单到难 WP部分: Training: Get SourcedAnswer: 查看网页源代码 Training ...
- 【转】ECharts3.x中的点击事件与行为
在ECharts中主要通过 on 方法添加事件处理函数,ECharts中的事件主要分为两种,1)鼠标事件,在鼠标click or hove 时触发鼠标事件: 2)另外一种是在ECharts在做图形 ...
- redis删除key
shell命令如下 #!/bin/bash echo "$(redis-cli keys "_query*")" | while read LINE; do e ...
- python 编写远程连接服务器脚本
import paramiko client = paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPoli ...
- UI5-文档-4.37-Content Density
在本演练教程的这一步中,我们将根据用户的设备调整内容密度.SAPUI5包含不同的内容密度,允许您为支持触摸的设备显示更大的控件,为鼠标操作的设备显示更小.更紧凑的设计.在我们的app中,我们将检测设备 ...
- 使用webstorm创建vue项目
进行vue开发首先需要配置node环境 配置好node环境在命令行中输入node -v npm -v则表示环境配置成功 在webstorm命令行中输入命令 1.安装脚手架 npm install -g ...
- WP runtime 获取cookie
HttpBaseProtocolFilter httpBaseProtocolFilter = new HttpBaseProtocolFilter(); HttpCookieManager http ...
- ubuntu 16.04 install wine
from: https://wiki.winehq.org/Ubuntu If your system is 64 bit, enable 32 bit architecture (if you ha ...
- Mysql count+if 函数结合使用
Mysql count+if 函数结合使用 果林椰子 关注 2017.05.18 13:48* 字数 508 阅读 148评论 0喜欢 1 涉及函数 count函数 mysql中count函数用于统计 ...