doraemon

doraemon

let's go write some rusty code and revolutionize the world!

Android玩机基础知识

Android 玩机基础知识#

笔记来源于哔哩哔哩极客湾视频:玩机必看!带你入坑安卓刷机

本教程只提供玩机之前应该了解的基础框架和知识储备,

具体操作仍然应该寻找具体教程,否者在玩机过程中会遇到很多麻烦的小问题无法解决。

相关网站:

安卓分区#

安卓手机中包含了数个分区

Boot 分区#

  • 存放有启动和引导的文件,与开机启动引导相关

  • 包含了操作系统的 Kernel (内核)Ramdisk (虚拟内存)

  • Root 操作就是修改在 Boot 分区

  • 如果 boot 分区被擦除或者损坏,手机就会卡在开机的第一屏

system 分区#

  • 存放安卓系统和系统应用

  • 系统分区包含了整个操作系统 与 系统软件

  • 系统升级或者刷机很多时候都是在操作这个分区

  • system 分区损坏会卡在开机的第二屏

Vendor 分区#

与 system 分区相似的还有一个 Vendor 分区

  • 它包含了开发厂商定制的一些应用与库文件

  • 很多厂商也会直接把 Vendor 分区这些文件放进 system 分区里面,方便后期的更新和维护

Data 分区#

  • 数据分区存放用户数据,包括应用、音视频、图片、系统设置等

  • 擦除 data 分区会清空用户数据,但不会影响到手机的正常启动

Cache 分区#

  • 安卓的缓存区

  • 缓存可以帮助你快速的打开系统最常访问的数据和应用程序,不需要重复加载

  • 擦除缓存并不会影响个人数据,后续使用还是会自动生成

Recovery 分区#

  • 恢复分区包含一个简易 Linux 系统用于恢复和维护手机

  • 可以用来恢复和更新其他分区的内容 (如擦除数据),类似于 Windows PE (Pre-installing environment)

AB 分区#

近年来出现了越来越多不存在 recovery 分区的手机,这是因为安卓从 7.0 开始引入了新的 OTA 升级方式,A/B System Updates(AB 分区)

这种升级方式把 boot 和 system 分区设置了两套,SlotA SlotB ,平时用的 Slot 是主分区,另一个 Slot 是备用分区

这样在系统升级的时候可以做到无缝升级,用户可以边用手机后台边升级系统 (更新备份分区的内容),升级完成之后重启手机,备份分区就会自动切换成主分区,若升级失败系统无法启动是就会切会之前的分区,缺点就是会占用双倍的 System 空间。

image

VA/B 分区#

为了解决空间占用的问题,于是又出现了 AB 分区的改进版 OTA 升级方式, Virtual A/B System Updates (VA/B 分区),

两代系统,相同文件共用,不同文件存于虚拟 A/B 分区,目前出厂搭载安卓 11 以上的机型普遍采用了 VA/B 分区

image

从玩机的角度来讲 A/B 或者 VA/B 分区刷第三方 recovery 会比较麻烦一点,因为这两种分区都把 recovery 分区并入了 boot 分区

image

Bootloader#

  • 如果把 recovery 比作 PE,fastboot 阶段所属的 bootloader 就相当于电脑上的 BIOS/UEFI
  • bootloader 顾名思义就是 引导 (boot) 加载器 (loader),长按电源键开机的那一刻起,bootloader 就已经开始工作了。
  • 在这段时间里bootloader 会初始化手机里的硬件设备,引导操作系统内核 (boot 分区里的 Kernel)
  • 在引导后期我们可以选择进入一个叫 fastboot 的阶段 (一般长按电源 + 音量减键进入),这就是我们常说的刷机模式
  • fastboot 比 recovery 更加底层,fastboot 下可以把手机连接电脑,输入命令来直接刷机。
  • 解锁手机,注入 boot 镜像,线刷系统等很多操作都要通过 fastboot 来进行。
  • bootloader 并不属于某个系统分区,如果系统某个分区损坏导致手机变砖,一般可以进入 fastboot 救砖
  • 使用 fastboot 刷机一般称为线刷(数据线连接电脑),使用 recovery 刷机一般称为卡刷 (卡刷包下载到手机)

电脑手机环境配置#

fastboot#

  • 可以去安卓官方的链接下载电脑端用的 Android SDK ,SDK Platform Tools

  • Android SDK Platform-Tools 是 Android SDK 的一个组件。它包含与 Android 平台进行交互的工具,主要是 adbfastboot

  • 下载解压后就能看到有 adb 和 fastboot 文件,在此文件目录下打开终端就可以输入命令对手机进行操作了

  • 如果不能检测到设备就去电脑端设备管理器安装 fastboot 驱动,驱动链接:玩机资源合集 (jamcz.com)

image

fastboot 常用命令#

#显示fastboot设备
fastboot devices
#获取手机相关信息
fastboot getvar all
#重启手机
fastboot reboot
#重启到bootloader
fastboot reboot-bootloader
#擦除分区
fastboot erase (分区名)
例:清除system分区:fastboot erase system
#刷入分区
fastboot flash (分区名) (分区镜像)
例:将boot镜像 "boot.img" 刷入boot分区:fastboot flash boot boot.img
#引导启动镜像
fastboot boot (分区镜像)
例:启动到recovery分区:fastboot boot recovery.img
#刷入ROM
fastboot update (刷机包)
例:将 update.zip 刷入:fastboot update update.zip
#解锁Bootloader
fastboot oem unlock (参数视机型而定)

ADB(Android Debug Bridge)#

  • 连接电脑一般要打开手机开发者选项里面的 USB 调试,也就是 ADB (安卓调试桥)。

  • ADB 是安卓提供给我们用于调试设备的命令行工具,借助 ADB 就可以在电脑端用各种命令来控制手机 (不需要 root)。

  • 比如如输入命令给手机安装软件,调整手机分辨率,模拟按键点击等好玩的操作。

  • 很多电脑端的手机工具箱,如搞机工具箱,都是基于 ADB 实现的

Root#

  • ADB 只能实现一些调试功能,想要实现更多功能就要借助 Root 权限了

  • 开发者选项里打开 OEM 解锁 (没有就算了)

  • 想要 root 一般想要解锁 Bootloader (bl 锁),然后修改 boot 文件,刷入 magisk (修补后的 boot),root 的过程就相当于修改 boot 分区

  • 厂商为了保证手机安全一般会对 bootloader 上锁,不解锁 bootloader 就无法对分区进行修改

  • 不同品牌解锁方式不同,这里不详细讨论

root 方法#

想要 root 一般有两种方法:

1. 通过第三方 recovery 来 root#

  • 官方 recovery 一般只有简单的恢复功能,不会允许你乱刷东西
  • 想要实现类似 PE 的效果就要刷一个好用的第三方 recovery
  • 第三方 recovery 不光可以 root,还能刷内核,刷系统,备份数据等等
  • TWRP 是目前比较出名的第三方 recovery

2. 直接在 fastboot 里刷 boot 镜像#

magisk 获取 root 的原理是对 boot 分区进行修补,在 recovery 里可以直接操作,

但我们不用 recovery 也能提取当前系统的 boot 镜像,交给 magiskAPP 进行修补完后再手动刷回系统。

boot 一般可以在刷机包里面提取

线刷包一般解压直接就能找到 boot.img 文件,卡刷包解压后会有一个非常大的 payload.bin 文件,可以用 payload_dumper.exe 程序来解包,解包完成后就能找到 boot.img,把拿到的 boot 文件传到手机里,手机上装好 magisk 的 APP, 打开之后点击安装,选择修补一个文件,选择 boot.img,修补完成后会把修补完的镜像导出到 download 文件夹里。把修补完的 boot 拷贝到电脑上,手机重启到 fastboot 模式,使用 fastboot 命令 (fastboot flash boot) 刷入修补后的 boot 就可以获取 root 权限了。

小米全机型全版本 ROM 下载地址:XiaomiROM.com - 小米 ROM 线刷包,卡刷包的最新及历史版本下载

boot 管理工具 Magisk#

magisk 就是我们常说的面具,它不紧可以用来获取 root 权限,还可以挂载各种模块

magisk 实现 root 原理#

magisk 通过挂载一个和系统文件相隔离的 Magisk 分区来加载自己的内容,一切都在 bootloader 阶段完成,在实现功能的同时可以让系统分区 (system) 毫发无损,所以可以隐藏 root。

image

9008 刷机 (EDL 串口线刷模式)#

一加与 OPPO 给的刷机 (线刷) 工具是基于 9008 的,9008 是高通平台更底层的刷机工具,不到万不得已才会使用。

虽然 fastboot 线刷的方法可以解决大部分的软件问题,但不可以刷写一些更底层的东西,比如基带串号。

有时候手机刷成黑砖,连 fastboot 都不能进入了,这个时候就只能使用 9008 模式刷机了。

9008 模式可以解决手机几乎所有的软件问题。

高通通用:QFIL 工具

image

联发科通用:SP Flash 工具

image

MiFlash (Pro) 里含有厂家定制 9008 刷机模式,加入了一些验证机制,需要账号授权才能使用 9008。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。