# 设置 capsule

设备上的固件通过 UEFI 使用 capsule 进行更新。此过程涉及将固件更新有效负载采集在 capsule [.cap file] 中，然后由系统固件处理以更新设备的固件。

Note

所述 capsule 更新仅适用于 Qualcomm Linux 高级版和基础版。

## 设备固件

要更新设备固件，请安装控制硬件的底层软件。此过程可以提高设备的性能、修复错误、添加新功能或增强安全性。如需配置设备固件，请参阅：[如何使用 capsule 更新设备固件](https://docs.qualcomm.com/doc/80-70022-4SC/topic/How-tos.html#how-tos)。

## **用于 capsule 更新的 UEFI 变量**

操作系统和 UEFI 之间的通信是通过与平台固件交互的协议和服务来实现的。UEFI 提供标准引导环境、包含平台信息的数据表以及操作系统加载程序和操作系统的引导/ runtime 服务调用。

capsule 更新使用的 UEFI 变量

| 变量名称 | 说明 |
| --- | --- |
| OsIndications | 该变量归操作系统所有，用于指示操作系统希望固件启用或操作系统希望固件采用的功能。该变量由操作系统设置并由 UEFI 清除。 |
| OsIndicationsSupported | 该变量归固件所有，指示固件支持哪些操作系统指示功能和操作。 |
| OsTrialBootStatus - 是一个 32 位 UEFI 变量。 | 位图：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>7:0 - Version - OsTrialBootStatus 的版本号</p></li><br>> <li><p>11:8 - TrialBootMaxCount - 在触发 capsule 更新之前由操作系统设置。</p></li><br>> <li><p>15:12 - TrialBootCount - 由 UEFI 设置/递增（如果 OS 未清除 TrialBootEnabled）。如果操作系统想要触发固件回滚，则操作系统可以设置为 TrialBootMaxCount。</p></li><br>> <li><p>16 - TrialBootEnabled - 在 capsule 更新后由 UEFI 设置为 1，并在 OTA 成功更新后由操作系统清除。</p></li><br>> <li><p>31:17 - 未使用</p></li><br>> </ul> |
| EFI 系统资源表 (ESRT) | ESRT 表由 UEFI 在 capsule 更新后设置。 |

如需了解更多的 OsIndications 和 OsIndicationsSupported 变量的详细信息，请参阅[在操作系统和固件之间交换信息](https://uefi.org/specs/UEFI/2.10/08_Services_Runtime_Services.html?highlight=osindications#exchanging-information-between-the-os-and-firmware)。

Note

- 如果 ESP 分区（在 EFI/UpdateCapsule 中）中有多个 capsule，则考虑更新所有 capsule，并按字母顺序更新。
- 将所有 UEFI 非易失性变量均存储在必须处于已配置状态的回滚保护内存块 (RPMB) 分区中。

> 
> 
> - 在启用了 Qualcomm 安全启动的设备上自动配置 RPMB。
>     - 在 Qualcomm 非安全设备上，请勿自动配置 RPMB，请使用测试密钥进行配置。
>     - 如果在非安全设备上使用测试密钥配置 RPMB，则在设备上启用 Qualcomm 安全启动时无法使用设备密钥重新配置。
>     - 使用 `rpmbClient` 应用从 Linux 配置 RPMB。如需了解更多详细信息，请参阅 [Qualcomm 安全 Linux 指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-11/bring-up.html#verify-trustzone/device-configuration/hypervisor-image-loading)。

## 用于 capsule 更新状态的 EFI 系统资源表 (ESRT)

> 
> 
> ESRT 是一种可选机制，可识别用于提供固件更新的设备和系统固件资源。每个 ESRT 条目都描述一个可以更新的固件资源，并报告上次尝试更新的状态。ESRT 中用于报告上次尝试更新状态的条目如下：

表：ESRT 条目

| **ESRT 字段** | **说明** |
| --- | --- |
| FwClass | 固件类字段包含一个 GUID，用于标识可通过 *UpdateCapsule()* 更新的固件组件。 |
| FwType | 标识固件资源的类型。 |
| FwVersion | 固件版本字段表示固件资源的当前版本。该值必须始终增加，因为较大的数字代表较新的版本。 |
| LowestSupportedFwVersion | 指定系统/设备的固件资源可以回滚到的最低固件资源版本。 |
| CapsuleFlags | capsule 标志字段包含在 capsule 标头中设置的 *EFI\_CAPSULE\_HEADER* 中定义的 *CapsuleGuid* 标志（ 0-15 位）。 |
| LastAttemptVersion | 该字段用于描述尝试更新的最后一个固件版本（使用与固件版本相同的格式）。 |
| LastAttemptStatus | 该字段用于描述固件资源条目的最后一次固件更新尝试的结果。 |

ESRT 内容由操作系统从 sysfs 路径公开。

/sys/firmware/efi/esrt/entries/entry0/
    sh-5.1# cd /sys/firmware/efi/esrt/entries/entry0/
    sh-5.1# ls
    capsule_flags  fw_type     last_attempt_status   lowest_supported_fw_version
    w_class       fw_version  last_attempt_version
    Copy to clipboard

ESRT 表在 capsule 更新后由 UEFI 设置。X 代 capsule 更新之前的固件版本。Y 代表固件的版本，可在 capsule [.cap] 文件中找到。

Note

仅当配置了 RPMB 时，上次尝试的固件版本才可用。

| **上次尝试的固件版本** | **当前固件版本** | **last\_attempt 状态** | **Capsule 更新场景** |
| --- | --- | --- | --- |
| Y | Y | 0 | 更新成功 |
| Y | X | 1 | Capsule 更新失败 |
| 0 | X | 0 | Capsule 元数据故障 |
| Y | X | 0 | 固件回滚完成 |

如需了解更多 ESRT 的信息，请参见[固件更新和报告 - UEFI Specification 2.10 documentation](https://uefi.org/specs/UEFI/2.10/23_Firmware_Update_and_Reporting.html#efi-system-resource-table)

该流程图解释了如何使用 UEFI  capsule 解决方案/方法（使用不同的 UEFI 变量以及回滚支持）更新设备固件。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export Capsule-flowchart.svg Layer_1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="9.15277in" height="10.5605in" viewbox="0 0 659 760.356" xml:space="preserve" color-interpolation-filters="sRGB" class="st15" aria-label="../../_images/Capsule-flowchart.svg"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-1 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st2 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st3 { fill: #6280cc; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st4 { fill: #ffffff; font-family: SimHei; font-size: 0.833336em }
.svg-1 .st5 { font-family: Roboto; font-size: 1em }
.svg-1 .st6 { font-size: 1em }
.svg-1 .st7 { fill: #ffffff; font-family: Roboto; font-size: 0.833336em }
.svg-1 .st8 { font-family: SimHei; font-size: 1em }
.svg-1 .st9 { fill: #fafafa; font-family: Roboto; font-size: 0.833336em }
.svg-1 .st10 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st11 { fill: #000000; font-family: SimHei; font-size: 0.833336em }
.svg-1 .st12 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st13 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st14 { fill: none }
.svg-1 .st15 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Layer_1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="group1-1" v:mid="1" v:groupcontext="group">		<title>Sheet.1</title>		<g id="shape2-2" v:mid="2" v:groupcontext="shape" transform="translate(0.375172,-0.374714)">			<title>Sheet.2</title>			<path d="M0 754.73 A5.62513 5.62513 -180 0 0 5.63 760.36 L652.62 760.36 A5.62513 5.62513 -180 0 0 658.25 754.73 L658.25						 6.37 A5.62513 5.62513 -180 0 0 652.62 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 -0 6.37 L0 754.73 Z" class="st1"></path>		</g>		<g id="shape3-4" v:mid="3" v:groupcontext="shape">			<title>Sheet.3</title>			<path d="M653 0.75 C655.89 0.75 658.25 3.11 658.25 6 L658.25 754.36 C658.25 757.25 655.89 759.61 653 759.61 L6 759.61						 C3.11 759.61 0.75 757.25 0.75 754.36 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L653 0.75 ZM653 0 L6 0 C2.69						 0 0 2.69 0 6 L0 754.36 C0 757.67 2.69 760.36 6 760.36 L653 760.36 C656.31 760.36 659 757.67 659 754.36						 L659 6 C659 2.69 656.31 0 653 0 Z" class="st2"></path>		</g>	</g>	<g id="shape4-6" v:mid="4" v:groupcontext="shape" transform="translate(126.572,-727.773)">		<title>Sheet.4</title>		<desc>启动并发起 OTA 更新</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="131.125" cy="749.69" width="262.25" height="21.3333"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L259.25 760.36 A3.00007 3.00007 -180 0 0 262.25 757.36 L262.25					 742.02 A3.00007 3.00007 -180 0 0 259.25 739.02 L3 739.02 A3.00007 3.00007 -180 0 0 -0 742.02 L0 757.36 Z" class="st3"></path>		<text x="83.97" y="752.46" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>启动并发起<tspan class="st5"> </tspan><tspan class="st5">OTA </tspan>更新</text>		</g>	<g id="shape5-11" v:mid="5" v:groupcontext="shape" transform="translate(11.25,-349.991)">		<title>Sheet.5</title>		<desc>设置 TrialBootMaxCount 之后设置 TrialBootEnabled</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="77.0942" cy="742.881" width="154.19" height="34.9504"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L151.19 760.36 A3.00007 3.00007 -180 0 0 154.19 757.36 L154.19					 728.41 A3.00007 3.00007 -180 0 0 151.19 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 0 728.41 L0 757.36 Z" class="st3"></path>		<text x="22.77" y="740.11" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>设置<tspan class="st5"> </tspan><tspan class="st5">TrialBootMaxCount<v:lf></v:lf></tspan><tspan x="17.78" dy="1.109em" class="st6">之后设置</tspan><tspan class="st5"> </tspan><tspan class="st5">TrialBootEnabled</tspan></text>		</g>	<g id="shape6-19" v:mid="6" v:groupcontext="shape" transform="translate(11.25,-292.541)">		<title>Sheet.6</title>		<desc>重启</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="77.0942" cy="742.881" width="154.19" height="34.9504"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L151.19 760.36 A3.00007 3.00007 -180 0 0 154.19 757.36 L154.19					 728.41 A3.00007 3.00007 -180 0 0 151.19 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 -0 728.41 L0 757.36 Z" class="st3"></path>		<text x="67.09" y="745.38" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>重启</text>		</g>	<g id="shape7-22" v:mid="7" v:groupcontext="shape" transform="translate(11.25,-464.892)">		<title>Sheet.7</title>		<desc>执行 capsule 更新</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="77.0942" cy="742.881" width="154.19" height="34.9504"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L151.19 760.36 A3.00007 3.00007 -180 0 0 154.19 757.36 L154.19					 728.41 A3.00007 3.00007 -180 0 0 151.19 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 0 728.41 L0 757.36 Z" class="st3"></path>		<text x="37.28" y="745.65" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>执行<tspan class="st5"> </tspan><tspan class="st5">capsule </tspan>更新</text>		</g>	<g id="shape8-27" v:mid="8" v:groupcontext="shape" transform="translate(11.25,-407.442)">		<title>Sheet.8</title>		<desc>更新 ESRT 以清除 OsIndications</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="77.0942" cy="742.881" width="154.19" height="34.9504"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L151.19 760.36 A3.00007 3.00007 -180 0 0 154.19 757.36 L154.19					 728.41 A3.00007 3.00007 -180 0 0 151.19 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 0 728.41 L0 757.36 Z" class="st3"></path>		<text x="37.75" y="740.11" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>更新<tspan class="st5"> </tspan><tspan class="st5">ESRT </tspan>以清除<v:lf></v:lf><tspan x="46.55" dy="1.109em" class="st5">OsIndications</tspan></text>		</g>	<g id="shape9-33" v:mid="9" v:groupcontext="shape" transform="translate(126.572,-572.606)">		<title>Sheet.9</title>		<desc>启动至 UEFI</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="131.125" cy="749.69" width="262.25" height="21.3333"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L259.25 760.36 A3.00007 3.00007 -180 0 0 262.25 757.36 L262.25					 742.02 A3.00007 3.00007 -180 0 0 259.25 739.02 L3 739.02 A3.00007 3.00007 -180 0 0 -0 742.02 L0 757.36 Z" class="st3"></path>		<text x="104.68" y="752.46" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>启动至<tspan class="st5"> </tspan><tspan class="st5">UEFI</tspan></text>		</g>	<g id="shape10-38" v:mid="10" v:groupcontext="shape" transform="translate(126.572,-672.226)">		<title>Sheet.10</title>		<desc>暂存 capsule 并向 UEFI 发出信号以进行更新和重启 操作系统将设置 TrialBootMaxCount</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="131.125" cy="743.713" width="262.25" height="33.2871"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L259.25 760.36 A3.00007 3.00007 -180 0 0 262.25 757.36 L262.25					 730.07 A3.00007 3.00007 -180 0 0 259.25 727.07 L3 727.07 A3.00007 3.00007 -180 0 0 0 730.07 L0 757.36 Z" class="st3"></path>		<text x="17.36" y="740.94" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>暂存<tspan class="st5"> </tspan><tspan class="st5">capsule </tspan>并向<tspan class="st5"> </tspan><tspan class="st5">UEFI</tspan> 发出信号以进行更新和重启<v:lf></v:lf><tspan x="40.54" dy="1.109em" class="st6">（</tspan>操作系统将设置 <tspan class="st5">TrialBootMaxCount</tspan>）</text>		</g>	<g id="shape11-47" v:mid="11" v:groupcontext="shape" transform="translate(126.572,-616.439)">		<title>Sheet.11</title>		<desc>操作系统根据 ESRT 执行操作系统更新以设置 OtaStatus 并重启</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="131.125" cy="743.713" width="262.25" height="33.2871"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L259.25 760.36 A3.00007 3.00007 -180 0 0 262.25 757.36 L262.25					 730.07 A3.00007 3.00007 -180 0 0 259.25 727.07 L3 727.07 A3.00007 3.00007 -180 0 0 0 730.07 L0 757.36 Z" class="st3"></path>		<text x="31.78" y="740.94" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>操作系统根据<tspan class="st5"> </tspan><tspan class="st5">ESRT </tspan>执行操作系统更新以设置<v:lf></v:lf><tspan x="92.81" dy="1.109em" class="st5">OtaStatus </tspan>并重启</text>		</g>	<g id="shape16-53" v:mid="16" v:groupcontext="shape" transform="translate(180.581,-112.821)">		<title>Sheet.16</title>		<desc>启动操作系统并检查 ESRT</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="77.0942" cy="742.881" width="154.19" height="34.9504"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L151.19 760.36 A3.00007 3.00007 -180 0 0 154.19 757.36 L154.19					 728.41 A3.00007 3.00007 -180 0 0 151.19 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 0 728.41 L0 757.36 Z" class="st3"></path>		<text x="18.99" y="745.65" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>启动操作系统并检查<tspan class="st5"> </tspan><tspan class="st5">ESRT</tspan></text>		</g>	<g id="shape18-58" v:mid="18" v:groupcontext="shape" transform="translate(498.915,-413.796)">		<title>Sheet.18</title>		<desc>操作系统 Trialboot 已确认完成</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="59.1988" cy="742.881" width="118.4" height="34.9504"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L115.4 760.36 A3.00007 3.00007 -180 0 0 118.4 757.36 L118.4 728.41					 A3.00007 3.00007 -180 0 0 115.4 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 -0 728.41 L0 757.36 Z" class="st3"></path>		<text x="16.73" y="740.65" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>操作系统 <tspan class="st5">Trialboot </tspan><tspan x="34.2" dy="1.027em" class="st6">已确认完成</tspan></text>		</g>	<g id="shape19-63" v:mid="19" v:groupcontext="shape" transform="translate(498.915,-327.285)">		<title>Sheet.19</title>		<desc>增量 TrialBootCount</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="59.1988" cy="742.881" width="118.4" height="34.9504"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L115.4 760.36 A3.00007 3.00007 -180 0 0 118.4 757.36 L118.4 728.41					 A3.00007 3.00007 -180 0 0 115.4 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 -0 728.41 L0 757.36 Z" class="st3"></path>		<text x="13.17" y="745.65" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>增量 <tspan class="st5">TrialBootCount</tspan></text>		</g>	<g id="shape20-67" v:mid="20" v:groupcontext="shape" transform="translate(498.915,-227.776)">		<title>Sheet.20</title>		<desc>已达到回滚限制</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="59.1988" cy="742.881" width="118.4" height="34.9504"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L115.4 760.36 A3.00007 3.00007 -180 0 0 118.4 757.36 L118.4 728.41					 A3.00007 3.00007 -180 0 0 115.4 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 -0 728.41 L0 757.36 Z" class="st3"></path>		<text x="24.2" y="745.38" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>已达到回滚限制</text>		</g>	<g id="shape22-70" v:mid="22" v:groupcontext="shape" transform="translate(180.581,-170.271)">		<title>Sheet.22</title>		<desc>固件回滚完成且系统重启</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="77.0942" cy="742.881" width="154.19" height="34.9504"></v:textrect>		<path d="M-0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L151.19 760.36 A3.00007 3.00007 -180 0 0 154.19 757.36 L154.19					 728.41 A3.00007 3.00007 -180 0 0 151.19 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 -0 728.41 L0 757.36 Z" class="st3"></path>		<text x="22.09" y="745.38" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>固件回滚完成且系统重启</text>		</g>	<g id="shape24-73" v:mid="24" v:groupcontext="shape" transform="translate(180.581,-227.7)">		<title>Sheet.24</title>		<desc>UEFI 恢复为以前的固件以更新 ESRT</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="77.0942" cy="742.881" width="154.19" height="34.9504"></v:textrect>		<path d="M-0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L151.19 760.36 A3.00007 3.00007 -180 0 0 154.19 757.36 L154.19					 728.41 A3.00007 3.00007 -180 0 0 151.19 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 -0 728.41 L0 757.36 Z" class="st3"></path>		<text x="10.65" y="740.11" class="st7" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>UEFI <tspan class="st8">恢复为以前的固件以更新</tspan><tspan class="st8"> </tspan><tspan x="65.22" dy="1.109em" class="st6">ESRT</tspan></text>		</g>	<g id="shape28-79" v:mid="28" v:groupcontext="shape" transform="translate(180.581,-55)">		<title>Sheet.28</title>		<desc>OS boots successfully Reset TrialBootEnabled</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="77.0942" cy="742.881" width="154.19" height="34.9504"></v:textrect>		<path d="M0 757.36 A3.00007 3.00007 -180 0 0 3 760.36 L151.19 760.36 A3.00007 3.00007 -180 0 0 154.19 757.36 L154.19					 728.41 A3.00007 3.00007 -180 0 0 151.19 725.41 L3 725.41 A3.00007 3.00007 -180 0 0 0 728.41 L0 757.36 Z" class="st3"></path>		<text x="27.84" y="740.38" class="st9" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>OS boots successfully<v:lf></v:lf><tspan x="25.19" dy="1em" class="st6">Reset TrialBootEnabled</tspan></text>		</g>	<g id="shape72-83" v:mid="72" v:groupcontext="shape" transform="translate(358.45,-522.891)">		<title>Sheet.72</title>		<desc>否</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="5.275" cy="754.056" width="10.55" height="12.6"></v:textrect>		<rect x="0" y="747.756" width="10.55" height="12.6" class="st10"></rect>		<text x="0.27" y="756.56" class="st11" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>否</text>		</g>	<g id="shape73-86" v:mid="73" v:groupcontext="shape" transform="translate(516.725,-385.797)">		<title>Sheet.73</title>		<desc>否</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="5.275" cy="754.056" width="10.55" height="12.6"></v:textrect>		<rect x="0" y="747.756" width="10.55" height="12.6" class="st10"></rect>		<text x="0.27" y="756.56" class="st11" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>否</text>		</g>	<g id="shape74-89" v:mid="74" v:groupcontext="shape" transform="translate(516.725,-286.303)">		<title>Sheet.74</title>		<desc>否</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="5.275" cy="754.056" width="10.55" height="12.6"></v:textrect>		<rect x="0" y="747.756" width="10.55" height="12.6" class="st10"></rect>		<text x="0.27" y="756.56" class="st11" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>否</text>		</g>	<g id="shape75-92" v:mid="75" v:groupcontext="shape" transform="translate(511.475,-471.846)">		<title>Sheet.75</title>		<desc>禁用</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="10.525" cy="754.056" width="21.06" height="12.6"></v:textrect>		<rect x="0" y="747.756" width="21.05" height="12.6" class="st10"></rect>		<text x="0.52" y="756.56" class="st11" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>禁用</text>		</g>	<g id="shape76-95" v:mid="76" v:groupcontext="shape" transform="translate(383.95,-426.506)">		<title>Sheet.76</title>		<desc>启用</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="10.525" cy="754.056" width="21.06" height="12.6"></v:textrect>		<rect x="0" y="747.756" width="21.05" height="12.6" class="st10"></rect>		<text x="0.52" y="756.56" class="st11" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>启用</text>		</g>	<g id="shape77-98" v:mid="77" v:groupcontext="shape" transform="translate(142.45,-522.891)">		<title>Sheet.77</title>		<desc>是</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="5.275" cy="754.056" width="10.55" height="12.6"></v:textrect>		<rect x="0" y="747.756" width="10.55" height="12.6" class="st10"></rect>		<text x="0.27" y="756.56" class="st11" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>是</text>		</g>	<g id="shape78-101" v:mid="78" v:groupcontext="shape" transform="translate(389.2,-333)">		<title>Sheet.78</title>		<desc>是</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="5.275" cy="754.056" width="10.55" height="12.6"></v:textrect>		<rect x="0" y="747.756" width="10.55" height="12.6" class="st10"></rect>		<text x="0.27" y="756.56" class="st11" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>是</text>		</g>	<g id="shape79-104" v:mid="79" v:groupcontext="shape" transform="translate(304.45,-286.303)">		<title>Sheet.79</title>		<desc>是</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="5.275" cy="754.056" width="10.56" height="12.6"></v:textrect>		<rect x="0" y="747.756" width="10.55" height="12.6" class="st10"></rect>		<text x="0" y="756.56" class="st11" v:langid="1033"><v:paragraph v:spline="-1"></v:paragraph><v:tablist></v:tablist>是</text>		</g>	<g id="shape83-107" v:mid="83" v:groupcontext="shape" transform="translate(194.736,-494.476)">		<title>Sheet.83</title>		<desc>设置 OSIndications</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="62.9609" cy="732.542" width="125.93" height="55.6295"></v:textrect>		<path d="M0 732.54 L62.96 704.73 L125.92 732.54 L62.96 760.36 L0 732.54 Z" class="st3"></path>		<text x="20.8" y="735.31" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>设置<tspan class="st5"> </tspan><tspan class="st5">OSIndications</tspan></text>		</g>	<g id="shape85-112" v:mid="85" v:groupcontext="shape" transform="translate(354.904,-442.701)">		<title>Sheet.85</title>		<desc>TrialBootEnabled</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60.7003" cy="731.811" width="121.41" height="57.0899"></v:textrect>		<path d="M0 731.81 L60.7 703.27 L121.4 731.81 L60.7 760.36 L0 731.81 Z" class="st3"></path>		<text x="22.62" y="734.31" class="st7" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TrialBootEnabled</text>		</g>	<g id="group87-115" transform="translate(254.705,-649.846)" v:mid="87" v:groupcontext="group">		<title>Sheet.87</title>		<g id="shape88-116" v:mid="88" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.88</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape89-119" v:mid="89" v:groupcontext="shape">			<title>Sheet.89</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group90-121" transform="translate(254.705,-593.819)" v:mid="90" v:groupcontext="group">		<title>Sheet.90</title>		<g id="shape91-122" v:mid="91" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.91</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape92-125" v:mid="92" v:groupcontext="shape">			<title>Sheet.92</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group93-127" transform="translate(254.705,-550.106)" v:mid="93" v:groupcontext="group">		<title>Sheet.93</title>		<g id="shape94-128" v:mid="94" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.94</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape95-131" v:mid="95" v:groupcontext="shape">			<title>Sheet.95</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group96-133" transform="translate(412.612,-420.201)" v:mid="96" v:groupcontext="group">		<title>Sheet.96</title>		<g id="shape97-134" v:mid="97" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.97</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape98-137" v:mid="98" v:groupcontext="shape">			<title>Sheet.98</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group99-139" transform="translate(85.35,-442.443)" v:mid="99" v:groupcontext="group">		<title>Sheet.99</title>		<g id="shape100-140" v:mid="100" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.100</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape101-143" v:mid="101" v:groupcontext="shape">			<title>Sheet.101</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group102-145" transform="translate(85.35,-384.942)" v:mid="102" v:groupcontext="group">		<title>Sheet.102</title>		<g id="shape103-146" v:mid="103" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.103</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape104-149" v:mid="104" v:groupcontext="shape">			<title>Sheet.104</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group105-151" transform="translate(85.35,-327.491)" v:mid="105" v:groupcontext="group">		<title>Sheet.105</title>		<g id="shape106-152" v:mid="106" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.106</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape107-155" v:mid="107" v:groupcontext="shape">			<title>Sheet.107</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group108-157" transform="translate(412.612,-327.024)" v:mid="108" v:groupcontext="group">		<title>Sheet.108</title>		<g id="shape109-158" v:mid="109" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.109</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape110-161" v:mid="110" v:groupcontext="shape">			<title>Sheet.110</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group111-163" transform="translate(254.683,-205.222)" v:mid="111" v:groupcontext="group">		<title>Sheet.111</title>		<g id="shape112-164" v:mid="112" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.112</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape113-167" v:mid="113" v:groupcontext="shape">			<title>Sheet.113</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group114-169" transform="translate(254.683,-147.771)" v:mid="114" v:groupcontext="group">		<title>Sheet.114</title>		<g id="shape115-170" v:mid="115" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.115</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape116-173" v:mid="116" v:groupcontext="shape">			<title>Sheet.116</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group117-175" transform="translate(254.683,-90.321)" v:mid="117" v:groupcontext="group">		<title>Sheet.117</title>		<g id="shape118-176" v:mid="118" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.118</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape119-179" v:mid="119" v:groupcontext="shape">			<title>Sheet.119</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group120-181" transform="translate(254.683,-32.5)" v:mid="120" v:groupcontext="group">		<title>Sheet.120</title>		<g id="shape121-182" v:mid="121" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.121</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape122-185" v:mid="122" v:groupcontext="shape">			<title>Sheet.122</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group123-187" transform="translate(254.705,-705.3)" v:mid="123" v:groupcontext="group">		<title>Sheet.123</title>		<g id="shape124-188" v:mid="124" v:groupcontext="shape" transform="translate(763.348,737.856) rotate(90)">			<title>Sheet.124</title>			<path d="M0 760.36 L18.19 760.36" class="st12"></path>		</g>		<g id="shape125-191" v:mid="125" v:groupcontext="shape">			<title>Sheet.125</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group126-193" transform="translate(320.658,-499.791)" v:mid="126" v:groupcontext="group">		<title>Sheet.126</title>		<g id="shape127-194" v:mid="127" v:groupcontext="shape" transform="translate(2.95763E-13,-4.30577)">			<title>Sheet.127</title>			<path d="M0 742.16 L95.14 742.16 L95.14 760.36 L0 742.16 Z" class="st14"></path>			<path d="M0 742.16 L95.14 742.16 L95.14 760.36" class="st12"></path>		</g>		<g id="shape128-197" v:mid="128" v:groupcontext="shape" transform="translate(92.1521,1.13687E-13)">			<title>Sheet.128</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group129-199" transform="translate(85.35,-499.791)" v:mid="129" v:groupcontext="group">		<title>Sheet.129</title>		<g id="shape130-200" v:mid="130" v:groupcontext="shape" transform="translate(2.9918,-4.30577)">			<title>Sheet.130</title>			<path d="M106.39 742.16 L0 742.16 L0 760.36 L106.39 742.16 Z" class="st14"></path>			<path d="M106.39 742.16 L0 742.16 L0 760.36" class="st12"></path>		</g>		<g id="shape131-203" v:mid="131" v:groupcontext="shape">			<title>Sheet.131</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group132-205" transform="translate(254.683,-262.65)" v:mid="132" v:groupcontext="group">		<title>Sheet.132</title>		<g id="shape133-206" v:mid="133" v:groupcontext="shape" transform="translate(2.99179,-4.30575)">			<title>Sheet.133</title>			<path d="M69.6 742.16 L0 742.16 L0 760.36 L69.6 742.16 Z" class="st14"></path>			<path d="M69.6 742.16 L0 742.16 L0 760.36" class="st12"></path>		</g>		<g id="shape134-209" v:mid="134" v:groupcontext="shape">			<title>Sheet.134</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group135-211" transform="translate(503.937,-262.65)" v:mid="135" v:groupcontext="group">		<title>Sheet.135</title>		<g id="shape136-212" v:mid="136" v:groupcontext="shape" transform="translate(2.07834E-13,-4.30575)">			<title>Sheet.136</title>			<path d="M0 742.16 L54.18 742.16 L54.18 760.36 L0 742.16 Z" class="st14"></path>			<path d="M0 742.16 L54.18 742.16 L54.18 760.36" class="st12"></path>		</g>		<g id="shape137-215" v:mid="137" v:groupcontext="shape" transform="translate(51.1842,1.13687E-13)">			<title>Sheet.137</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group138-217" transform="translate(491.021,-362.236)" v:mid="138" v:groupcontext="group">		<title>Sheet.138</title>		<g id="shape139-218" v:mid="139" v:groupcontext="shape" transform="translate(1.43885E-13,-4.30573)">			<title>Sheet.139</title>			<path d="M0 742.16 L67.09 742.16 L67.09 760.36 L0 742.16 Z" class="st14"></path>			<path d="M0 742.16 L67.09 742.16 L67.09 760.36" class="st12"></path>		</g>		<g id="shape140-221" v:mid="140" v:groupcontext="shape" transform="translate(64.1009,1.13687E-13)">			<title>Sheet.140</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="group141-223" transform="translate(476.304,-448.746)" v:mid="141" v:groupcontext="group">		<title>Sheet.141</title>		<g id="shape142-224" v:mid="142" v:groupcontext="shape" transform="translate(-2.39808E-14,-4.30573)">			<title>Sheet.142</title>			<path d="M0 742.16 L81.81 742.16 L81.81 760.36 L0 742.16 Z" class="st14"></path>			<path d="M0 742.16 L81.81 742.16 L81.81 760.36" class="st12"></path>		</g>		<g id="shape143-227" v:mid="143" v:groupcontext="shape" transform="translate(78.8172,0)">			<title>Sheet.143</title>			<path d="M0 755.18 L2.99 760.36 L5.98 755.18 L0 755.18 Z" class="st13"></path>		</g>	</g>	<g id="shape144-229" v:mid="144" v:groupcontext="shape" transform="translate(327.271,-243.61)">		<title>Sheet.144</title>		<desc>RollbackCount 检查内部 UEFI</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="88.3333" cy="718.817" width="176.67" height="83.0793"></v:textrect>		<path d="M0 718.82 L88.33 677.28 L176.67 718.82 L88.33 760.36 L0 718.82 Z" class="st3"></path>		<text x="56.05" y="715.77" class="st7" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RollbackCount<v:lf></v:lf><tspan x="56.89" dy="1.082em" class="st8">检查内部</tspan> UEFI</text>		</g>	<g id="shape145-233" v:mid="145" v:groupcontext="shape" transform="translate(340.187,-349.27)">		<title>Sheet.145</title>		<desc>TrialBootCount= TrialBootMaxCount</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="75.4166" cy="724.891" width="150.84" height="70.9309"></v:textrect>		<path d="M0 724.89 L75.42 689.43 L150.83 724.89 L75.42 760.36 L0 724.89 Z" class="st3"></path>		<text x="39.15" y="722.39" class="st7" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TrialBootCount=<v:lf></v:lf><tspan x="32.33" dy="1em" class="st6">TrialBootMaxCount</tspan></text>		</g>	<g id="group148-237" transform="translate(88.3418,-127.304)" v:mid="148" v:groupcontext="group">		<title>Sheet.148</title>		<g id="shape149-238" v:mid="149" v:groupcontext="shape" transform="translate(7.99361E-15,-2.99179)">			<title>Sheet.149</title>			<path d="M0 598.11 L0 760.36 L87.93 760.36 L0 598.11 Z" class="st14"></path>			<path d="M0 598.11 L0 760.36 L87.93 760.36" class="st12"></path>		</g>		<g id="shape150-241" v:mid="150" v:groupcontext="shape" transform="translate(87.0578,0)">			<title>Sheet.150</title>			<path d="M0 760.36 L5.18 757.36 L0 754.37 L0 760.36 Z" class="st13"></path>		</g>	</g>	<g id="group151-243" transform="translate(334.687,-127.304)" v:mid="151" v:groupcontext="group">		<title>Sheet.151</title>		<g id="shape152-244" v:mid="152" v:groupcontext="shape" transform="translate(4.30575,-2.99179)">			<title>Sheet.152</title>			<path d="M219.12 662.88 L219.12 760.36 L0 760.36 L219.12 662.88 Z" class="st14"></path>			<path d="M219.12 662.88 L219.12 760.36 L0 760.36" class="st12"></path>		</g>		<g id="shape153-247" v:mid="153" v:groupcontext="shape">			<title>Sheet.153</title>			<path d="M5.18 754.37 L0 757.36 L5.18 760.36 L5.18 754.37 Z" class="st13"></path>		</g>	</g>	<g id="group154-249" transform="translate(558.113,-176.045)" v:mid="154" v:groupcontext="group">		<title>Sheet.154</title>		<g id="shape155-250" v:mid="155" v:groupcontext="shape" transform="translate(4.30573,-2.99179)">			<title>Sheet.155</title>			<path d="M0 760.36 L85.33 760.36 L85.33 508.12 L54.89 508.12 L0 760.36 Z" class="st14"></path>			<path d="M0 760.36 L85.33 760.36 L85.33 508.12 L54.89 508.12" class="st12"></path>		</g>		<g id="shape156-253" v:mid="156" v:groupcontext="shape">			<title>Sheet.156</title>			<path d="M5.18 760.36 L0 757.36 L5.18 754.37 L5.18 760.36 Z" class="st13"></path>		</g>	</g>	<g id="group157-255" transform="translate(231.058,-11.25)" v:mid="157" v:groupcontext="group">		<title>Sheet.157</title>		<desc>结束</desc>		<g id="shape158-256" v:mid="158" v:groupcontext="shape">			<title>Sheet.158</title>			<path d="M0 749.73 A10.6252 10.6252 -180 0 0 10.62 760.36 L42.61 760.36 A10.6252 10.6252 -180 0 0 53.23 749.73 L53.23						 749.73 A10.6252 10.6252 -180 0 0 42.61 739.11 L10.62 739.11 A10.6252 10.6252 -180 0 0 0 749.73 L0 749.73						 Z" class="st3"></path>		</g>		<g id="shape159-258" v:mid="159" v:groupcontext="shape">			<title>Sheet.159</title>			<path d="M0 749.73 A10.6252 10.6252 -180 0 0 10.62 760.36 L42.61 760.36 A10.6252 10.6252 -180 0 0 53.23 749.73 L53.23						 749.73 A10.6252 10.6252 -180 0 0 42.61 739.11 L10.62 739.11 A10.6252 10.6252 -180 0 0 0 749.73 L0 749.73						 Z" class="st3"></path>		</g>		<g id="shape157-260" v:mid="157" v:groupcontext="groupContent">			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="26.6173" cy="749.731" width="53.24" height="21.25"></v:textrect>			<text x="16.62" y="752.23" class="st4" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>结束</text>			</g>	</g></g>
</svg>

1. **启动**: 无线 (OTA) 更新过程开始，操作系统准备更新 capsule ，向 UEFI 发出信号（通过设置 `OsIndications`）开始更新。操作系统设置 `TrialBootMaxCount` 来跟踪允许的尝试启动次数，然后重新启动设备。
2. **UEFI 更新**：重新启动时，系统会检查 `OsIndications`。如果存在，它将执行 capsule 更新，更新 EFI 系统资源表 (ESRT)，清除 `OsIndications`，如果设置了 `TrialBootMaxCount`，则允许 `TrialBootEnabled` 并再次重启系统。
3. **Trialboot 处理**：

    - 如果未设置 `OsIndications`，系统将检查 `TrialBootEnabled` 是否处于活动状态。
    - 如果 `TrialBootEnabled` 有效并且 `TrialBootCount` 等于 `TrialBootMaxCount`，则检查回滚计数。

        - 如果允许回滚，UEFI 将恢复为固件、更新 ESRT，然后重新启动。
        - 如果不允许回滚，则表明已达到回滚限制。
    - 如果 `TrialBootCount` 小于 `TrialBootMaxCount`，则增加 `TrialBootCount` 并继续该过程。
4. **完成**: 系统启动到操作系统，检查 ESRT，如果操作系统成功启动，则会重置 `TrialBootEnabled` 字段。
5. **结果**：

    - 如果 `TrialBootEnabled` 未激活，则确认 OTA 更新已完成。
    - 系统清除 `OtaTrialBootStatus` 并将 `LwSupportedFwVersion` 设置为当前固件版本以禁用回滚。
6. **恢复**：如果固件封装更新在更新过程中失败，UEFI 具有恢复机制来保持稳定性和功能。

> 
> 
> 1. **回滚**：如果允许回滚，UEFI 将恢复到之前的固件版本。这涉及将固件恢复到尝试更新之前的状态。
>     2. **ESRT 更新**：更新 ESRT，以反映回滚情况。
>     3. **重启**：回滚完成后，UEFI 会触发重新启动，以确保其运行之前的稳定固件版本。

    此过程可确保应用更新，并在设备试用期间遇到任何问题时允许回滚。

## 身份验证和签名

身份验证对于固件更新而言具有至关重要的意义，以确保安全性和稳定性。它保证仅应用来自可信来源的更新，从而防止恶意或未经授权的更新。通过验证 capsule 的数字签名，它可以确保更新在传输过程中未被篡改，并且仅安装经过验证和测试的更新。这降低了由于固件故障而导致系统崩溃或故障的风险。

如需了解更多信息，请参阅：[如何验证和签署 capsule 更新](https://docs.qualcomm.com/doc/80-70022-4SC/topic/How-tos.html#how-tos)。

Last Published: Dec 07, 2025

[Previous Topic
更新设备固件](https://docs.qualcomm.com/bundle/publicresource/80-70022-4SC/topics/Update-the-device-firmware.md) [Next Topic
在基础版和高级版中更新 capsule 并试用启动回滚](https://docs.qualcomm.com/bundle/publicresource/80-70022-4SC/topics/capsule-update-for-base-and-advance-variants.md)