Funcionalidades do dispositivo e comunicação
Importante
Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).
Os recursos do dispositivo determinam as políticas do sistema operacional específicas do dispositivo para comunicação UART de serviço. Toda a comunicação entre o computador host e um dispositivo conectado é feita por meio do serviço UART. O computador host se comunica com um dispositivo conectado para executar operações no dispositivo. Fabricantes, desenvolvedores de software e técnicos de serviço de campo usam recursos para desbloquear a comunicação UART de serviço para as operações necessárias, garantindo que o dispositivo esteja protegido contra usuários mal-intencionados.
Os fabricantes de dispositivos e OEMs podem bloquear a comunicação UART de serviço para impedir o uso não autorizado por aqueles que têm acesso físico ao dispositivo. Bloquear essa comunicação faz parte da finalização do dispositivo. Após a finalização, um usuário pode obter a ID de um dispositivo, mas nada mais. Todas as outras operações exigem uma funcionalidade de dispositivo. A finalização geralmente é realizada no chão de fábrica antes que o fabricante envie o dispositivo para o local do cliente.
Um arquivo de funcionalidade do dispositivo contém zero ou mais recursos apenas para um único dispositivo. O arquivo de funcionalidade não funcionará se aplicado a um dispositivo que não seja aquele para o qual se destina. Um dispositivo pode ter os seguintes recursos, cada um dos quais é descrito posteriormente neste tópico:
Observação
As funcionalidades do dispositivo não estão relacionadas às funcionalidades do aplicativo. As funcionalidades do aplicativo especificam os recursos que um aplicativo exige durante o runtime. Confira manifesto do aplicativo para obter mais informações sobre funcionalidades do aplicativo.
Como determinar os recursos do dispositivo ou o estado de fabricação
Para determinar a configuração de funcionalidade armazenada no dispositivo anexado, use o comando azsphere device capability show-attach. O comando exibe os recursos configurados usando um arquivo de recursos e alguns, mas não todos, recursos presentes por padrão nas placas. Para obter uma lista completa dos comandos azsphere que exigem uma funcionalidade do dispositivo, consulte a tabela na visão geral da CLI.
Os recursos do dispositivo podem ser afetados pelo estado de fabricação do dispositivo. Para determinar o estado de fabricação do dispositivo, use o comando azsphere device manufacturing-state show. Se o comando mostrar que o dispositivo está no estado de fabricação DeviceComplete ou retornar Device access is forbidden
, a comunicação service-UART está bloqueada e você precisa de um recurso de dispositivo para se comunicar com o dispositivo a partir do seu computador. Quando um dispositivo está no estado de fabricação DeviceComplete, as operações de fabricação são permitidas somente quando o dispositivo é desbloqueado por meio de um arquivo de funcionalidade.
Observação
Se você instalar um dispositivo em um site do cliente, deverá garantir que o dispositivo seja finalizado para o estado de fabricação DeviceComplete antes da instalação. Consulte Finalizar o dispositivo do Azure Sphere.
O estado de fabricação DeviceComplete normalmente não é apropriado para um kit de desenvolvimento. Para permitir o teste das operações de fabricação que estão sendo desenvolvidas por engenheiros de fabricação, um kit de desenvolvimento deve estar no estado de fabricação Em branco ou no estado de fabricação Module1Complete .
Como os dispositivos adquirem recursos
Os dispositivos podem adquirir recursos de uma das três maneiras:
Aberto por padrão. Um dispositivo que está no estado de fabricação Em branco ou no estado de fabricação Module1Complete tem alguns recursos abertos por padrão. Isso é feito para que os dispositivos ainda no estágio de fabricação não precisem ser conectados à nuvem ou reivindicados em locatários, como é exigido pelo processo de uso de arquivos de funcionalidade do dispositivo para desbloquear recursos. À medida que a fabricação avança, os fabricantes podem alterar o estado de fabricação do dispositivo para bloquear recursos que não são mais apropriados, conforme descrito em Tarefas de chão de fábrica.
Sideload no dispositivo. Um dispositivo pode ter um arquivo de funcionalidade carregado no dispositivo a partir do computador host. Use o comando azsphere device capability download para recuperar o arquivo de funcionalidade. Esse conjunto de recursos de sideload persiste até que um novo arquivo de recursos (que pode ser um arquivo em branco sem recursos) seja carregado de lado. Essa é a situação usual durante o desenvolvimento de aplicativos, por exemplo, quando o comando azsphere device enable-development é executado. O desenvolvimento de aplicativos é auxiliado por ter o dispositivo em um estado desbloqueado em que o desenvolvedor pode executar operações como depuração e excluir e implantar facilmente versões de sideload do aplicativo.
Passado para o dispositivo a cada operação. Um dispositivo pode ter recursos selecionados localmente aplicados por operação. O comando azsphere device capability select seleciona um arquivo de funcionalidade armazenado localmente no computador host. Depois que esse comando é executado, o recurso selecionado é passado do computador para o dispositivo com cada comando subsequente. Essa é a maneira recomendada de usar recursos para dispositivos que estão em campo porque os recursos são armazenados no computador e não no dispositivo. O risco de um engenheiro de campo deixar acidentalmente o dispositivo em um estado não seguro ao esquecer de remover o recurso é evitado.
Antes que um arquivo de funcionalidade possa ser carregado em um dispositivo ou passado para um dispositivo com uma operação, ele deve ser baixado do AS3 (Serviço de Segurança do Azure Sphere), conforme descrito em Fazer alterações em um dispositivo após a fabricação. Os arquivos de recursos baixados são específicos do dispositivo; Uma vez baixado, um arquivo de recurso pode ser usado repetidamente no dispositivo associado.
A funcionalidade enableRfTestMode
A funcionalidade enableRfTestMode está presente por padrão no dispositivo quando o estado de fabricação do dispositivo é Em branco. Esse recurso permite a programação de fusíveis eletrônicos e a configuração e teste da operação de RF. Não é possível que os proprietários de locatários baixem esse recurso para um computador host. Se você precisar desse recurso, entre em contato com seu representante da Microsoft.
Quando o estado de fabricação do dispositivo é Em branco, o comando azsphere device capability show-attached exibe o recurso enableRfTestMode .
A funcionalidade appDevelopment
A funcionalidade do dispositivo appDevelopment desbloqueia a comunicação UART de serviço e altera o tipo de assinatura em que o dispositivo confia. Ele é destinado a uso durante o desenvolvimento de aplicativos.
Por padrão, dispositivos Azure Sphere confiam em pacotes de imagens assinados por produção e baixados pelo Serviço de Segurança do Azure Sphere, mas não confiam em pacotes de imagens assinados por SDK. Portanto, você não pode criar um pacote de imagem com o SDK e fazer sideload dele para seu dispositivo do Azure Sphere para depuração, a menos que o dispositivo tenha a funcionalidade appDevelopment. A funcionalidade appDevelopment faz com que o dispositivo confie no pacote de imagem e permite que você inicie, pare, depure ou remova um aplicativo do dispositivo.
Em resumo, o recurso appDevelopment desbloqueia a comunicação serviço-UART para permitir as seguintes operações:
Sideload de um pacote de imagem criado com o Visual Studio, o Visual Studio Code, a CLI ou o comando azsphere image-package.
Inicialização, interrupção, depuração ou remoção de um pacote de imagem do dispositivo Azure Sphere, independentemente de como o pacote de imagem está conectado.
Para adicionar a funcionalidade appDevelopment, use o comando azsphere device enable-development. Esse comando baixa o recurso appDevelopment para o dispositivo anexado, carrega o recurso no dispositivo e move o dispositivo para o grupo de dispositivos de desenvolvimento padrão. Para especificar um grupo de dispositivos diferente, inclua o --device-group
parâmetro.
Quando você usa azsphere device enable-development, o dispositivo permanece desbloqueado até que você o bloqueie explicitamente. Para bloquear o dispositivo novamente, use o comando azsphere device enable-cloud-test. Esse comando remove a funcionalidade e altera o grupo de dispositivos, dependendo dos parâmetros de linha de comando fornecidos.
Os comandos azsphere device enable-development e azsphere device enable-cloud-test executam uma sequência de ações que preparam um dispositivo para desenvolvimento e depuração ou para implantações de nuvem, respectivamente. Em vez de usar esses comandos, você pode usar o comando azsphere device capability para baixar ou atualizar uma funcionalidade do dispositivo ou para descobrir quais recursos um dispositivo tem atualmente.
A funcionalidade fieldServicing
A funcionalidade fieldServicing está presente em um dispositivo por padrão quando o dispositivo tem um estado de fabricação de Blank ou Module1Complete. Quando um dispositivo está no estado de fabricação DeviceComplete , a funcionalidade fieldServicing pode ser carregada lateralmente, mas normalmente é passada para o dispositivo com cada operação durante uma sessão de manutenção. Para obter detalhes sobre como iniciar uma sessão de manutenção, consulte Fazer alterações em um dispositivo após a fabricação.
Independentemente do estado de fabricação do dispositivo, o recurso fieldServicing desbloqueia a comunicação service-UART para permitir as seguintes operações:
- Sideload de um pacote de imagem assinado em produção.
- Iniciar, parar e excluir um pacote de imagens assinado pela produção marcado como temporário.
- Executar tarefas de manutenção de rotina, como configurar Wi-Fi.
Embora a funcionalidade fieldServicing esteja presente por padrão no dispositivo quando o estado de fabricação do dispositivo é Blank ou Module1Complete, o comando azsphere device capability show-attached não exibe a funcionalidade fieldServicing .
Dependência de armazenamento de chaves confiável atualizado
Quando um arquivo de funcionalidade é criado pelo AS3, ele é assinado usando a chave de assinatura de imagem atual. Cada dispositivo tem um armazenamento de chaves confiável como parte do sistema operacional em que essas chaves são mantidas. No entanto, se o dispositivo não estiver conectado à Internet, é possível que um recurso não seja confiável para o dispositivo que está direcionando se o armazenamento de chaves confiável desse dispositivo estiver desatualizado.
Para remediar isso, um método é permitir que o dispositivo se conecte à Internet para atualizar o repositório de chaves confiável. Conecte seu dispositivo à Internet e pressione Redefinir para acionar uma atualização do sistema operacional.
Se isso não for possível, você poderá fazer o sideload de um armazenamento de chaves confiável atualizado. Para fazer isso, aceite os termos da licença, baixe as imagens de recuperação do sistema operacional mais recentes e, desse arquivo zip, extraia apenas o arquivo "trusted-keystore.bin". Em seguida, você pode usar o comando azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> para fazer o sideload do repositório de chaves confiável e a funcionalidade agora deve ser confiável para o dispositivo.
Um terceiro método é recuperar o software do sistema para atualizar o sistema operacional do Azure Sphere para a versão mais recente lançada, incluindo o repositório de chaves confiável mais recente.