在设备制造后更改设备

Azure Sphere 设备制造的最后一步是将设备置于 DeviceComplete 状态,从而保护设备免受修改。 但是,在某些情况下,需要修改已放入 DeviceComplete 状态的设备。

用于此类方案的安全机制是使用 设备功能。 有两种类型的设备功能: fieldServicingappDevelopment,应使用具有所需最低功能集的设备。 也就是说,如果 fieldServicing 功能满足你的需求,则应使用该功能,但如果需要更大的灵活性,请改用 appDevelopment 功能。 虽然这些功能是为两种命名方案设计的,但应检查已启用的实际功能,而不是依赖于该名称。 只有设备的目录所有者才能获取该设备的功能,并且每个功能仅限于单个设备。

对 DeviceComplete 设备进行更改时,不应旁加载这些功能。 这是为了消除意外离开功能的风险,从而使设备处于不安全状态。 应改用服务会话。

使用服务设备的功能分为三个阶段:下载功能、应用受信任的密钥存储更新(如有必要),然后创建服务会话。

下载功能

可以使用 az sphere device capability download 命令下载功能。 必须有权访问拥有设备和 Internet 访问权限的目录才能下载功能。 默认情况下,使用当前附加的设备。 附加多个设备时,请在参数中 --device 指定附加设备的 IP 地址、设备 ID 或本地连接 ID。 下载未附加设备的功能时,在 --device 参数中提供设备 ID。

下载附加设备的功能:

  1. 将以下命令与参数--output-file配合使用--type,为附加设备下载功能文件。 例如:

    az sphere device capability download --resource-group MyResourceGroup --catalog MyCatalog --device <DeviceIdValue> --type ApplicationDevelopment --output-file myCapabilities.cap
    

    将 capability-file> 替换为<计算机上存储功能文件的位置。

下载未附加设备的功能:

  1. 将以下命令与 --type> 和----output-file参数配合使用--device,为未附加的设备下载功能文件。 例如:

    az sphere device capability download --resource-group <resource-group> --catalog <catalog> --device <deviceID> --type fieldServicing ----output-file <capability-file>
    

    提供需要该功能的设备的设备 ID,并将功能文件替换为 <用于存储功能文件的> 计算机上的位置。

如有必要,请更新受信任的密钥存储

如果设备未连接到 Internet,则设备可能不信任该功能。 当 AS3 更新了其映像签名密钥(包括功能映像)时,会发生这种情况,但设备在其受信任的密钥存储中没有此更新的密钥。 任何连接的设备都会自动更新其受信任的密钥存储,但如果设备未连接,则可能未发生。

若要解决此问题,请参阅 此处的详细说明。

创建服务会话

若要为设备提供服务,可以通过选择功能来创建服务会话。 每次在会话期间发出“az sphere”命令时,都会将所选功能传递给设备,使设备能够在其锁定状态的情况下执行命令。 功能文件不会永久存储在设备上,因此设备保持锁定和保护。 如果以后将另一台计算机附加到设备,而无法访问功能文件,则无法修改设备。

创建服务会话:

  1. 使用 编程和调试接口将设备连接到电脑。

  2. az sphere device capability apply 命令与 --capability-file capability-file>< 参数一起使用。 将 capability-file> 替换为<下载该功能时指定的文件路径。

    选择该文件后,会话就会启动。 每次 az sphere 在会话期间运行命令时,功能信息都会传递到设备,从而解锁通信。 此功能存储在计算机上,并且与 Windows 或 Linux 登录数据相关联,而不是与 Azure Sphere 登录数据关联。 服务会话适用于从计算机定向到设备的所有 az sphere 命令,而不仅仅是从当前命令提示符运行的命令。

若要结束服务会话,请使用 az sphere device capability apply --none 命令

如果此命令成功,则不会再将功能信息传递到设备。 如果不结束会话,下次从此计算机发出“az sphere”命令时,当前设备功能将随命令一起传递,因此,如果使用的是其他设备,该命令将失败。 如果删除功能文件而不结束服务会话,下一个命令将警告你所选功能文件缺失,并清除任何进一步命令的选择。