Android Verified Boot

来自Uotan Wiki · 刷机百科

Android Verified Boot(AVB)是一种安全功能,旨在保护Android设备免受恶意软件和未经授权的系统修改。它通过使用数字签名和完整性检查来确保设备启动过程中的安全性。

AVB 工作原理

  1. 验证引导加载程序(Bootloader):当设备的引导加载程序(即Bootloader)加载操作系统时。AVB通过验证引导加载程序其本身的完整性和数字签名来确保其未被篡改。
  2. 验证操作系统:在引导加载程序验证通过后,AVB会继续验证操作系统分区。这包括Android系统映像以及关键的系统文件,如系统分区和供应商分区。
  3. 完整性检查:AVB使用哈希函数(通常为SHA-256)来计算每个启动时加载的镜像文件的哈希值。这些哈希值与预先存储在设备上的哈希值进行比较,从而检查文件是否被篡改。
  4. 安全启动状态:如果设备检测到启动过程中任何验证失败或完整性检查不匹配的情况,它将进入“安全启动状态”。在这种状态下,设备通常会限制某些功能,如不允许访问加密数据、不允许加载启动系统(通常可见为卡在Logo并重启),以保护用户免安全威胁。

AVB 通常会在哪些分区加入

AVB通常会在以下几个重要分区加入验证和完整性检查:

  • System 分区(System Partition):包含Android操作系统的核心映像和关键系统文件,AVB会验证这些文件是否被篡改。
  • Vendor 分区(Vendor Partition):包含供应商提供的固件和驱动程序,AVB会对其进行验证以确保其安全性。

当涉及到动态分区(Dynamic Partition)时,Android Verified Boot(AVB)通常也会在以下几个关键分区加入验证和完整性检查:

  • Product 分区(Product Partition):该分区通常包含供应商特定的应用程序和配置文件。AVB会对Product分区进行验证,以确保其中的内容没有被篡改。
  • System_ext 分区(System Extension Partition):这个分区通常用于存放同上文件。AVB会验证System_ext分区的内容,以确保这些扩展的完整性和安全性。
  • Odm 分区(Odm Partition):该分区分区通常包含设备制造商的特定驱动程序和配置文件。AVB也会对Odm分区进行验证,以确保其中的信息没有被篡改。

通过在这些关键分区实施AVB,Android设备可以提高对未经授权修改和恶意软件的防护能力,从而增强用户数据和设备的安全性。

去除 AVB 验证

1. 进入 Bootloader 模式

  • 首先,确保你的设备进入 Bootloader 模式。

2.禁用 AVB 验证

  • 在 Bootloader 模式下,使用 fastboot 命令来禁用 AVB 验证。以下是需要执行的命令:

fastboot --disable-verity flash vbmeta vbmeta.img

  • 这条命令会将 vbmeta.img 文件刷入设备中,以禁用验证。请将 vbmeta.img 替换为本地存储的对应文件路径。
  • 对于使用动态分区(Dynamic Partition)的设备,还需要以下命令:
 fastboot --disable-verity flash vbmeta_system vbmeta_system.img
 fastboot --disable-verity flash vbmeta_vendor vbmeta_vendor.img
  • 同样,替换 vbmeta_system.imgvbmeta_vendor.img 为本地存储的相应文件路径。

(注意:vbmeta_vendor可能有部分动态分区并不存在,请以实际为准)

3. 重启设备

  • 完成上述操作后,重新启动设备。设备将会跳过 Android Verified Boot 的验证过程

请注意,这样做会降低设备对未经授权修改的防护能力,从而增加安全风险。在执行这些操作之前,请确保了解潜在的风险和后果,并仅在有必要的情况下进行。