Funcionalidades y comunicación del dispositivo

Las capacidades del dispositivo determinan las directivas de SO específicas del dispositivo para la comunicación entre servicios y UART . Toda la comunicación entre el equipo host y un dispositivo conectado se realiza a través del UART de servicio. El equipo host se comunica con un dispositivo conectado para realizar operaciones en el dispositivo. Los fabricantes, los desarrolladores de software y los técnicos de servicio en campo usan las capacidades para desbloquear la comunicación de UART de servicio para las operaciones que requieren, a la vez que garantizan que el dispositivo está protegido frente a usuarios malintencionados.

Los fabricantes de dispositivos y OEM pueden bloquear la comunicación de servicio UART para evitar el uso no autorizado por parte de quienes tienen acceso físico al dispositivo. Bloquear dicha comunicación forma parte de la finalización del dispositivo. Después de la finalización, un usuario puede obtener el id. de un dispositivo, pero nada más; todas las demás operaciones requieren la funcionalidad de un dispositivo. La finalización se suele realizar en la fábrica antes de que el fabricante envíe el dispositivo a un sitio del cliente.

Un archivo de funcionalidad de dispositivo contiene cero o más funcionalidades solo para un único dispositivo. El archivo de funcionalidad no funcionará si se aplica a un dispositivo que no es para el que está destinado. Un dispositivo puede tener las siguientes capacidades, cada una de las cuales se describe más adelante en este tema:

Nota

Las funcionalidades del dispositivo no están relacionadas con las capacidades de la aplicación. Las capacidades de la aplicación especifican los recursos que requiere una aplicación en tiempo de ejecución. Vea el manifiesto de la aplicación para obtener más información sobre las capacidades de la aplicación.

Cómo determinar las capacidades o el estado de fabricación del dispositivo

Para determinar la configuración de funcionalidad almacenada en el dispositivo conectado, utilice el comando az sphere device capability show-attached . El comando muestra las capacidades que se configuran mediante un archivo de funcionalidad y algunas, pero no todas, funcionalidades presentes de forma predeterminada en los paneles.

Las capacidades del dispositivo pueden verse afectadas por el estado de fabricación del dispositivo. Para determinar el estado de fabricación del dispositivo, utilice el comando az sphere device manufacturing-state show . Si el comando muestra que el dispositivo se encuentra en el estado de fabricación de DeviceComplete o devuelve Device access is forbidden, la comunicación service-UART está bloqueada y necesita la capacidad del dispositivo para comunicarse con el dispositivo desde el equipo. Cuando un dispositivo se encuentra en el estado de fabricación DeviceComplete , las operaciones de fabricación solo se permiten cuando el dispositivo se desbloquea a través de un archivo de funcionalidad.

Nota

Si instalas un dispositivo en un sitio de cliente, debes asegurarte de que el dispositivo finaliza en el estado de fabricación DeviceComplete antes de la instalación. Consulte Finalizar el dispositivo Azure Sphere.

El estado de manufacuring DeviceComplete normalmente no es adecuado para un kit de desarrollo. Para permitir la prueba de las operaciones de fabricación que están desarrollando los ingenieros de fabricación, un kit de desarrollo debe estar en el estado Fabricación en blanco o en el estado de fabricación Módulo1Completar .

Cómo adquieren funcionalidades los dispositivos

Los dispositivos pueden adquirir funcionalidades de una de estas tres maneras:

  • Se abre de forma predeterminada. Un dispositivo que se encuentra en el estado Fabricación en blanco o en el estado de fabricación Módulo1Completar tiene algunas funcionalidades abiertas de forma predeterminada. Esto se hace para que los dispositivos que aún estén en la fase de fabricación no tengan que estar conectados a la nube ni reclamarse en catálogos, como requiere el proceso de usar archivos de funcionalidad del dispositivo para desbloquear capacidades. A medida que avance la fabricación, los fabricantes pueden cambiar el estado de fabricación del dispositivo para bloquear las capacidades que ya no sean adecuadas, como se describe en Tareas de fábrica.

  • Cargado de prueba en el dispositivo. Un dispositivo puede tener un archivo de funcionalidad cargado de prueba en el dispositivo desde el equipo host. Use el comando az sphere device capability download para recuperar el archivo de funcionalidad. Este conjunto de funcionalidades de instalación de prueba continúa hasta que se instala de prueba un nuevo archivo de funcionalidad (que puede ser un archivo en blanco sin capacidades). Esta es la situación habitual durante el desarrollo de aplicaciones, por ejemplo, cuando se ejecuta el comando az sphere device enable-development . El desarrollo de aplicaciones es ayudado por tener el dispositivo en un estado desbloqueado donde el desarrollador puede realizar operaciones como depurar y eliminar e implementar fácilmente versiones de instalación de prueba de la aplicación.

  • Se ha pasado al dispositivo con cada operación. Un dispositivo puede tener funcionalidades seleccionadas localmente aplicadas por operación. El comando az sphere device capability apply selecciona un archivo de funcionalidad almacenado localmente en el equipo host. Una vez ejecutado este comando, la funcionalidad seleccionada se pasa del equipo al dispositivo con cada comando posterior. Esta es la forma recomendada de usar funcionalidades para dispositivos que están en el campo, ya que las capacidades se almacenan en el equipo en lugar del dispositivo. Se evita el riesgo de que un ingeniero de campo deje accidentalmente el dispositivo en un estado no seguro olvidando quitar la funcionalidad.

Antes de que se pueda realizar la instalación de prueba de un archivo de funcionalidad en un dispositivo o pasarlo a un dispositivo con una operación, debe descargarse desde el Servicio de Seguridad de esferas de Azure (AS3), como se describe en Realizar cambios en un dispositivo después de su fabricación. Los archivos de capacidad descargados son específicos del dispositivo; una vez descargado, un archivo de funcionalidad se puede usar repetidamente en el dispositivo asociado.

La funcionalidad enableRfTestMode

La funcionalidad enableRfTestMode está presente de forma predeterminada en el dispositivo cuando el estado de fabricación del dispositivo es En blanco. Esta capacidad permite la programación de fusibles electrónicos y la configuración y prueba de la operación de RF. No es posible que los propietarios del catálogo descarguen esta capacidad en un equipo host. Si necesitas esta funcionalidad, ponte en contacto con tu representante de Microsoft.

Cuando el estado de fabricación del dispositivo es En blanco, el comando az sphere device capability show-attached muestra la funcionalidad enableRfTestMode .

La funcionalidad appDevelopment

La funcionalidad de dispositivo appDevelopment desbloquea la comunicación service-UART y cambia el tipo de firma en la que confía el dispositivo. Está pensado para su uso durante el desarrollo de aplicaciones.

De forma predeterminada, los dispositivos Azure Sphere confían en los paquetes de imagen firmados para producción que descarga el Servicio de seguridad de Azure Sphere, pero no confían en los paquetes de imágenes firmados con SDK. Por lo tanto, no puedes crear un paquete de imagen con el SDK y realizar la instalación de prueba en tu dispositivo Azure Sphere para depuración a menos que el dispositivo tenga la funcionalidad appDevelopment . La funcionalidad appDevelopment hace que el dispositivo confíe en el paquete de imagen y le permite iniciar, detener, depurar o quitar una aplicación del dispositivo.

En resumen, la funcionalidad appDevelopment desbloquea la comunicación service-UART para permitir las siguientes operaciones:

  • Instalación de prueba de un paquete de imagen creado con Visual Studio, Visual Studio Code, la CLI o el comando az sphere image-package.

  • Iniciar, detener, depurar o quitar un paquete de imagen del dispositivo Azure Sphere, independientemente de cómo se firme el paquete de imagen.

Para agregar la funcionalidad appDevelopment , utilice el comando az sphere device enable-development . Este comando descarga la funcionalidad appDevelopment para el dispositivo adjunto, realiza la instalación de prueba de la funcionalidad en el dispositivo y mueve el dispositivo al grupo de dispositivos de desarrollo predeterminado. Para especificar un grupo de dispositivos diferente, incluye el --device-group parámetro.

Al usar az sphere device enable-development, el dispositivo permanece desbloqueado hasta que lo bloqueas explícitamente. Para volver a bloquear el dispositivo, utilice el comando az sphere device enable-cloud-test . Este comando quita la funcionalidad y cambia el grupo de dispositivos, según los parámetros de la línea de comandos suministrados.

Los comandos az sphere device enable-development y az sphere device enable-cloud-test ejecutan una secuencia de acciones que preparan un dispositivo para el desarrollo y depuración o para implementaciones en la nube, respectivamente. En lugar de usar estos comandos, puede usar el comando az sphere device capability para descargar o actualizar una funcionalidad de dispositivo, o para averiguar qué capacidades tiene actualmente un dispositivo.

La funcionalidad fieldServicing

La funcionalidad fieldServicing está presente en un dispositivo de forma predeterminada cuando el dispositivo tiene el estado de fabricación En blanco o Módulo1Completar. Cuando un dispositivo tiene el estado de fabricación DeviceComplete , la funcionalidad fieldServicing se puede realizar de prueba, pero normalmente se pasa al dispositivo con cada operación durante una sesión de mantenimiento. Para obtener más información sobre cómo iniciar una sesión de mantenimiento, consulta Realizar cambios en un dispositivo después de su fabricación.

Independientemente del estado de fabricación del dispositivo, la funcionalidad fieldServicing desbloquea la comunicación service-UART para permitir las siguientes operaciones:

  • Instalación de prueba de un paquete de imagen firmado por producción.
  • Iniciar, detener y eliminar un paquete de imagen firmado por producción que está marcado como temporal.
  • Realizar tareas de mantenimiento rutinarias, como la configuración de Wi-Fi.

Aunque la funcionalidad fieldServicing está presente de forma predeterminada en el dispositivo cuando el estado de fabricación del dispositivo es En blanco o Módulo1Complete, el comando show-attached de funcionalidad de dispositivo az sphere no muestra la funcionalidad fieldServicing .

Dependencia del almacén de claves de confianza actualizado

Cuando AS3 crea un archivo de funcionalidad, se firma con la clave de firma de imagen actual. Cada dispositivo tiene un almacén de claves de confianza como parte del sistema operativo donde se conservan esas claves. Sin embargo, si el dispositivo no está conectado a Internet, es posible que el dispositivo en el que se dirige no sea de confianza si el almacén de claves de confianza del dispositivo no está actualizado.

Para solucionar este problema, un método es permitir que el dispositivo se conecte a Internet para que actualice el almacén de claves de confianza. Conecta el dispositivo a Internet y presiona Restablecer para desencadenar una actualización del sistema operativo.

Si esto no es posible, puedes realizar la instalación de prueba de un almacén de claves de confianza actualizado. Para ello, acepta los términos de licencia , descarga las imágenes de recuperación del sistema operativo más recientes y, desde este archivo zip, extrae solo el archivo "trusted-keystore.bin". A continuación, puedes usar el comando az sphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> para realizar la instalación de prueba del almacén de claves de confianza y la funcionalidad debería ser ahora de confianza para el dispositivo.

Un tercer método es Recuperar el software del sistema para actualizar el SO Azure Sphere a la versión más reciente, incluido el almacén de claves de confianza más reciente.