Root


Linux:Root == Windows:Adminstrator


Android是Linux系统吗?

操作系统 = 系统内核 + 文件系统

Linux发行版:Linux内核 + 文件系统(ext3/4)

Android:Linux内核 + 文件系统(ext3/4)

Android 没有本地窗体系统

而Linux是能够脱离X窗体的。

Android 没有glibc library

Android并不包含一整套标准的Linux应用程序

而Linux也是能够脱离这两点的。

Android内置了专有的驱动程序

然并卵。Linux的内核也分主次,驱动程序也不是不能脱离的,仅仅是去掉后无法识别相应的设备。并不影响Linux的内核的装载和运行。并且在Linux Kernel Configuration里能够自由配置须要卸载的项目。不能由于添加了驱动就觉得不是Linux。并非决定操作系统性质的关键。

推断操作系统种类的并非其上层建筑,而是深层的系统内核和文件结构。

Linux内核中与驱动相关且比較核心的是驱动接口(Linux驱动运行和安装规范)。是一套二进制规范。

综上。Android实质上是Linux。

那么,Root对于Android意味着什么?

用su命令切换到root用户


Android为什么要Root?

删除非官方或定制系统预装的垃圾应用

  • 拥有root权限后直接复制
  • 依据Android Rom复制
  • 通过Recovery升级包方式复制

控制开机载入项

拥有很多其它权限

调试Linux驱动

改动启动画面


提取Root权限的步骤

1.刷一个合适的Recovery

方法一:在bootloader模式下复制整个文件系统

方法二:在Recovery模式将文件拷贝到Android设备的指定文件夹

刷入Clockwork Recovery

通过adb reboot bootloader命令或者关机下按组合按键进入bootloader模式。

fastboot:



危急的命令:

fastboot flash bootloader bootloader.img

// 假设bootloader.img错误。则须要更换主板

自毁命令:

fastboot erase bootloader

// 擦除

刷Recovery:

fastboot flash recovery recovery.img

重新启动设备

fastboot reboot

2.改造su命令的源码

Android自带的su命令仅仅同意root和shell用户(adb shell)调用

3.制作Recovery刷机文件(*.zip)

主要由待复制的文件和Edify语言(用于对文件和文件夹进行操作)编写的脚本文件组成

编写Recovery升级包中的updater-script脚本文件,将su命令拷贝到/system/xbin文件夹中。

4.运行su命令提取Root权限

改造后的su命令,能够被终端和App调用。

5.让ROM本身拥有Root权限(非必需)

不然进入终端运行su命令后才拥有Root权限。


Edify

Android内嵌脚本语言。用于编写updater-script脚本文件。

updater-script是Recovery Rom和升级包的核心。全然由函数组成。

ui_print(msg_1,…,msg_N);

用于在Recovery界面输出字符串,至少须要一个參数。指定多个參数,会将參数值连起来输出。

run_program(prog, arg1,…,argN);

该函数用于运行程序,prog參数是必需的,表示要运行程序文件的完整路径。

其它參数可选。如:

run_program(“/sbin/busybox”,”mount”,”/system”);

delete(file1,…,fileN);

删除一个或多个文件,參数为文件的路径。如:

delete(“/system/xbin/su”);

package_extract_dir(package_path, destination_path);

用于提取刷机包指定文件夹package_path的全部文件到目标文件夹destination_path。

set_perm(uid, gid, mode, file1,…fileN);

设置一个或多个文件的权限。

uid是用户id。gid是用户组id。

假设想让文件的用户和用户组都是Root,须要将uid和gid设为0。

mount(fs_type, partition_type, location, mount_point);

挂载分区。如:

mount(“ext4”, “EMMC”, “/dev/block/paltform/s3c-sdhci.0/by-name/system”, “/system”);

unmount(mount_point);

卸载分区。

如:

unmount(“/system”);

$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('

    ').addClass('pre-numbering').hide();
    $(this).addClass('has-numbering').parent().append($numbering);
    for (i = 1; i ').text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

Android Root原理初探的更多相关文章

  1. Android root 原理

    Android root 原理 0x00 关于root linux和类Unix系统的最初设计都是针对多用户的操作系统,对于用户权限的管理很非常严格的,而root用户(超级用户)就是整个系统的唯一管理员 ...

  2. Android Root原理

    概述:通过阅读本文可以深刻理解Android系统中获得Root权限的方法和原理.本文会详细介绍Root的目的,原理和代码层次的具体实现方法. Android Root介绍: 1. Root目的 手机获 ...

  3. Android系统Root原理初探(转)

    http://www.imooc.com/learn/126 chkconfig setup 解压update.zip这个文件,可发现它一般打包了如下这几个文件: 或者没有updates而是syste ...

  4. [转] Android root 原理

    欢迎转载,转载请注明出处:http://www.cnblogs.com/lanrenxinxin/p/5572640.html 0x00 关于root linux和类Unix系统的最初设计都是针对多用 ...

  5. Android root检测方法小结

    转载目的,之前主要应用这里的原理解决了,手机被某个APP检测为root过的手机的问题,记录后续可能参考. 出于安全原因,我们的应用程序不建议在已经root的设备上运行,所以需要检测是否设备已经root ...

  6. [Android Pro] android root权限破解分析

    许 多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简 单及安全的,破解Root权限的原理就是在手机的/s ...

  7. 基于unity3d游戏的android版本逆向初探

    https://bbs.pediy.com/thread-212532.htm [文章标题]: 基于unity3d游戏的android版本逆向初探 [文章作者]: dreaman [作者邮箱]: [e ...

  8. Android ADB原理及常用命令

    Android调试桥(ADB, Android Debug Bridge)是一个Android命令行工具,包含在SDK 平台工具包中,adb可以用于连接Android设备,或者模拟器,实现对设备的控制 ...

  9. NFC(6)NFC编程的几个重要类,NFC硬件启动android应用原理

    用于NFC编程的几个重要类 Tag NFC 标签 NfcAdapter Nfc 的适配类 NdefMessage 描述NDEF格式的信息 NdefRecord 描述NDEF信息的一个信息段,类似tab ...

随机推荐

  1. HTTPS协议,TLS协议

    一.HTTPS 协议 HTTPS协议其实就是HTTP over TSL,TSL(Transport Layer Security) 传输层安全协议是https协议的核心. TSL可以理解为SSL (S ...

  2. 转:ef获取某个表中的部分字段值

    我有个新闻表 id,title,body,createtime,author,click 使用ef4.1 仅仅读取 id,title,createtime 并显示在页面上. public static ...

  3. Input类型是checkbox时checked属性获取

    记录一下checkbox 的 checked 属性的获取办法,以备忘记: 假如你的一个HTML页中有这么一段代码: <input name="chbRem" id=" ...

  4. C语言 第三章 关系、逻辑运算与分支流程控制

    目录 一.关系运算 二.逻辑运算 三.运算优先级 四.if语句 4.0.代码块 4.1.单if语句 4.2.if else 4.3.多重if 4.4.?号:号表达式 五.switch语句 一.关系运算 ...

  5. salesforce零基础学习(八十三)analytics:reportChart实现Dashboard(仪表盘)功能效果

    项目中经常会用到Report以及Dashboard来分析汇总数据,Dashboard可以指定view as user,如果针对不同的用户需要显示其允许查看的数据,比如  根据role hierarch ...

  6. 让ffmpeg支持10bit编码

    文章版权由作者柯O德尔和博客园共有,请尊重并支持原创,若转载请于明显处标明出处:http://www.cnblogs.com/koder/ 最近因为工作需要,要进行265 10bit编码,于是从ffm ...

  7. Javascript中prototype属性

    prototype作为JS相对比较难理解的一个知识点,在这里发表下自己的理解. 本文将包含以下几部分内容: 1.js prototype的简单介绍, 2.js构造函数的介绍, 3.prototype的 ...

  8. 下一个计划 : .NET/.NET Core应用性能管理系统

    前言 最近几个月一直在研究开源的APM和监控方案,并对比使用了Zipkin,CAT,Sky-walking,PinPoint(仅对比,未实际部署),Elastic APM,TICK Stack,Pro ...

  9. JAVAFX-4 开发应用

    JavaFx 形状 Node类是所有JavaFX场景图形节点的基本基类.它提供了转换和应用效果到任何节点的能力. javafx.scene.shape.Shape类是Node类的子类.所有较旧的Jav ...

  10. vscode调试html页面,及配置说明

    一.效果目的 1.在VSCode里,直接F5打开html页面,并且可以在编辑器里,进行断点调试js代码: 二.工具准备 1.VSCode 软件 2.一个js项目 3.VSCode 上装一个插件:Deb ...