【Android】Android获取root原理

背景

逆向爱好者绕不开的操作,root权限才能最大范围对调用链的控制。

相关知识介绍

root权限

在 Android 操作系统中,root 权限是指对设备完全控制的最高权限。使用 root 权限,用户可以访问操作系统的所有部分,包括系统文件和设置以及其他应用程序无法访问的部分。通常情况下,Android 设备的用户只拥有基本的权限,而没有 root 权限。

通过获取 root 权限,用户可以对其设备进行更深入的修改和控制,例如删除预装的应用程序更改系统设置安装定制 ROM 或内核,以及卸载系统应用程序等等。但是,获取 root 权限也可能导致一些风险,例如在未经授权或不当使用的情况下,可能会导致设备的不稳定性、数据丢失或安全漏洞。

要获得 root 权限,通常需要使用特定的工具或应用程序,例如 Magisk、SuperSU 等。不过,获取 root 权限可能需要进行解锁设备的 bootloader 或安装特定的 custom recovery,这些操作可能会导致设备的保修失效和安全风险。因此,在获取 root 权限之前,用户应该仔细评估风险和收益,并确保了解其所做的操作。

ROM

刷机的 ROM 包是指用于替换 Android 设备上原始操作系统的一种软件包。ROM 是 “Read-Only Memory” 的缩写,指的是一个固化的存储器,但在这里 ROM 指的是 Android 系统的完整软件包,包含操作系统、内核、系统应用程序以及其他相关组件。

ROM 包包含的是完整的操作系统,而不仅限于操作系统本身。ROM 包通常包含操作系统、内核、系统应用程序、驱动程序、二进制文件和其他相关组件。这意味着刷机的 ROM 包可以将整个操作系统替换为一个新的版本或定制版本。

系统分区

在 Android 设备中,系统分区是一个特殊的分区,用于存储操作系统和其他关键组件,例如内核、系统应用程序和驱动程序等。系统分区通常是设备的一个固态硬盘或闪存,用于存储操作系统的完整镜像和其他相关组件

系统分区通常是一个受保护的分区,只有系统管理员或特定的授权用户才能访问和修改它。对于大多数 Android 设备来说,系统分区是一个只读分区,意味着它只能被读取并不能被写入。

bootloader

在 Android 设备中,bootloader 是一个启动程序,它在设备启动时运行,并负责加载操作系统和其他相关组件。因此,bootloader 是设备启动的关键部分。

但是,设备制造商通常会限制用户对 bootloader 的访问权限,以防止用户对设备进行未经授权的修改或操纵。这意味着用户不能随意更改设备的 bootloader 或者在其上安装自定义的操作系统。

解锁 bootloader 的原理是通过修改设备的 bootloader 锁定状态,以允许用户在设备上安装自定义的操作系统、内核或其他软件。设备制造商通常会在 bootloader 中添加一个锁定状态,以防止未经授权的修改或操纵。这个锁定状态的实现方式因制造商而异,但通常是通过一个特殊的指令或命令来控制的。一旦设备的 bootloader 被锁定,用户便不能轻易地更改设备的操作系统或安装自定义软件。

卡刷和线刷

卡刷是指通过手机内置的 Recovery 模式进行刷机,一般是通过将刷机包放在 SD 卡或 U 盘中,然后在 Recovery 模式下选择“安装更新”或“安装 ZIP 包”等选项进行刷机。卡刷比较简单,不需要使用电脑和数据线,只需要准备好刷机包即可,但是它有一些局限性,比如不能进行 Bootloader 解锁等操作。

线刷是指通过电脑与数据线连接手机,使用专用刷机工具(如 Odin、Fastboot 等)将刷机包刷入手机中的一种方式。线刷比卡刷更加灵活,可以进行更多的操作,比如 Bootloader 解锁、Root 权限获取、刷入第三方 Recovery 等,同时线刷也更加安全可靠,因为在线刷过程中可以实时查看刷机日志,以便及时解决问题。

Recovery模式

Recovery模式是一种特殊的启动模式,用于修复系统问题、备份和恢复数据、刷入固件等操作。在大多数安卓设备中,Recovery模式可以通过按住特定的按键组合(如按住电源键和音量下键)进入。在Recovery模式下,用户可以进行诸如刷机、备份恢复、清除数据和缓存、挂载和格式化等操作。

Fastboot

Fastboot是一种Android设备引导模式,它允许用户在设备的bootloader上运行一些基本的命令,如刷写系统分区、刷写内核、解锁/锁定引导加载程序等操作。在Fastboot模式下,设备可以通过USB连接到计算机,然后使用命令行工具执行各种操作。

Fastboot是一种运行在bootloader上的工具,它依赖于bootloader的存在。在使用Fastboot之前,用户需要确保设备的bootloader已经解锁并允许刷写非官方的固件或者内核。通常情况下,用户需要先进入Fastboot模式,然后才能执行一些需要在bootloader上进行的操作。

获取Android root思路

root权限的主体是操作系统,所以获取root权限的思路均围绕操作系统展开。

思路1:获取当前操作系统的漏洞,利用漏洞达到权限提升的目的,不在本次讨论范围。

思路2:替换当前设备操作系统

综上知识点,思路2的流程可以总结为:

  • 获取系统分区修改权限:通过解锁bootloader获取
  • 制作/获取定制款ROM
  • 在系统分区上安装定制款ROM

复现步骤

设备信息:MI 9 8GB Android11 MIUI12.5.6稳定版

解锁bootloader

  • 下载手机解锁工具(解锁工具官网),在PC端的小米解锁工具中(这个需要windows打开,下载厚实exe文件
  • 打开exe后需要登录小米账号验证身份
  • 插入USB连接手机
  • 在需要解锁的设备中登录已经具备解锁权限的小米账号,并进入“设置 -> 开发者选项 -> 设备解锁状态”中绑定账号和设备
  • 绑定成功后,手动进入Bootloader模式(关机后,同时按住开机键和音量下键)
  • 点击PC端解锁工具的“解锁”按钮,根据提示信息等待指定时间后再次尝试或者立即解锁;

获取第三方ROM包

https://xiaomirom.com/
根据选择的刷入方式,获取不同类型的ROM包。

  • 卡刷:下载得到zip文件
  • 线刷:下载得到tgz文件

系统分区写入定制ROM

根据不同的写入系统分区的方式,选择不同的工具。

  • 卡刷

MIUI 内置的卡刷功能有联网校验机制,相较于线刷面临的限制较多。通常只允许升级系统,不可降级,没有内测资格也不能升级开发版。

  • 线刷
  1. 下载MiFlash
  2. 将电脑里的zip包解压
  3. 手机进入Fastboot并连接Miflash(需要Windows电脑)

【Android】Android获取root原理相关推荐

  1. Android手机一键Root原理分析(作者:非虫,文章来自:《黑客防线》2012年7月)

    之前几天都在做Android漏洞分析的项目,万幸发现了这篇文章.废话不多说,上文章! <Android手机一键Root原理分析> (作者:非虫,文章来自:<黑客防线>2012年 ...

  2. android编译系统root权限,Android系统获取ROOT权限后能做些什么?

    Android的设备Root了以后可以做些什么特别的操作呢?今天刷机之家小编为大家简述Root以后最实用的几种用途. 在了解Root的用途之前,我们先来简单看看Android的Root是什么. And ...

  3. android 手机获取 root 权限

    为了让android 手机获取root权限,需要经历以下几个步骤. 手机解锁 现在大部分的手机在出厂时都锁定了bootloader,需要在官网上申请解锁,以小米为例,解锁网址.解锁的具体教程不在此详述 ...

  4. Android程序获取root权限问题的最终解决与分析

          为了方便给出上一篇上一篇地址:  http://blog.csdn.net/up1up2up3/article/details/7380651,调了几天这个root权限获取问题终于搞定了, ...

  5. android apk获取root权限执行相应的操作 demo调试

    在apk中,有时候需要root权限,例如通过apk更新系统库等system的文件等,避免升级固件,或者在apk中需要直接访问某些设备等.下面是在apk中获取root权限的方法,前提是设备已经root过 ...

  6. android 执行shell root权限,Android App 获取root权限后,执行shell命令

    背景: 做一个应用,需求是获取root权限后可以停用/启用某些应用,包括系统应用!停用的应用将不在设置-->应用中展示,大部分系统自带的桌面应该也不会再显示! 如果是用menifest.xml中 ...

  7. 三星android怎么获取root,三星S8如何获取ROOT权限_三星S8ROOT获取教程

    三星S8如何获取ROOT权限,三星S8ROOT获取教程.今天在这里分享一下咱们的三星Galaxy S8+手机的root教程,这个root教程也是采用卡刷的方式进行root,操作上也简单,因为之前给大家 ...

  8. 三星android怎么获取root,三星如何获取root 三星root权限获取方法【图文教程】

    三星算是国内外一个知名的手机品牌,其手机功能齐全,外形美观,且从几百元到几千元的低中高端手机都有,因此使用者队伍十分庞大.但是使用者在刚买回三星手机的时候会发现,有很多内置程序无法卸载,导致手机内存变 ...

  9. 三星android怎么获取root,三星GT-i9128完美获取root权限教程最新版

    三星GT-i9128完美获取root权限教程最新版 三星9128怎么获取root权限?是采用高端复杂的刷入root包的方法,还是选择一款三星9128一键root工具?就小编而言,更倾向于后者!不需要学 ...

最新文章

  1. 如何用cmd命令控制mysql数据库
  2. react实战项目_前端学习路线图--从网页设计到项目开发
  3. 3dmax导出fbx ue4_Maya建模师分享干货的时间到啦,教你用UE4如何导入动画
  4. 团队冲刺阶段一第四次站立会议
  5. MST(最小生成树)的构造
  6. Magento调试 - 页面空白,打开错误报告的方法
  7. http://blog.csdn.net/u011277123/article/details/53665302
  8. 《经济学人》新一期封面主题:Govcoins 改变金融的数字货币
  9. Javascript图像处理之平滑处理
  10. 虚拟机安装程序没有找到安装在此计算机上的硬盘驱动器,安装VMware提示无效驱动器:E:\ 解决方法...
  11. python模拟ios,python模拟点击在ios中实现的实例讲解
  12. Excel_一维二维表转换(行列转换)的几种方法
  13. 数据结构单链表——一元多项式求和(C语言版)
  14. 首发,看了这份美团架构师的spring源码笔记后,才发现原来学习的思路都错了
  15. 【离散数学】 SDUT OJ 偏序关系
  16. 搭建影音系统APP低价格靠谱吗?
  17. 2020年1-3月总结
  18. Mysql存储时间,对应Api及对应的java属性
  19. WORD多合1显示;同时显示多行,一行变多行;
  20. 流式细胞仪生物信息学CRO丨Cytapex功能简介

热门文章

  1. IOS In-App Events
  2. EVE-NG裸机安装
  3. 端口号及URG和PSH的区别
  4. 自建局域网(直连和路由器、交换机)
  5. 如何通过倾斜摄影,完成实景三维建模型重建
  6. linux下x86和arm架构区别
  7. KLEE 使用(二)------ 怎么自动地生成测试用例?
  8. 跟涛哥一起学嵌入式 第07集:GNU/Linux和Linux的区别
  9. 故障诊断期刊文献分析
  10. Pandoc: LaTeX 转 Word 文档 (含参考文献样式)