Compartir a través de


Realización de cambios en un dispositivo después de la fabricación

Uno de los pasos finales de la fabricación de un dispositivo de Azure Sphere es colocar el dispositivo en el estado DeviceComplete, que protege el dispositivo contra la modificación. Sin embargo, hay situaciones en las que los dispositivos que se han colocado en el estado DeviceComplete deben modificarse.

El mecanismo seguro que se usa para estos escenarios es usar una funcionalidad de dispositivo. Hay dos tipos de funcionalidad de dispositivo, fieldServicing y appDevelopment, y debe usar el que tiene el conjunto mínimo de características necesarias. Es decir, si la funcionalidad fieldServicing satisface sus necesidades, debe usarla, pero si se requiere mayor flexibilidad, use la funcionalidad appDevelopment en su lugar. Aunque las funcionalidades se diseñaron para los dos escenarios después de los cuales se denominan, debe comprobar las funcionalidades reales habilitadas en lugar de confiar en ese nombre. Solo el propietario del catálogo del dispositivo puede adquirir funcionalidades para ese dispositivo y cada funcionalidad está restringida a un único dispositivo.

Al realizar cambios en un dispositivo DeviceComplete, no debe transferir localmente esas funcionalidades. Esto es para eliminar el riesgo de dejar accidentalmente la funcionalidad presente y, por tanto, dejar el dispositivo en un estado inseguro. En su lugar, debe usar una sesión de mantenimiento.

Hay tres fases para usar funcionalidades para atender dispositivos: descargar las funcionalidades, aplicar una actualización de almacén de claves de confianza (si es necesario) y, a continuación, crear una sesión de mantenimiento.

Descarga de una funcionalidad

Puede descargar una funcionalidad mediante el comando az sphere device capability download. Debe tener acceso al catálogo que posee el dispositivo y el acceso a Internet para descargar una funcionalidad. De forma predeterminada, se usa el dispositivo conectado actualmente. Cuando se adjuntan varios dispositivos, especifique la dirección IP, el identificador de dispositivo o el identificador de conexión local de un dispositivo conectado en el --device parámetro . Al descargar una funcionalidad para un dispositivo no conectado, proporcione un identificador de dispositivo en el --device parámetro .

Para descargar la funcionalidad para un dispositivo conectado:

  1. Use el siguiente comando con los --type parámetros y --output-file para descargar un archivo de funcionalidad para el dispositivo conectado. Por ejemplo:

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

    Reemplace <capability-file> por la ubicación del equipo en el que almacenar el archivo de funcionalidad.

Para descargar la funcionalidad para un dispositivo no conectado:

  1. Use el siguiente comando con los --deviceparámetros , --typey ----output-file para descargar un archivo de funcionalidad para el dispositivo no conectado. Por ejemplo:

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

    Proporcione el identificador de dispositivo del dispositivo para el que necesita la funcionalidad y reemplace <capability-file> por la ubicación del equipo en el que almacenar el archivo de funcionalidad.

Actualice el almacén de claves de confianza si es necesario.

Si un dispositivo no está conectado a Internet, existe la posibilidad de que el dispositivo no confíe en la funcionalidad. Esto ocurre cuando AS3 ha actualizado su clave de firma de imagen con la que firma todas las imágenes, incluidas las imágenes de funcionalidad, pero el dispositivo no tiene esta clave actualizada en su almacén de claves de confianza. Cualquier dispositivo conectado actualiza automáticamente su almacén de claves de confianza, pero si el dispositivo no está conectado, es posible que no se haya producido.

Para solucionar esto, consulte las instrucciones detalladas aquí.

Creación de una sesión de servicio

Para atender un dispositivo, cree una sesión de mantenimiento seleccionando una funcionalidad. Cada vez que se emite el comando "az sphere" durante la sesión, la funcionalidad seleccionada se pasa al dispositivo, lo que permite que el dispositivo realice el comando a pesar de su estado bloqueado. El archivo de funcionalidad no se almacena de forma persistente en el dispositivo, por lo que el dispositivo permanece bloqueado y protegido. Si otro equipo está conectado más adelante al dispositivo sin acceso al archivo de funcionalidad, no podrá modificar el dispositivo.

Para crear una sesión de servicio:

  1. Conecte el dispositivo al equipo mediante la interfaz de programación y depuración.

  2. Use el comando az sphere device capability apply con el parámetro --capability-file< capability-file>. Reemplace <capability-file> por la ruta de acceso del archivo que especificó al descargar la funcionalidad.

    Después de seleccionar el archivo, se inicia la sesión. Cada vez que se ejecuta el az sphere comando durante la sesión, la información de funcionalidad se pasa al dispositivo, lo que desbloquea la comunicación. La funcionalidad se almacena en el equipo y se asocia a los datos de inicio de sesión de Windows o Linux, no al inicio de sesión de Azure Sphere. La sesión de mantenimiento se aplica a todos los az sphere comandos dirigidos al dispositivo desde el equipo, no solo a los que se ejecutan desde el símbolo del sistema actual.

Para finalizar la sesión de mantenimiento, use el comando az sphere device capability apply --none

Cuando este comando se ejecuta correctamente, la información de la funcionalidad ya no se pasa al dispositivo. Si no finaliza la sesión, la próxima vez que emita un comando "az sphere" desde este equipo, se pasará la funcionalidad del dispositivo actual junto con el comando y, por tanto, se producirá un error en el comando si está trabajando con otro dispositivo. Si elimina el archivo de funcionalidad sin finalizar la sesión de mantenimiento, el siguiente comando le avisará de que falta el archivo de funcionalidad seleccionado y borrará la selección de los comandos adicionales.