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

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

O mecanismo seguro usado para esses cenários é usar uma funcionalidade do dispositivo. Há dois tipos de funcionalidade 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ê deverá usá-lo, mas se for necessária maior flexibilidade, use o recurso appDevelopment. Embora os recursos tenham sido projetados para os dois cenários que dão origem a eles, 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 elimina o risco de deixar acidentalmente o recurso 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 dispositivos de serviço: baixar os recursos, aplicar uma atualização de repositório de chaves confiável (se necessário) e criar uma sessão de manutenção.

Baixar um recurso

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 no momento é usado. Quando vários dispositivos estiverem conectados, especifique o endereço IP, a ID do dispositivo ou a ID da conexão local de um dispositivo conectado no --device parâmetro. Ao baixar um recurso para um dispositivo desconectado, forneça uma ID de dispositivo no --device parâmetro.

Para baixar a funcionalidade de um dispositivo anexado:

  1. Use o comando a seguir com os --type parâmetros e --output-file para baixar um arquivo de funcionalidade 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 <capability-file> pelo local em seu computador no qual armazenar o arquivo de funcionalidade.

Para baixar a funcionalidade para um dispositivo não anexado:

  1. Use o comando a seguir com os --deviceparâmetros , --typee para ----output-file fazer download de um arquivo de funcionalidade para o dispositivo desconectado. Por exemplo:

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

    Forneça a ID do dispositivo para o qual você precisa do recurso e substitua <capability-file> pelo local em seu computador no qual armazenar o arquivo de recurso.

Atualize o armazenamento de chaves confiável, se necessário

Se um dispositivo não estiver conectado à Internet, existe a possibilidade de que o dispositivo não confie no recurso. Isso ocorre quando o AS3 atualiza sua chave de assinatura de imagem com a qual assina todas as imagens, incluindo imagens de funcionalidade, mas o dispositivo não tem essa chave atualizada em seu repositório de chaves 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, o recurso selecionado é passado para o dispositivo, permitindo que o dispositivo execute o comando apesar de seu estado bloqueado. O arquivo de funcionalidade não é armazenado persistentemente no dispositivo, portanto, o dispositivo permanece bloqueado e protegido. Se outro computador for anexado posteriormente ao dispositivo sem acesso ao arquivo de funcionalidade, 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 <capability-file> pelo caminho do arquivo especificado quando você baixou o recurso.

    Depois de selecionar o arquivo, sua sessão será 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 em seu computador e está associada aos seus dados de logon do Windows ou do Linux, não com o logon do Azure Sphere. A sessão de manutenção se aplica a todos os az sphere comandos direcionados ao dispositivo do computador, não apenas àqueles executados no prompt de comando atual.

Para encerrar a sessão de manutenção, use o comando az sphere device capability apply --none

Quando esse comando for bem-sucedido, as informações de funcionalidade não serão mais passadas para o dispositivo. Se você não encerrar a sessão, na próxima vez que emitir um comando 'az sphere'' deste computador, a funcionalidade 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 funcionalidade sem encerrar a sessão de manutenção, o próximo comando avisará que o arquivo de funcionalidade selecionado está ausente e limpará a seleção para quaisquer comandos adicionais.