资讯详情

使用引导加载程序 fastboot flashing unlock

所有 Google 品牌设备都应设为可解锁,以便可以重新刷写上述所有分区。可以使用 fastboot flashing unlock 设置此解锁模式后,系统重启后应保留此模式。
除非 fastboot flashing get_unlock_ability 为1,否则设备应拒绝 fastboot flashing unlock 命令。如果 get_unlock_ability 对于0,用户需要启动进入主屏幕,然后依次转到设置>“系统”> 开发者选项菜单并启用 OEM 解锁选项 unlock_ability 设置为1。标记应在重新启动和恢复出厂设置后保持不变。
发送 fastboot flashing unlock 命令结束后,设备应提醒用户警告非官方图像可能有问题。确认后,应恢复出厂设置,防止未经授权的数据访问。即使引导加载程序不能正确重新格式化设备,设备也应恢复出厂设置。只有在恢复出厂设置后,才能设置持久性标记,以便重新刷设备。
fastboot flashing lock 命令将重新锁定设备,并恢复出厂设置,以便在未来尝试刷写/解锁设备时恢复出厂设置。
所有尚未覆盖的东西 RAM 都应在 fastboot flashing unlock 在这个过程中被重置。这种措施可以防止读取上次启动的剩余 RAM 内容攻击。同样,每次启动时应清除解锁设备 RAM(前提是这样做不会造成不可接受的延迟),但内核应保留 ramoops 使用区域。
计划零售的设备应在锁定状态下发货(并且 get_unlock_ability 返回0)。这是为了确保攻击者不能通过安装自己的系统或启动图像来损坏设备。

ro.oem_unlock_supported 根据设备是否支持刷写解锁,编译时应设置属性。 如果设备不支持刷解锁,应该是 ro.oem_unlock_supported 设置为0;如果支持刷写解锁,应设置为1。
如果设备支持刷解锁(即) ro.oem_unlock_supported = 1),引导加载程序通过内核命令行变 androidboot.flash.locked(或 /firmware/android/flash.locked DT 属性)设置为1(如果已锁定)或0(如果已解锁)来指示锁定状态。
注:支持 dm-verity 您可以使用的设备 ro.boot.verifiedbootstate 设置 ro.boot.flash.locked 值(如果验证启动状态为橙色,则为0,即已解锁)。

设备应支持锁定和解锁关键部件。这些关键部件是指将设备启动到指导加载程序所需的任何部件,可能包括 fuse、虚拟分区的传感器中心、引导加载程序的第一阶段等。
锁定关键部分是指防止设备上任何代码(内核、恢复图像、OTA 代码等。)故意修改任何关键部件。这意味着,如果设备处于锁定关键部件的状态, OTA 关键部分不能更新。从锁定状态到解锁状态,应与设备进行物理交互。
物理交互与 fastboot flashing unlock 效果相似:用户必须按下设备上的某些物理按钮。设计不允许在没有物理交互的情况下编程 lock critical 状态转换为 unlock critical 状态。设备应以 unlock critical 状态发货。

即运行设备所需的任何分区或数据都需要满足以下条件:
  • 可重新刷写 - 可以重新编译、提供或可以通过某个 fastboot oem 命令提取
  • 受到全面保护(即,根据上一部分被视为关键部分)
包括每个设备的出厂特定设置、序列号、校准数据等。

如果设备支持关闭模式充电或连接电源后自动启动到特殊模式,则 fastboot oem off-mode-charge 0 应绕过这些特殊模式,并像用户按下电源按钮一样启动。

Trusty 是 Google 可信执行环境 (TEE) 实现操作系统,它与 Android 一起运行。这里列出的是使用 ARM TrustzoneTM 技术提供 TEE 设备应遵循的规范。
如果将 Trusty 用作 ARM 设备上的安全操作系统解决方案应根据以下部分实现指导加载程序。

加载并初始化 Trusty 操作系统 (TOS),引导加载程序应执行以下操作:
  • 所有可用的设置和配置 RAM
  • 至少初始化一个串行端口
  • 验证 TOS 映像的签名
  • 将 TOS 加载到 RAM 中(不支持通过刷写或刷写 TCM 执行)
  • 设置状态和寄存器后跳转 TOS 图像中的第一个指令如下部分所述

入口时应配置以下状态:
  • 已关闭 MMU
  • 已刷写并关闭数据缓存(指令缓存可以打开或关闭)
  • 所有中断都已停止(IRQ 和 FIQ)
  • 在 ARM v7 上,CPU 处于 SVC 模式;在 ARM v8 上,CPU 处于 EL3 模式
  • 寄存器处于以下状态:
    • r0/x0:分配给 TOS 内存大小。
    • r1/x1:连续内存块的物理地址(包括平台独特的启动参数)。该块的布局特定于平台。
    • r2/x2.上述内存块的大小。
    • r14/x30:返回在 TOS 初始化后跳转到地址(在非安全模式下)。
注意:r0-r3/x0-x3 也可充当 TOS 擦写寄存器。返回时不保留值。
在 64 位平台上:
  • 只有 w0-w2 所以 x0-x2 应仅包含 32 位值。
  • x30 可以包含一个 64 位值。
  • 将 x0 添加中值 TOS 入口点基址时,应得到一个 32 位值。添加到 x1 寄存器中启动参数块的地址 x2 大小也是如此。

TOS 初始化完成后,将在非安全模式下进行(SCR.NS 将引导加载程序设置为1,以便引导加载程序继续加载主要操作系统(如 Android)。

标签: 如何不启用windows传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台