NXP MCU Boot Utility

GitHub release GitHub commits GitHub All ReleasesGitHub license

English | 中文

对于MCUBootUtility,RT-Flash工具,有任何使用上的问题,可以在《痞子衡嵌入式》博客下留言,也可以扫码加入QQ交流群。  

MCUBootUtility_qq.png

1 软件概览

1.1 介绍

  NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP MCU里BootROM功能相对应,目前主要支持i.MXRT系列MCU芯片,与NXP官方的标准安全加密配套工具集(OpenSSL, CST, sdphost, blhost, elftosb, BD, MfgTool2)相比,NXP-MCUBootUtility是一个真正的一站式工具,一个工具包含NXP官方所有加密配套工具的功能,并且是全图形用户界面操作。借助于NXP-MCUBootUtility,你可以轻松上手NXP MCU安全加密启动。
NXP-MCUBootUtility主要功能如下:


  • 支持UART和USB-HID两种串行下载方式(COM端口/USB设备自动识别)
  • 支持五种常用格式(elf/axf/srec/hex/bin)源image文件输入并检查其链接地址的合法性
  • 支持将裸源image文件自动转换成i.MXRT能启动的Bootable image
  • 支持下载Bootable image进外部启动设备
  • 支持外部启动设备的任意读/写/擦操作(即通用Flash编程器)

  • 支持i.MXRTyyyy全系列MCU,包含i.MXRT1011、i.MXRT1015、i.MXRT1021、i.MXRT1051/1052、i.MXRT1061/1062、i.MXRT1064 SIP、i.MXRT1171/1172/1173/1174/1175/1176
  • 源image文件既可以是裸源image文件,也可以是含启动文件头的bootable image文件
  • 支持将裸源image文件自动转换成MfgTool和RT-Flash工具能下载的.sb格式文件
  • 支持下载Bootable image进主动启动设备 - FlexSPI接口NOR Flash
  • 支持下载Bootable image进主动启动设备 - SEMC接口NAND Flash
  • 支持下载Bootable image进主动启动设备 - SEMC接口NOR Flash
  • 支持下载Bootable image进主动启动设备 - uSDHC接口SD/eMMC卡
  • 支持下载Bootable image进备份启动设备 - LPSPI接口NOR/EEPROM Flash
  • 支持DCD配置功能,可用于加载image进SDRAM执行
  • 支持用于开发阶段的非安全加密启动(未签名加密)
  • 支持基于HAB实现的安全加密启动(单签名,签名和加密),证书自动备份
  • 支持基于BEE实现的安全加密启动(唯一SNVS key,用户自定义key)
  • 支持基于OTFAD实现的安全加密启动(唯一SNVS key,用户自定义key)
  • 支持MCU芯片内部eFuse的回读和烧写操作(即专用eFuse烧写器)
  • 支持MCU芯片内部FlexRAM的读/写/执行操作(即专用FlexRAM编程器,可用于ISP启动)
  • 支持从外部启动设备回读Bootable image,并对其组成部分(NFCB/DBBT/FDCB/EKIB/EPRDB/IVT/Boot Data/DCD/Image/CSF/DEK KeyBlob)进行标注

  • 支持i.MXRTxxx全系列MCU,包含i.MXRT533/535/553/555/583/585/593/595、i.MXRT633/635/685
  • 支持下载Bootable image进主动启动设备 - FlexSPI/QuadSPI接口NOR Flash
  • 支持用于开发阶段的非安全加密启动(未签名,CRC校验)
  • 支持MCU芯片内部SRAM的读/写/执行操作(即专用SRAM编程器,可用于ISP启动)
  • 支持从外部启动设备回读Bootable image,并对其组成部分(OTFAD KeyBlob/FDCB/KeyStore/Image)进行标注

1.2 下载

  NXP-MCUBootUtility完全基于Python语言开发,并且源代码全部开源,其具体开发环境为Python 2.7.15 (32bit)、wxPython 4.0.3、pySerial 3.4、pywinusb 0.4.2、bincopy 15.0.0、PyAudio 0.2.11、PyInstaller 3.3.1(或更高)。

  • 源代码: https://github.com/JayHeng/NXP-MCUBootUtility
  • 问题反馈: https://www.cnblogs.com/henjay724/p/10159925.html

  NXP-MCUBootUtility在发布时借助PyInstaller将所有的Python依赖全部打包进一个可执行文件(\NXP-MCUBootUtility\bin\NXP-MCUBootUtility.exe),因此如果不是对NXP-MCUBootUtility的二次开发,你不需要安装任何Python软件及相关库。

Note1: 使用NXP-MCUBootUtility之前必须先从NXP官网下载 HAB Code Signing Tool工具,并将其解压放在\NXP-MCUBootUtility\tools\cst\目录下,并且需要修改代码使能AES功能重新生成\NXP-MCUBootUtility\tools\cst\mingw32\bin\cst.exe,否则HAB签名以及加密相关功能无法使用。具体步骤可以参考这篇博客 《开启NXP-MCUBootUtility工具的HAB加密功能 - cst.exe》。

Note2: 使用NXP-MCUBootUtility之前必须编译\NXP-MCUBootUtility\tools\image_enc\code下面的源文件生成image_enc.exe,并将其放置在\NXP-MCUBootUtility\tools\image_enc\win,否则BEE/OTFAD加密相关功能无法使用。具体步骤可以参考这篇博客 《开启NXP-MCUBootUtility工具的BEE/OTFAD加密功能 - image_enc.exe》

Note3: 源代码包里的NXP-MCUBootUtility.exe是在Windows 10 x64环境下打包的,也仅在该环境下测试过,如果因系统原因无法直接使用,你需要先安装 Python2.7.15 x86版本 (安装完成后确认\Python27\, \Python27\Scripts\目录被添加到系统环境变量Path里),然后在\NXP-MCUBootUtility\env\目录下点击do_setup_by_pip.bat安装开发NXP-MCUBootUtility所依赖的Python库,最后点击do_pack_by_pyinstaller.bat重新生成NXP-MCUBootUtility.exe可执行文件。

Note4: 必须使用Python2 x86版本去打包NXP-MCUBootUtility,因为NXP-MCUBootUtility使用了pywinusb库,该库在Python2 x64版本下无法用PyInstaller打包,pywinusb作者没有计划修复该问题。

1.3 安装

  NXP-MCUBootUtility是一个是纯绿色免安装的工具,下载了源代码包之后,直接双击\NXP-MCUBootUtility\bin\NXP-MCUBootUtility.exe即可使用。使用NXP-MCUBootUtility没有任何软件依赖,不需要额外安装任何软件。
在NXP-MCUBootUtility.exe图形界面显示之前,会首先弹出一个控制台窗口,该控制台会伴随着NXP-MCUBootUtility.exe图形界面一起工作,很多图形界面的操作都会在控制台窗口看到对应的底层命令执行,保留控制台主要是为了便于定位NXP-MCUBootUtility.exe的问题,目前NXP-MCUBootUtility尚处于早期阶段,等后期软件成熟会考虑移除控制台。

1.4 目录

  NXP-MCUBootUtility软件目录组织如下:

\NXP-MCUBootUtility\apps                 --放置NXP官方评估板示例image文件\bin                  --放置NXP-MCUBootUtility可执行文件及用户配置文件\doc                  --放置NXP官方安全启动相关的参考文档\env                  --放置用于安装NXP-MCUBootUtility开发环境以及打包脚本\gen                  --放置NXP-MCUBootUtility使用过程中生成的临时文件\bd_file            --根据配置动态生成的BD文件\bee_crypto         --BEE加密过程中生成的文件\bootable_image     --生成的bootable image文件\dcd_file           --生成的DCD数据文件\hab_cert           --HAB签名过程中生成的文件\hab_crypto         --HAB加密过程中生成的文件\json_file          --根据配置动态生成的JSON文件\log_file           --保存软件操作记录日志\otfad_crypto       --OTFAD加密过程中生成的文件\sb_image           --生成的.sb格式文件\user_file          --软件运行过程中缓存的临时文件\gui                  --放置开发NXP-MCUBootUtility UI构建工程文件\img                  --放置NXP-MCUBootUtility使用过程中需加载的图片\src                  --放置开发NXP-MCUBootUtility的所有Python源代码文件\tools                --放置NXP-MCUBootUtility使用过程中需调用的外部程序\blhost             --与Flashloader通信的上位机命令行工具\cst                --HAB加密的配套命令行工具\elftosb            --生成bootable image的命令行工具\ide_utils          --各IDE提供的image格式转换工具\image_enc          --BEE加密的配套命令行工具\imgutil            --生成DCD数据的命令行工具\openssl            --生成证书和秘钥的标准工具\sdphost            --与ROM通信的上位机命令行工具

1.5 界面

  下图为NXP-MCUBootUtility工具的主界面,界面主要由六部分组成,各部分功能如下:

NXP-MCUBootUtility_mainWin_e

  • 【Menu Bar】:功能菜单栏,提供软件通用设置。
  • 【Target Setup】:目标设备设置栏,提供MCU Device和Boot Device配置选项。
  • 【Port Setup】:串行接口设置栏,选择用于连接MCU Device的接口。
  • 【Device Status】:目标设备状态信息栏,当连接上目标设备之后,用于显示目标设备的状态。
  • 【Secure Boot Action】:安全加密启动主界面,提供对目标设备做安全加密启动的所有操作。
  • 【Log Info】:操作日志栏,记录软件操作日志。

2 准备工作

  在使用NXP-MCUBootUtility工具前主要有两个准备工作:一、准备好i.MXRT硬件板以及串行下载连接线(USB/UART);二、准备好用于下载进Flash的源image文件。
关于串行下载线连接,需要查看i.MXRT参考手册System Boot章节,确保连接的UART/USB引脚是BootROM指定的。
关于源image文件准备,NXP-MCUBootUtility工具能够识别五种常见格式(elf/axf/srec/hex/bin)的image,源image既可以包含i.MXRT加载启动头(IVT, BootData等),也可以不包含这些i.MXRT加载启动头。如果源image中不包含这些启动头,NXP-MCUBootUtility会自动添加文件头。
以NXP官方SDK为例进一步讲解源image文件的生成,注册并登录NXP官网,来到 MCUXpresso SDK Builder 页面,选择合适的MCU芯片以及IDE(以RT1060芯片,IAR IDE为例)并点击Download SDK后便可得到SDK_2.4.0_EVK-MIMXRT1060.zip。
使用IAR打开SDK包里的\boards\evkmimxrt1060\demo_apps\led_blinky\iar\led_blinky.eww示例应用:

NXP-MCUBootUtility_sdkProjectBuilds_e

  led_blinky应用其实包含了三个工程(ram/flexspi_nor/sdram),分别对应三个不同的linker文件(.icf),其中ram工程生成的image即是所谓的Non-XIP image,flexspi_nor工程生成的image即是所谓的XIP image。
默认情况下,ram工程和flexspi_nor工程生成的image文件是无法直接为NXP-MCUBootUtility所用的,需要做一些小小的改变。
ram工程需要修改linker文件如下:(推荐从0x3000开始链接中断向量表,中断向量表前面预留一段内存用于放置i.MXRT加载启动所需的文件头)。

define symbol m_interrupts_start       = 0x00003000;   // 0x00000000
define symbol m_interrupts_end         = 0x000033FF;   // 0x000003FFdefine symbol m_text_start             = 0x00003400;   // 0x00000400
define symbol m_text_end               = 0x0001FFFF;define symbol m_data_start             = 0x20000000;
define symbol m_data_end               = 0x2001FFFF;define symbol m_data2_start            = 0x20200000;
define symbol m_data2_end              = 0x202BFFFF;

  flexspi_nor工程需要修改工程配置选项里的Defined symbols如下:(将XIP_BOOT_HEADER_ENABLE设为0,即不需要生成包含i.MXRT加载启动文件头的image; 如果保持XIP_BOOT_HEADER_ENABLE为1不变,那么生成的可执行image文件会包含i.MXRT加载启动文件头)。

NXP-MCUBootUtility_sdkProjectOptions

  如果只是为了快速验证NXP-MCUBootUtility工具,在NXP-MCUBootUtility\apps文件夹下默认存放了全系列恩智浦官方i.MXRT评估板的led_blinky应用的image文件。

3 软件使用

3.1 设置目标设备

  在使用NXP-MCUBootUtility时首先需要配置目标设备,目标设备包括MCU Device和Boot Device。以NXP官方开发板EVK-MIMXRT1060为例,该开发板主芯片为i.MXRT1062DVL6A,所以【MCU Device】应设为i.MXRT106x。且以最常用的FlexSPI NOR启动为例,【Boot Device】设为FLEXSPI NOR,开发板上对应的外部存储芯片为IS25WP064AJBLE,其是一颗常用的四线QSPI NOR Flash,我们需要在软件里进一步配置该Boot Device,单击【Boot Device Configuration】按钮可弹出如下新的配置页面:

NXP-MCUBootUtility_flexspiNorCfgWin_e

  在弹出的名为FlexSPI NOR Device Configuration页面里可以看到很多描述Multi-IO SPI NOR Flash特性的选项,比如Device Type、Query Pads等,这些选项都需要被正确地设置,以与开发板上的外部存储芯片相匹配。
除此以外,页面上还有一个名为【Use Typical Device Model】的选项,NXP-MCUBootUtility软件预先定义了一些常用的Multi-IO SPI NOR Flash型号模型,如果开发板上的外部存储芯片恰好在软件预定义的型号列表里,那么你可以直接在【Use Typical Device Model】选择对应型号,而不必在Nor Option里逐一配置。
EVK-MIMXRT1060开发板上的IS25WP064AJBLE芯片属于ISSI - IS25LP064A大类,因此我们只需要在【Use Typical Device Model】选择ISSI - IS25LP064A并点击【Ok】即完成了目标设备的设置。

3.2 连接目标设备

  设置好目标设备之后,下一步便是连接目标设备,以USB-HID接口连接为例,给EVK-MIMXRT1060板子供电,并用USB Cable将PC与J9口连接起来,如果一切正常,应该可以在设备管理器找到vid,pid为0x1fc9,0x0135的HID-compliant vendor-defined device设备被枚举。如果没有发现该HID设备,请仔细检查板子SW7拨码开关是否将Boot Mode设为2'b01即Serial Downloader模式。

NXP-MCUBootUtility_usbhidDetected_e

  确认HID设备存在之后,在【Port Setup】选中USB-HID,然后直接点击【Connect to ROM】按钮,此时软件便会自动完成目标设备连接全过程(使用sdphost连接ROM,获取一些MCU内部寄存器信息,使用sdphost加载Flashloader并跳转过去,使用blhost连接Flashloader,获取一些eFuse信息,使用blhost去配置boot device并获取boot device meomry信息),这个过程需要大概5s的时间,如果目标设备连接正常,你可以看到指示灯变蓝,并且【Connect to ROM】按钮标签变为【Reset Device】。如果目标设备连接失败,指示灯会变红,并且【Connect to ROM】按钮标签变为【Reconnect】。

NXP-MCUBootUtility_connectedToDevice_e

  目标设备连接成功后可以在目标设备状态信息栏看到一些有用的设备状态信息,比如MCU芯片的UUID值、HAB状态、与启动相关的重要Fuse值,Boot Device的Page/Sector/Block大小等。

3.3 安全加密启动

  确保菜单栏Tools/Generate .sb file选项勾选的是"No",目标设备连接成功后便可以开始最核心的安全加密启动操作,在做安全加密启动之前先来介绍安全加密启动主界面分布:

NXP-MCUBootUtility_secboot0_intro_e

  • 【Image Generation Sequence】:image生成窗口,用于对源image进行加密安全处理,生成可放在Boot Device中的bootable image
  • 【Image Loading Sequence】:image下载窗口,用于将生成的bootable image下载进Boot Device中,并且在MCU中烧录相应的Fuse值(各种Key,HAB设置等)
  • 【eFuse Operation Utility】:eFuse回读与烧录窗口,用户可烧录自定义值进Fuse Region。
  • 【Boot Device Memory】:image回读与标注显示窗口,用于从Boot Device回读已下载的Bootable image数据,并对数据组成各部分进行标注
  • 【Secure Boot Type】:安全加密模式选择,选择想要安全模式(不使能安全,HAB单签名,HAB签名加密,BEE加密)。
  • 【All-In-One Action】:一键操作,image生成窗口和image下载窗口里激活的操作自动按序执行
3.3.1 模式一:不启用任何安全措施

  第一种模式是最简单的模式,即不启动任何安全措施,一般用于产品开发调试阶段。
【Secure Boot Type】选择“DEV Unsigned Image Boot”,然后点击【Browse】按钮选择一个原始image文件(使用IDE生成的裸image文件即可,不需要包含任何i.MXRT启动所需的额外文件头),点击【All-In-One Action】按钮即可完成bootable image生成与下载所有操作。

Note: 软件如果设置为Auto-detect image format选项,则根据文件后缀名自动识别源文件格式。但是对于MCUXpresso或者GCC生成的axf文件,需要主动设置为".out(axf) from MCUXpresso/GCC ARM"。

NXP-MCUBootUtility_secboot1_unsigned

  上图中Step4和Step5并不是必需操作,仅是用于确认【All-In-One Action】按钮操作是否成功,尤其是Step5操作,可以对应image下载窗口里显示的Bootable image构成图做一遍检查。
一切操作无误,板子上SW7拨码开关将Boot Mode设为2'b10即Internal Boot模式,其余保持全0,重新上电便可以看到unsigned image正常执行了。

3.3.2 模式二:启用HAB签名认证

  第二种模式是初级的安全模式,即仅对image进行签名认证,一般用于对产品安全性要求较高的场合。签名认证主要是对image合法性进行校验,检测image是否被异常破坏或篡改,如果检测发现image不合法,那么MCU便不会启动执行该image。
【Secure Boot Type】选择“HAB Signed Image Boot”,然后输入serial(必须是8位数字)以及key_pass(任意长度字符)后点击【Advanced Cert Settings】按钮配置所有签名认证的参数(熟悉 NXP官方HAB Code Signing Tool工具 使用的朋友应该对这些设置很熟悉),再点击【Browse】按钮选择一个原始image文件,最后点击【All-In-One Action】按钮即可完成bootable image生成与下载所有操作。

NXP-MCUBootUtility_secboot2_signed

  上图中Step5主要确认两点:一、HAB状态是否是Closed的(Fuse 0x460[31:0]的bit1为1'b1);二、SRKH是否被正确烧录(Fuse 0x580 - 0x5f0,一共256bit,即sha-256算法),SRKH是最终bootable image里CSF数据里的Public RSA Key的Hash值,用于校验Public RSA Key是否合法。
一切操作无误,板子上SW7拨码开关将Boot Mode设为2'b10即Internal Boot模式,其余保持全0,重新上电便可以看到HAB signed image正常执行了。
因为此时MCU芯片HAB状态已经是Closed,并且SRKH已经被烧录无法更改,所以未经签名认证的image无法正常运行,在软件目录\NXP-MCUBootUtility\tools\cst\crts文件夹下存放着Private RSA Key文件,请妥善保存好,一旦遗失,那么新的image将无法被正确签名从而导致HAB认证失败无法被启动执行。

3.3.3 模式三:启用HAB签名认证与HAB加密

  第三种模式是中级的安全模式,即对image进行签名认证以及HAB级加密,一般用于对产品安全性要求很高的场合。签名认证主要是对image合法性进行校验,而加密则可以保护image在外部Boot Device中不被非法盗用,因为在外部Boot Device中存放的是image的密文数据,即使被非法获取也无法轻易破解,并且加密是和MCU芯片绑定的,因为HAB加密过程中使用了MCU内部SNVS模块里的唯一Master Secret Key。
【Secure Boot Type】选择“HAB Encrypted Image Boot”,然后配置所有签名认证的参数(如果本地已有证书,可以不用配置,软件会尝试复用),再点击【Browse】按钮选择一个原始image文件,最后点击【All-In-One Action】按钮即可完成bootable image生成与下载所有操作。

NXP-MCUBootUtility_secboot3_hab_encrypted

  上图中Step6操作之后可以看到下载进Boot Device里的image部分确实是密文,实际上HAB加密仅支持加密image区域,其他区域(比如FDCB、IVT、Boot Data等)均没有加密。
一切操作无误,板子上SW7拨码开关将Boot Mode设为2'b10即Internal Boot模式,其余保持全0,重新上电便可以看到HAB signed encrypted image正常执行了。
你可能会好奇,既然image是经过HAB加密的,那么密码在哪里?怎么设置的?其实image加密操作完全被HAB配套工具封装好了,HAB加密使用的AES-128算法,其对应的128bits的AES-128 Key不是由用户自定义的,而是HAB加密工具自动随机生成的,并且每一次加密操作生成的AES-128 Key都是不一样的,即使你没有更换输入的原始image。AES-128 Key保存在\NXP-MCUBootUtility\gen\hab_crypto\hab_dek.bin文件里。
从上图中image下载窗口里显示的Bootable image构成图里可以看出,相比HAB单签名的方式,HAB签名加密方式最终使用的Bootable image的最后多了一个DEK KeyBlob组成部分,这个DEK KeyBlob是通过MCU芯片内部SNVS模块里的Master Secret Key对hab_dek.bin里的key数据进行动态加密生成的,因为Master Secret Key是芯片唯一的,因此DEK KeyBlob也是芯片唯一的,这是保护image不被非法盗用的关键。
关于HAB加密为何不支持XIP Image,其实简单分析一下启动原理便清楚,Image在Boot Device里存储的是密文,这部分密文必须要经过HAB解密成明文才可以被CPU执行,因此必须要指定不同的存储空间去存放Image明文,Non-XIP image天然指定了明文应存放在芯片内部SRAM或者外挂SDRAM中,而XIP Image是在Boot Device中直接执行的,一般明文地址与密文地址是相同的,因此HAB加密不支持XIP Image。

3.3.4 模式四:启用单引擎BEE加密(唯一SNVS Key)

  第四种模式是高级的安全模式,即用唯一SNVS Key对image进行单引擎BEE级加密,一般用于对产品安全性要求极高的场合。BEE加密与HAB加密的主要区别是执行解密操作的主体不同,主要有如下三点区别:

  • HAB加密是由BootROM里的HAB将加密后的image全部解密成明文另存后再执行(静态解密),而BEE加密是由MCU芯片内部的BEE模块对加密的image进行解密后再执行(如果是XIP image,则是原地边解密边执行(动态解密);如果是Non-XIP Image,则解密执行流程与HAB加密类似)。
  • HAB加密仅支持Non-XIP Image(不限Boot Device),而BEE加密仅支持在FlexSPI NOR中启动的Image(不限XIP/Non-XIP)。
  • HAB加密区域不可指定(默认全部用户Image区域),而BEE加密的区域可由用户指定。

NXP-MCUBootUtility_secboot4_bee_encrypted_fixed_key

  【Secure Boot Type】选择“BEE Encrypted Image Boot”,然后配置所有签名认证的参数(如果本地已有证书,可以不用配置,软件会尝试复用),再点击【Browse】按钮选择一个原始image文件(必须是XIP在FlexSPI NOR中的image),【Key Storage Region】选择“Fixed Otpmk(SNVS) Key”后点击【Advanced Key Settings】按钮配置所有BEE加密的参数,最后点击【All-In-One Action】按钮即可完成bootable image生成与下载所有操作。
上图中Step6操作主要确认一点:BEE_KEY0_SEL是否设置的是From OTPMK[255:128](Fuse 0x460[31:0]的bit13,12为2'b10)。Step7操作之后可以看到下载进Boot Deivce里的Bootable image从IVT开始全是密文,本示例仅启用一块加密区域,具体对哪些区域进行加密是在【Advanced Key Settings】里指定的,最大支持指定3块加密区域。
有必要对如下使用Fixed Otpmk(SNVS) Key加密的BEE参数设置页面再做一下介绍,主要是设置Region Count以及指定Region范围,默认为0即自动对整个image区域进行加密。

NXP-MCUBootUtility_fixedSnvsKeyWin

  一切操作无误,板子上SW7拨码开关将Boot Mode设为2'b10即Internal Boot模式,并且将BT_CFG[1]设为1'b1(使能Encrypted XIP),其余保持全0,重新上电便可以看到BEE encrypted image正常执行了。
BEE加密相比HAB加密是要更安全的,因为HAB加密毕竟仅能静态解密,当HAB解密完成之后在SRAM/SDRAM中存储的是全部的image明文,如果此刻黑客去非法访问SRAM/SDRAM是有可能获取全部image明文的(不过也不用担心,i.MXRT可以设置JTAG访问权限);而BEE加密可以是动态解密,CPU执行到什么地方才会去解密什么地方,任何时候都不存在完整的image明文,黑客永远无法获取全部的image明文。

3.3.5 模式五:启用双引擎BEE加密(用户自定义Key)

  第五种模式是顶级的安全模式,即用用户自定义Key对image进行双引擎BEE级加密,跟第四种模式(单引擎)原理类似,一般用于对产品安全性要求最高的场合。单引擎BEE加密与双引擎BEE加密具体区别如下:

  • 唯一SNVS Key单引擎BEE加密默认使用SNVS Key,芯片出厂已预先烧录,无法更改;用户自定义Key双引擎BEE加密使用的Key是由用户自己设的,需要手动烧录在Fuse SW_GP2和GP4区域。
  • 唯一SNVS Key单引擎BEE加密只启用了BEE引擎0;用户自定义Key双引擎BEE加密可以同时启用BEE引擎0和引擎1。但需要注意的是无论启动几个BEE引擎,最大加密区域总数均是3个。
  • 唯一SNVS Key单引擎BEE加密必须要配合HAB签名一起使用,因为只有在HAB Closed的状态下才能获取SNVS Key;用户自定义Key双引擎BEE加密不一定要使用HAB签名。

NXP-MCUBootUtility_secboot5_bee_encrypted_flexible_key

  【Secure Boot Type】选择“BEE Encrypted Image Boot”,【Enable Certificate For BEE Encryption】选择是否要使能HAB签名,然后点击【Browse】按钮选择一个原始image文件(必须是XIP在FlexSPI NOR中的image),【Key Storage Region】选择“Flexible User Keys”后点击【Advanced Key Settings】按钮配置所有BEE加密的参数,最后点击【All-In-One Action】按钮即可完成bootable image生成与下载所有操作。
上图中Step6操作主要确认两点:一、BEE_KEY0_SEL是否设置正确(Fuse 0x460[31:0]的bit13,12)和BEE_KEY1_SEL是否设置正确(Fuse 0x460[31:0]的bit15,14);二、用户Key是否被正确烧录(SW_GP2: Fuse 0x690 - 0x6c0,GP4: Fuse 0x8c0 - 0x8f0)或锁住。
有必要对如下使用Flexible User Keys加密的BEE参数设置页面再做一下介绍,首先是选择要激活的BEE引擎,可以单独激活BEE引擎0,也可以单独激活BEE引擎1,当然更可以同时激活BEE引擎0和1,本示例同时激活BEE引擎0和1。指定了BEE引擎后需要进一步为该引擎配置加密所使用的Key的存储空间以及需要用户手动输入Key(128bits)。最后还需要设置加密保护的区域,本示例共使能加密2个区域,分别为0x60001000 - 0x60001fff(由BEE引擎0保护),0x60003000 - 0x60003fff(由BEE引擎1保护)。

NXP-MCUBootUtility_flexibleUserKeysWin

  为了确认image是否按指定区域加密,你可以打开\NXP-MCUBootUtility\gen\bootable_image\文件夹下面生成的未加密bootable image文件与image回读窗口里的内容进行比对。
一切操作无误,板子上SW7拨码开关将Boot Mode设为2'b10即Internal Boot模式,并且将BT_CFG[1]设为1'b1(使能Encrypted XIP),其余保持全0,重新上电便可以看到BEE encrypted image正常执行了。
双引擎BEE加密是将用户自定义的Key烧录进了Fuse SW_GP2/GP4区域里,但该区域的Fuse内容是可以回读的,如果黑客拿到Key,还是有可能破解存在外部Boot Device里的image密文,有没有对Fuse SW_GP2/GP4区域进行保护的方法?当然有,你可以对指定的Fuse区域进行加锁,可设置Fuse区域访问权限(读保护,写保护,覆盖保护),具体后面有单独章节详细介绍。NXP-MCUBootUtility工具为了安全考虑,直接将SW_GP2/GP4区域锁了起来。
双引擎BEE加密相比单引擎BEE加密,从破解角度来说难度加倍,毕竟可以启用两组不同的Key来共同保护image不被非法获取。

3.3.6 模式六:启用单重OTFAD加密(唯一SNVS Key)

  第六种模式是顶级的安全模式,即用唯一SNVS Key对image进行单重OTFAD级加密,该模式与单引擎BEE加密(唯一SNVS Key)是类似的,只是早期i.MXRT芯片(比如i.MXRT105x)的FlexSPI配套硬件加解密模块是BEE,而后期i.MXRT芯片(比如i.MXRT1011)的FlexSPI配套硬件加解密模块升级为OTFAD。
相比于BEE模块,OTFAD模块在加解密效率上提升了很多,并且提供了更加强大的加解密模式。关于OTFAD强大的加解密模式在下一节双重OTFAD加密模式中会进一步介绍。

3.3.7 模式七:启用双重OTFAD加密(用户自定义Key)

  第七种模式是顶级的安全模式,即用用户自定义Key对image进行双重OTFAD级加密,前一节讲了OTFAD是BEE的升级,那么我们就来比较一下双重OTFAD加密与双引擎BEE加密区别:

  • 双引擎BEE加密最多可设3个加密区间,这3个加密区间最多仅能由2组用户密钥来保护;而双重OTFAD加密最多可设4个加密区间,每个加密区间均可设独立的用户密钥,并且所有的用户密钥还由一个全局密钥来保护。
  • 双引擎BEE加密的用户密钥是直接存在efuse里的;而双重OTFAD加密存在efuse里的全局密钥可引入扰乱算法来保护。

  从软件操作流程上来说,双重OTFAD加密与双引擎BEE加密是类似的,只是密钥配置窗口有差别,我们打开OTFAD的密钥配置窗口看一下:

NXP-MCUBootUtility_flexibleUserKeysWin_otfad

  kek即全局密钥,kek是存放在efuse里的;用户密钥个数与保护区间一致,所有用户密钥均在OTFAD DEK KeyBlob,KeyBlob是存放在外部NOR Flash里的,kek就是用来保护OTFAD DEK KeyBlob的。

3.4 生成.sb格式文件

  在菜单栏Tools/Generate .sb file选项里勾选"Yes",此时点击【All-In-One Action】按钮便会在\NXP-MCUBootUtility\gen\sb_image\目录下生成.sb格式的文件,该文件可用于MfgTool或者RT-Flash工具中。注意此时【All-In-One Action】按钮并不会在MCU上真正地执行3.3节里的各种操作,而只是将所有命令操作记录在\NXP-MCUBootUtility\gen\bd_file\imx_application_sb_gen.bd里,最终用于生成.sb格式文件。

NXP-MCUBootUtility_setGenerateSbFile

Note1: .sb格式文件生成有一个限制,即每次生成新.sb文件均需要重新连接,点击【Reset device】按钮后回到初始连接状态,然后点击【Connect to ROM】按钮。
Note2: 当.sb文件中包含必要的efuse操作时,会一次性生成3个.sb格式文件,其中application_device.sb包含全部的操作(flash+efuse操作),application_device_flash.sb仅包含flash操作,application_device_efuse.sb仅包含efuse操作,这样做的目的是为了方便工厂量产。
Note3: 对于NOR Flash(FlexSPI NOR、LPSPI NOR)型的启动设备生成.sb文件而言,既可连接板子在线操作(推荐),也可以不用连接板子离线操作。
Note4: eFuse Operation Utility窗口里的【Scan】、【Burn】按钮可用于生成仅含自定义efuse操作的.sb文件,需要先点【Scan】按钮,然后填入想烧写的efuse值,最后再点【Burn】按钮便可在\NXP-MCUBootUtility\gen\sb_image\下生成burn_efuse.sb文件。

4 软件进阶

  NXP-MCUBootUtility软件打开默认工作在Entry Mode下,可通过功能菜单栏Tools->Option选择进入Master Mode,在Master模式下开放了一些高级功能,适用于对NXP MCU芯片以及Boot ROM非常熟悉的用户。

NXP-MCUBootUtility_setToolRunMode

4.1 分步连接设备

  进入Master模式下,可以不勾选One Step选项,这样可以单步去连接目标设备,单步连接的主要意义在于,可以在不配置Boot Device的情况下仅连接到Flashloader去实现eFuse操作。

NXP-MCUBootUtility_nonOneStepConnection

4.2 专用eFuse烧写器

  进入Master模式下,可以看到eFuse全部区域都开放了,你可以任意烧写指定的eFuse区域。eFuse操作是按bit一次性的(类似熔丝烧断),只能将0烧写成1,烧录成1之后便无法更改,所以eFuse的操作需要特别谨慎。

NXP-MCUBootUtility_fuseUnderMasterMode

  在上一章节安全加密启动过程中,我们会烧录SRKH(0x580 - 0x5f0)、SW_GP2(0x690 - 0x6c0)、GP4(0x8c0 - 0x8f0),这些区域一经烧录便不得更改,甚至我们希望这些区域不仅不能被更改,也要不能被回读。

NXP-MCUBootUtility_fuseLockerBits

  从上图可知eFuse 0x400即是各Fuse功能区域的Locker,我们可以通过烧录eFuse 0x400来锁住SW_GP2, GP4区域。那么如何烧录呢?其实非常简单,直接在各eFuse框内填写想要烧录的值,点击【Burn】按钮即可。

  对于一些混合功能的eFuse区域,除了可以在对应框内直接填写想要烧录的值外,也可以点击索引按钮,在弹出的界面里编辑:

NXP-MCUBootUtility_fuseViewer

4.3 专用FlexRAM编程器

  进入Master模式下,可以点击【Read】、【Write】、【Execute】按钮实现FlexRAM的任意读/写/执行操作,这样可以将NXP-MCUBootUtility工具当做专用FlexRAM编程器。

NXP-MCUBootUtility_flexramProgrammer

4.4 通用Flash编程器

  进入Master模式下,可以点击【Read】、【Erase】、【Write】按钮实现已配置Flash的任意读/擦/写操作,这样可以将NXP-MCUBootUtility工具当做通用Flash编程器。

NXP-MCUBootUtility_flashProgrammer

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. aspx头部代码

    添加web窗体 vs自动创建两个文件ceshi.aspx/ceshi.cs <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ceshi.aspx.cs" Inherits="SM_ceshi" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xh…...

    2024/4/19 21:51:56
  2. [转]busybox中telnet 功能添加

    使用busybox制作的一个基本根文件系统如何添加telnetd服务呢? 下面把本人的添加过程列出来供大家分享,如有不同意见请不吝赐教! 1、 添加telnet的支持(busybox中配置) Networking Utilities ---> [*] telnet [*] Pass TERM type to remo…...

    2024/4/14 21:51:50
  3. 优化系统,提高XP性能

    优化系统,提高XP性能- - 现在使用XP的人越来越多了,这里我把一些优化系统的方法告诉大家,使大家有个高性能的XP。 1.关闭华特医生(Dr.Watson) 在[运行]里输入--drwtsn32或在附件--〉系统工具--〉系统信息--〉工具--〉Dr.Watso…...

    2024/4/27 8:26:41
  4. Android busybox安装与vim Python IDE开发环境

    在Android上安装BusyBox 0. 先要把手机给Root了,具体教程这里就不提供了,网上有很多。 1. 下载BusyBox的binary,打开这个地址 http://www.busybox.net/downloads/binaries 例如下载了: /downloads/binaries/1.21.1/中的busybox-armv7l 2.把下载好的busybox-armv7l用adb pu…...

    2024/4/28 4:41:14
  5. 如何将double型数值转换为16进制的形式

    昨天编程序遇到一个随机生成的uid,怎么都不知道怎么生成的,最后用了HttpAnalyzerstdv7查了一下,原来是在js中生成的,为了模拟js,笔者将其内部函数看了一下,发现有代码中有一double型变量,将其转换成为了16进制,当时那个纠结啊,浪费了那么多时间也没想明白那些a,b,c,d和…...

    2024/4/14 22:56:18
  6. 感恩节|转行、患癌、一无所长…致敬伴我走出低谷的力量

    一定有一个身影TA默默陪你度过人生的某个暗黑时刻这个身影或许是家人或许是朋友也许是同事也许是老师但是更多的是自己时至感恩节我们采访了几名从传智播客毕业的老学员不同年龄的他们,对于“感恩”有着不一样的故事……他们中有刚毕业一个月的职场小萌新也有毕业十年的技术大…...

    2024/4/14 22:56:16
  7. nvm的下载,安装与使用

    nvm的下载,安装与使用 1,nvm作用: 进行nodejs版本控制 2,nvm下载地址: github.com/coreybutler… 注意: github服务器在国内较少,下载速度会很慢 链接:pan.baidu.com/s/1DEk3-VJg… 备注: 此链接为本人网盘链接,课放心使用 3,nvm安装nvm-noinstall.zip: 这个是绿色…...

    2024/4/14 22:56:15
  8. 深度完美 Ghost XP SP3 纯净优化版V2011.11

    深度完美 Ghost XP SP3 纯净优化版V2011.11 深度完美Ghost 系统采用最新的封装技术,全面提升系统在计算机上的部署速度,恢复效率更高. 系统中集成2000年以后流行的各种硬件驱动和最常用的软件。安装了截止2011年11月08前全部微软关键补丁, 完美通过微软正版验证,支持在线更…...

    2024/4/14 22:56:14
  9. 安卓手机免Root运行busybox的命令(重做带图)

    上次我发不显示篇不显示面不显示照片,所以我又重新发布了一次,让大家看得明白一点。安卓手机免Root运行busybox的命令BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例g…...

    2024/4/28 6:28:03
  10. C#调用MySql

    1、要连接MySql数据库必须首先下载MySql官方的连接.net的文件,文件下载地址为http://dev.mysql.com/downloads/connector/net/6.6.html#downloads ,下载平台选择.Net&Mono,下载ZIP免安装版。连接器/网是一个完整的ADO。净MySQL的驱动程序。从6.7版本开始,连接器/净将不再…...

    2024/4/28 9:00:04
  11. XP的视觉效果优化

    XP的视觉效果,这些效果虽然让XP看上去动态、漂亮点,但有时候挺烦的,就好象一边用XP一边开着动画播放器看动画,虽然不知道到底占多大资源,但这些也得占用CPU时间去处理不是,所以按我的思想,能省则省,关了显的XP快,当然不是全关这些效果,下面具体说明一下: 先得打开设…...

    2024/4/14 22:56:11
  12. 16进制浮点数(正和负数)转化成十进制显示!绝对成功显示

    在工作需要时,需要此功能,网上查了半天,基本都是正数浮点数可以的,但负数浮点数就报错了,通过查询资料和修改部分函数,完成完全转化功能,经测试OK编写了一个三个函数来实现此功能。转化思路:16进制的字符串>>>转化二进制的字符串>>>由二进制转化成…...

    2024/4/27 23:53:47
  13. 【感恩节】一个程序员的总结

    感恩节,写一些我这些年的经历,也对自己做一个总结,对生命中遇到的人说一声感谢!蓦然回头,工作已经快三年了,静下来看看现状,唉,感觉真的不如上大学的时候啊 -_-13年,怀着兴奋,忐忑的心情独自一个人来到了福州,这个距离我家乡两千多公里的城市。刚进大学的校门,对一…...

    2024/4/14 22:56:10
  14. cs231n学习笔记-激活函数-BN-参数优化

    1. 机器学习流程简介1)一次性设置(One time setup)- 激活函数(Activation functions)- 数据预处理(Data Preprocessing)- 权重初始化(Weight Initialization)- 正则化(Regularization:避免过拟合的一种技术)- 梯度检查(Gradient checking)2)动态训练(Training…...

    2024/4/28 0:57:18
  15. XP系统启动慢的另类解决(尤其是网络启动慢)

    前段时间,一直被系统启动慢困扰,现象是,每次进入桌面以后,系统反应很慢,如果这个时候打开资源管理器,就看见那个手电筒不停转啊转。大概2分多钟才能显示网络图标。虽然不影响使用,但那个2分多的等待着事让我心烦。期间也到网上查过,尝试过一些操作,例如把一些程序卸载…...

    2024/4/14 22:56:07
  16. 向busybox中添加命令

    注意: 个人使用的busybox 是1.21.0 其中 Kbuild Config.in usage.h applets.h 均是由 Kbuild.src Config.src 等gen 的,所以修改生成的文件的文件, 而不是Kbuild等。注释里有说明,其它的参考 别的命令来写。第一种方法向 BusyBox添加一个新命令非常简单,这是因为它具有良好…...

    2024/4/14 22:56:06
  17. 位,字节,16进制关系,以防忘记(给自己看的)

    1字节=8位 一个16进制为0xf,一个16进制数为四个二进制数,0x0为0000,0xf为1111,即1个16进制数为4位 UE软件打开bmp图像,如42 4D 38 04 04 00 00 00 00 00 36 04 00 00,每两个16进制数隔开,用意是:因为1个16进制数为4位,两个就是8位,即1个字节,所以这里是14字节,是位图…...

    2024/4/19 11:17:06
  18. IntelliJ IDEA2018破解教程(2019.1.11更新)

    转载自:https://blog.csdn.net/qq_27686779/article/details/78870816...

    2024/4/19 8:41:22
  19. 感恩有您,感恩父亲节PPT模板

    在这个世界上有这么一个男人,你从不说爱我,但你演技不好,藏不住满满的关怀,我问飞翔是什么感觉,你就将我抛起来,一年又一年,直到你抱不起我,直到你渐生白发,你没说,但我知道,你要牵着我一直走天涯,用你的白发换来我的青春。曾经的超人却在时光之战中慢慢苍老。感谢…...

    2024/4/14 21:52:05
  20. mysql数据库服务找不到

    安装MySQL数据库完成后,在控制面板的服务列表里找不到MySQL服务启动项如果我们用的是绿色免安装版本的mysql数据库有时会出现mysql数据库找不到的问题解决方案:打开cmd,切换到mysql的bin目录 D:\Program Files\MySQL5.1\bin>,下然后输入 mysqld.exe -install命令如果提示…...

    2024/4/14 21:52:03

最新文章

  1. java自定义时间工具类方法,判断当前时间是否在指定有效时间之内

    1. 需求分析 本文分享一个自定义的时间工具类方法&#xff0c;判断当前时间是否在指定时间段以内&#xff0c;如果不在该时间范围内&#xff0c;返回true&#xff0c;否则返回false。 2.应用场景 判断当前时间是否在日期2024-04-25&#xff08;date参数传值&#xff09;中的…...

    2024/4/28 13:16:12
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 从头开发一个RISC-V的操作系统(二)RISC-V 指令集架构介绍

    文章目录 前提ISA的基本介绍ISA是什么CISC vs RISCISA的宽度 RISC-V指令集RISC-V ISA的命名规范模块化的ISA通用寄存器Hart特权级别内存管理与保护异常和中断 目标&#xff1a;通过这一个系列课程的学习&#xff0c;开发出一个简易的在RISC-V指令集架构上运行的操作系统。 前提…...

    2024/4/24 5:34:22
  4. 蓝桥杯第十五届抱佛脚(十)贪心算法

    蓝桥杯第十五届抱佛脚&#xff08;十&#xff09;贪心算法 贪心算法基本概念 贪心算法是一种在算法设计中常用的方法&#xff0c;它在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是最好或最优的算法。 贪…...

    2024/4/19 0:49:59
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57