# 刷写镜像

Source: [https://docs.qualcomm.com/doc/80-70014-11Y/topic/flash-the-images.html](https://docs.qualcomm.com/doc/80-70014-11Y/topic/flash-the-images.html)

刷写镜像涉及将整个镜像（包括分区、文件系统和数据）写入存储设备。

要刷写镜像，请按照下列步骤操作：

1. 请参阅 [QFPROM 熔丝](https://docs.qualcomm.com/doc/80-70014-11Y/topic/appendix-fuse-configurations.html)以获取要配置的熔丝列表。
2. 将所有二进制文件替换为已签名的二进制文件，包括 `prog_firehose_ddr.elf`。
3. 要将所有已签名的二进制文件刷写到设备，请参阅[从源代码编译 → 刷写](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254/build_from_source_QSC_CLI.html)。
4. 生成签名镜像和 `sec.elf`后，启用安全启动：
    1. 首先刷写除 `sec.elf` 以外的所有已签名镜像，并确保设备成功启动。
    2. 使用[从源代码编译 → 刷写](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254/build_from_source_QSC_CLI.html)中的刷写过程，刷写包括 `sec.elf`已签名镜像。
    3. 使用[启动 → 已验证安全启动](https://docs.qualcomm.com/doc/80-70014-11Y/topic/bring-up.html#bring-up__section_fbw_jfg_s1c)验证是否启用了安全启动。
5. 启用安全启动后，设备希望使用称为验证镜像编程 (VIP) 的安全编程方法刷写镜像。在此版本中，您可以使用以下变通办法编程程序 (`prog_firehose_ddr.elf`) 镜像禁用 VIP，继续在安全设备上刷写镜像： &lt;&gt;/BOOT.MXF.1.0.c1\boot\_images\boot\QcomPkg\Library\DevPrgLib\devprg\_transfer.c
6. 不论安全启动启用检查为何，在以下函数中将 `vip->state` 设置为 `VIP_DISABLED`：
int devprg_transfer_init(void)
        {
          int secboot, result;
          struct vip_data *vip = &vip_data;
         
          devprg_init_vip_state();
          secboot = devprg_is_secure_boot_enabled();
        //  if (secboot == 0) /*comment this to set vip state to VIP_DISABLED
            vip->state = VIP_DISABLED;
         
          result = devprg_transport_init();
         
          return result;
        }
        Copy to clipboard
7. 要重新编译 `prog_firehose_ddr.elf`，请参见 [GitHub 工作流（固件和附加功能）→ 编译固件 → 编译启动](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254/build_addn_info.html)。
8. 如果未使用 PCAT 刷写任何 PIL 签名镜像，请按照以下步骤使用 SCP 手动推送 PIL 镜像：

        push adsp, cdsp, modem, wlan, ipa pil split binariesCopy to clipboard

    有关说明，请参见[How to → How to SSH（操作方法 → 如何使用 SSH）](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254/how_to.html)。

1. 将 签名输出中生成的PIL 拆分 bin 和 `.mdt`文件复制到 &lt;&lt;&lt;QCM6490.LE.x.x&gt;\common\build\ufs\bin\QCM6490\_fw\lib\firmware\qcom\qcm6490\&lt;&lt;QCM6490.LE.x.x&gt;\common\build\ufs\bin\QCM6490\_fw\lib\firmware\qcom\qcm6490\ 文件夹中并替换原有内容。
    2. 通过 SSH 以 root 用户的身份连接到设备。有关说明，请参见[How to → How to SSH（操作方法 → 如何使用 SSH）](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254/how_to.html)。
        运行以下命令：

        mount -o rw,remount  /
        scp <<QCM6490.LE.x.x>\common\build\ufs\bin\QCM6490_fw\lib\firmware\qcom\qcm6490\. root@<IP_address>:/lib/firmware/qcom/qcm6490/
        
        Push gfx (a660_zap) pil split binaries, a660_zap.mdt and a660_zap.mbn from signed outout 
        
        scp <a660_zap signed output folder>\. root@<IP_address>:/lib/firmware/
        Push signed Venus binary:
        
        scp vpu20_1v.mbn root@<IP_address>:/lib/firmware/qcom/vpu-2.0/
        
        reboot
        Copy to clipboard

**Parent Topic:** [启用安全启动](https://docs.qualcomm.com/doc/80-70014-11Y/topic/enable-secure-boot.html)

Last Published: Aug 27, 2024

[Previous Topic
生成已签名的 sec.elf 镜像](https://docs.qualcomm.com/bundle/publicresource/80-70014-11Y/topics/generate-signed-sec-elf-image.md) [Next Topic
启用 SELinux](https://docs.qualcomm.com/bundle/publicresource/80-70014-11Y/topics/enable-selinux.md)