0

    【Android】Android获取root原理

    2023.05.16 | admin | 199次围观

    【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的流程可以总结为:

    复现步骤

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

    解锁bootloader 获取第三方ROM包

    根据选择的刷入方式,获取不同类型的ROM包。

    系统分区写入定制ROM

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

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

    下载MiFlash将电脑里的zip包解压手机进入Fastboot并连接Miflash(需要Windows电脑)

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论