Partilhar via


Fazer alterações em um dispositivo após a fabricação

Importante

Esta é a documentação do Azure Sphere (Legado). O Azure Sphere (Legado) 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).

Uma das etapas finais na fabricação de um dispositivo Azure Sphere é colocar o dispositivo no estado DeviceComplete, que protege o dispositivo contra modificações. Há, no entanto, situações em que os dispositivos que foram colocados no estado DeviceComplete precisam ser modificados.

O mecanismo seguro usado para tais cenários é usar um recurso de dispositivo. Existem dois tipos de capacidade de dispositivo, fieldServicing e appDevelopment, e você deve usar aquele que tem o conjunto mínimo de recursos necessários. Ou seja, se o recurso fieldServicing atender às suas necessidades, você deve usá-lo, mas se for necessária maior flexibilidade, use o recurso appDevelopment. Embora os recursos tenham sido projetados para os dois cenários após os quais eles são nomeados, você deve verificar as funcionalidades reais habilitadas em vez de confiar nesse nome. Somente o proprietário locatário do dispositivo pode adquirir recursos para esse dispositivo, e cada recurso é restrito a um único dispositivo.

Ao fazer alterações em um dispositivo DeviceComplete, você não deve fazer sideload desses recursos. Isso é para eliminar o risco de acidentalmente deixar a capacidade presente e, assim, deixar o dispositivo em um estado inseguro. Em vez disso, você deve usar uma sessão de manutenção.

Há três estágios para usar recursos para atender dispositivos: baixar os recursos, aplicar uma atualização de armazenamento de chaves confiável (se necessário) e, em seguida, criar uma sessão de manutenção.

Transferir uma funcionalidade

Você pode baixar um recurso usando o comando azsphere device capability download. Você deve ter acesso ao locatário proprietário do dispositivo e acesso à Internet para baixar um recurso. Por padrão, o dispositivo conectado atualmente é usado. Quando vários dispositivos forem conectados, especifique o endereço IP, ID do dispositivo ou ID de conexão local de um dispositivo conectado no --device parâmetro. Ao baixar um recurso para um dispositivo não conectado, forneça um ID de --device dispositivo no parâmetro.

Para transferir a capacidade de um dispositivo ligado:

  1. Faça logon no locatário do Azure Sphere no qual o dispositivo é reivindicado.

  2. Use o comando a seguir com os --type parâmetros e --destination para baixar um arquivo de capacidade para o dispositivo anexado. Por exemplo:

    azsphere device capability download --type fieldServicing --destination <capability-file>
    

    Substitua <o arquivo> de capacidade pelo local no computador no qual o arquivo de capacidade será armazenado.

Para transferir a capacidade de um dispositivo não ligado:

  1. Faça logon no locatário do Azure Sphere no qual o dispositivo é reivindicado.

  2. Use o comando a seguir com os --deviceparâmetros , --typee --destination para baixar um arquivo de capacidade para o dispositivo desanexado. Por exemplo:

    azsphere device capability download --device <deviceID> --type fieldServicing --destination <capability-file>
    

    Forneça o ID do dispositivo para o qual você precisa do recurso e substitua <o arquivo> de capacidade pelo local no computador no qual o arquivo de capacidade será armazenado.

Atualize o keystore confiável, se necessário

Se um dispositivo não estiver conectado à internet, então há uma possibilidade de que o dispositivo não confiará na capacidade. Isso ocorre quando o AS3 atualizou sua chave de assinatura de imagem com a qual assina todas as imagens, incluindo imagens de capacidade, mas o dispositivo não tem essa chave atualizada em seu keystore confiável. Qualquer dispositivo conectado atualiza automaticamente seu armazenamento de chaves confiável, mas se o dispositivo não estiver conectado, isso pode não ter ocorrido.

Para remediar isso, consulte as instruções detalhadas aqui.

Criar uma sessão de manutenção

Para fazer a manutenção de um dispositivo, crie uma sessão de manutenção selecionando um recurso. Cada vez que o comando azsphere é emitido durante a sessão, a capacidade selecionada é passada para o dispositivo, permitindo que o dispositivo execute o comando apesar de seu estado bloqueado. O arquivo de capacidade não é armazenado persistentemente no dispositivo, portanto, o dispositivo permanece bloqueado e seguro. Se outro computador for posteriormente conectado ao dispositivo sem acesso ao arquivo de capacidade, ele não poderá modificar o dispositivo.

Para criar uma sessão de manutenção:

  1. Conecte o dispositivo ao PC usando a interface de programação e depuração.

  2. Use o comando azsphere device capability select com o parâmetro --capability-file< capability-file>. Substitua <o arquivo> de capacidade pelo caminho de arquivo especificado quando você baixou o recurso.

    Depois de selecionar o arquivo, a sessão é iniciada. Cada vez que o comando azsphere é executado durante a sessão, as informações de capacidade são passadas para o dispositivo, desbloqueando assim a comunicação. A funcionalidade é armazenada no seu computador e está associada aos seus dados de início de sessão do Windows ou Linux, não ao início de sessão do Azure Sphere. A sessão de manutenção aplica-se a todos os comandos azsphere que são direcionados para o dispositivo a partir do seu computador, não apenas aqueles executados a partir do prompt de comando atual.

Para encerrar a sessão de manutenção, use o comando azsphere device capability select --none

Quando esse comando é bem-sucedido, as informações de capacidade não são mais passadas para o dispositivo. Se você não encerrar a sessão, na próxima vez que emitir um comando azsphere a partir deste computador, a capacidade atual do dispositivo será passada junto com o comando e, portanto, o comando falhará se você estiver trabalhando com um dispositivo diferente. Se você excluir o arquivo de capacidade sem encerrar a sessão de manutenção, o próximo comando avisará que o arquivo de capacidade selecionado está ausente e desmarcará a seleção para quaisquer outros comandos.