Partilhar via


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

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 do catálogo 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 az sphere device capability download . Você deve ter acesso ao catálogo que possui o 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. Use o comando a seguir com os --type parâmetros e --output-file para baixar um arquivo de capacidade para o dispositivo anexado. Por exemplo:

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

    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. Use o comando a seguir com os --deviceparâmetros , --typee ----output-file para baixar um arquivo de capacidade para o dispositivo desanexado. Por exemplo:

    az sphere device capability download --resource-group <resource-group> --catalog <catalog> --device <deviceID> --type fieldServicing ----output-file <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 'az sphere'' é 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 az sphere device capability apply 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 az sphere comando é 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 az sphere comandos 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 az sphere device capability apply --none

Quando esse comando é bem-sucedido, as informações de capacidade não são mais passadas para o dispositivo. Se você não terminar a sessão, na próxima vez que emitir um comando 'az sphere'' 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.