安卓手机ROOT和刷机基本操作——以红米Note7刷安卓原生系统并Root为例

2023-11-09

前言

学习安卓逆向需要进行调试,虽然之前对测试机root过可以进行一些调试,但是某些软件不能正常运行调试,遂选择刷安卓原生系统(PixelExperience)

一.简介

1. 安卓权限

  1. 软件权限(第三方软件) 权限最低,要向用户请求权限
  2. 用户权限 高于第三方软件,可以进行授权
  3. ROOT权限 最高权限

2. 安卓分区

Boot分区

包括了内核(Kernel)和虚拟内存(Ramdisk),root主要也是修改boot分区,如果boot损坏就无法启动,会卡在第一屏开机logo页面

System分区

包含了整个操作系统和系统软件,系统升级和刷机通常就是在操作这个分区.如果system分区损坏则会卡在第二屏,开机动画界面,无法进入系统
Vendor分区
包含了厂商定制应用和库文件,很多厂商也会直接把这些文件放在system分区

Data分区

包含了手机使用中存储的各种用户数据,包括应用,音视频,图片,文档,系统设置等.擦除该分区则会清空手机所有数据,不会影响系统启动

Cache分区

安卓系统缓存区,用于快速打开系统最常访问的数据和应用程序,清除缓存不会影响系统使用

Recovery分区

恢复分区,包含一个简易linux系统,可以用来恢复和更新其他分区,类似于Windows Pe 还可以对其他分区进行擦除,重启等操作,刷机很多时候都是在该分区进行

3. Fastboot

线刷和卡刷简介:

  1. 线刷: 通过数据线连接电脑,进入fastboot刷机
  2. 卡刷: 下载好系统包到手机中,进入recovery刷机

近年来出现了越来越多不存在recovery分区的手机,安卓从7.0开始引入了新的ota升级方式 A/B system updates,这种方式将boot和system等分区变为A/B两套,可以无缝升级,重启手机后自动切换分区

请添加图片描述

此时便需要使用fastboot刷机
类似于电脑的BIOS,开机后bootloader会初始化硬件设备,引导操作系统内核,之后可以选择进入fastboot模式进行刷机
例如小米手机可以在关机状态下长按关机键和音量-键进入fastboot
请添加图片描述

二.前置准备

1. Android SDK 工具

下载链接SDK 平台工具版本说明
解压后可以看到adb和fastboot工具
可以直接在文件夹内打开cmd或者将该文件夹添加至环境变量来执行命令
请添加图片描述

2. 解BL锁

  1. 打开开发者选项,打开usb调试和oem解锁
  2. 解开Bootloader锁(BL锁)
    点击开发者选项中的设备解锁状态,绑定账号和设备(要插手机卡)
    然后使用小米官网的解锁工具,手机进入fastboot模式按照解锁工具提示即可解开bl锁

三. ROOT

1.Fastboot线刷(推荐)

获取系统boot镜像

MIUI可以在xiaomiROM.com选择对应型号下载卡刷包
也可以在手机系统更新选项中选择下载完整更新包,然后将文件传送到电脑上
解压后得到boot.img文件

修补boot.img

  1. 手机上先安装Magisk管理端app
  2. 使用命令adb push boot.img /sdcard将刚刚得到的boot文件推送至手机
    打开文件管理就可以在内部存储设备目录下找到boot.img
  3. 在magisk中点击安装,选择修补一个文件,修补刚刚的boot.img文件
  4. 在内部存储设备/Download/目录下可以找到magisk_pached的img文件,再将修补后的boot.img传送到电脑上

刷入boot

  1. 手机进入fastboot模式
  2. 电脑使用命令
    adb reboot fastboot                   //重启至fastboot
    fastboot flash boot "boot.img路径"    //刷入修补后的boot
    
  3. 如果ab分区机型刷入提示失败可以使用
    fastboot flash boot_a xxx.img			//刷a分区
    fastboot flash boot_b xxx.img			//刷b分区
    
    刷掉两个分区
    重启后打开magisk管理app,若成功显示版本号和超级用户选项则成功获取root权限
    请添加图片描述

2. Recovery卡刷(可以尝试)

  1. 进入twrp官网,下载设备对应型号的boot.img文件
  2. 电脑上执行刷机命令 fastboot flash recovery “img文件路径”
  3. recovery安装magisk
    将magisk包(后缀名改为zip)放到手机中
    关机状态下长按电源和音量+键直到出现logo即可进入recovery
    安装magisk.zip
    重启后将.zip改为.apk,安装magisk管理端
    如果magisk显示了版本以及下方有超级用户的选项则说明成功root

缺点:需要twrp适配手机,ab分区手机可能需要刷两遍

四. 红米Note7刷安卓原生系统

登录pixelexperience官网
找到note7,点击install guide请添加图片描述

根据InstallGuide进行操作,点击下方的Show Instructions即可查看详细步骤(非常详细,照做即可)

  1. 解BL锁
  2. 下载Recovery分区镜像文件并安装
    adb reboot bootloader
    fastboot flash recovery “img路径”
    关机后按住电源和音量+键直到出现徽标即可进入recovery
  3. 下载并安装PixelExperience安装包
    在recovery中先恢复出厂设置
    再选择更新以及Apply from ADB
    电脑使用adb sideload filename.zip
    之后便会自动刷pixel系统,重启之后就可以正常使用了

在这一步可以提取.zip文件中的boot.img,然后使用magisk修补,进fastboot进行root

五. 参考资料

玩机必看!带你入坑安卓刷机,小白也能看懂的ROOT基础指南来啦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安卓手机ROOT和刷机基本操作——以红米Note7刷安卓原生系统并Root为例 的相关文章

  • Android平台源码中哪里可以找到版本信息

    Android 平台源文件中的版本信息在哪里找到 我尝试查找 设置 gt gt 中列出的有关手机的一些信息 显示的一些信息包括固件版本 模块编号 基带版本 内核版本 你可以给它办理登机手续platform build core versio
  • Android浏览器上的Web应用程序宽度问题

    所以到目前为止我只在 Android 浏览器上遇到过这个问题 基本上我的网站几乎一直运行良好 而且我还没有在 Dolphin Opera 或 Skyfire 上看到这个问题 但偶尔当我从手机主屏幕之一上的书签重新打开 Android 浏览器
  • Android Accessibility 执行触摸操作

    我想知道是否可以使用 Android 辅助功能服务在屏幕上的位置执行触摸操作 例如 Bundle arguments new Bundle arguments putInt coord X X value arguments putInt
  • Android相当于javascript的setTimeout和clearTimeout?

    setTimeout 有一个答案https stackoverflow com a 18381353 433570 https stackoverflow com a 18381353 433570 它没有提供我们是否可以像在 JavaSc
  • 如何在我的 Android 应用程序中实现应用内购买?

    如何在我的 Android 应用程序中实现应用内购买 我提到 http developer android com guide market billing billing integrate html billing service ht
  • Android 导航回到 Activity;不要重新加载父级

    我有一个场景 我单击 ListFragment 并启动一个新的 Activity 如下所示 public void onListItemClick ListView l View v int position long id super o
  • Kotlin 和惯用的书写方式,基于可变值“如果不为空,则...”

    假设我们有这样的代码 class QuickExample fun function argument SomeOtherClass if argument mutableProperty null doSomething argument
  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • 使用 cordova cli 构建时的 Android 安装位置

    我正在使用 cordova CLI 工具构建一个大型 cordova phonegap 应用程序 我需要 AndroidManifest xml 文件中的 installLocation 具有 installLocation auto 或p
  • 与 Dagger 一起使用时,Espresso 生成 FileNotFoundException

    我一直在研究旧版 Android 应用程序 尝试为其添加测试和适当的架构 该应用程序有一个主要LaunchActivity它在启动时运行一系列检查 最初 该活动使用 Dagger 来 注入依赖项 活动将使用它来运行检查 但效果相当糟糕 我转
  • 使用 Glide 库设置图像加载完成后进度条的可见性

    您好 我想要一个图像进度条 该进度条将在图像加载时显示 但当图像加载完成时 我想将其设置为消失 早些时候我为此使用了毕加索库 但我不知道如何将它与 Glide 库一起使用 我知道有一些资源就绪功能 但我不知道如何使用它 谁能帮我 毕加索图书
  • 如何在 Android 中保存 Edittext 中的文本而不丢失文本的粗体、斜体等功能

    我想做的就是从 Edittext 中获取文本 该文本具有粗体和斜体等功能 并将其保存在文本文件中 但是当我读回并显示它时 这些功能丢失了 它们不显示 如何通过将文本保存在文本文件或任何文件中来保持丰富的功能 您可以使用Html toHtml
  • 为什么 ExpandableListView 更改 ChildView 设置(Android)?

    我对使用 ExpandableListView 有疑问 就我而言 我有两个组视图和两个子视图 而子视图由一个带有多个按钮 文本视图等的相对布局组成 例如 当首先扩展第二组并对视图持有者进行一些更改并随后扩展第一组时 先前所做的更改也会自动应
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 获取当前图片在图库中显示的位置

    在我的应用程序中 我有一个图片库 但我想检测当前显示图像的位置 例如 当我启动我的活动时 位置是 0 但是当我在图库中滚动时 我想获取当前显示图像的位置 我尝试过 OnFocusChanged OnItemClicked 但只有当我单击图库
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc
  • Android中绑定适配器有什么用?

    我一直在阅读有关Android中绑定适配器的文章 但我似乎不明白它 何时使用绑定适配器 有人可以用一个简单的例子来解释它吗 我读过的一篇文章在主活动中有一个绑定适配器 绑定适配器有一个参数 toastMessage 显然 只要 toastM
  • 画布:尝试使用回收的位图错误

    我是一个相当新的程序员 所以任何建议将不胜感激 我有一个类 每次调用它时都会在循环中运行 AsyncTask AsyncTask 看起来像这样 public class LoadImageTask extends AsyncTask

随机推荐