Partilhar via


Efetuar alterações a um dispositivo após o fabrico

Um dos passos finais no fabrico de um dispositivo do Azure Sphere é colocar o dispositivo no estado DeviceComplete, que protege o dispositivo contra modificações. No entanto, existem situações em que os dispositivos que foram colocados no estado DeviceComplete têm de ser modificados.

O mecanismo seguro utilizado para esses cenários é utilizar uma capacidade de dispositivo. Existem dois tipos de capacidade de dispositivo, fieldServicing e appDevelopment, e deve utilizar aquele que tem o conjunto mínimo de funcionalidades necessário. Ou seja, se a capacidade fieldServicing corresponder às suas necessidades, deve utilizá-la, mas se for necessária maior flexibilidade, utilize a capacidade appDevelopment . Embora as capacidades tenham sido concebidas para os dois cenários em que foram nomeadas, deve verificar as funcionalidades reais ativadas em vez de depender desse nome. Apenas o proprietário do catálogo do dispositivo pode adquirir capacidades para esse dispositivo e cada capacidade está restrita a um único dispositivo.

Ao fazer alterações a um dispositivo DeviceComplete, não deve fazer sideload dessas capacidades. Isto é para eliminar o risco de deixar acidentalmente a capacidade presente e, assim, deixar o dispositivo num estado inseguro. Em vez disso, deve utilizar uma sessão de manutenção.

Existem três fases para utilizar capacidades para dispositivos de serviço: transferir as capacidades, aplicar uma atualização de keystore fidedigna (se necessário) e, em seguida, criar uma sessão de manutenção.

Transferir uma capacidade

Pode transferir uma capacidade com o comando az sphere device capability download . Tem de ter acesso ao catálogo que detém o dispositivo e o acesso à Internet para transferir uma capacidade. Por predefinição, é utilizado o dispositivo atualmente ligado. Quando são anexados vários dispositivos, especifique o endereço IP, o ID do dispositivo ou o ID de Ligação Local de um dispositivo anexado no --device parâmetro . Ao transferir uma capacidade para um dispositivo desanexado, forneça um ID de dispositivo no --device parâmetro .

Para transferir a capacidade de um dispositivo anexado:

  1. Utilize o seguinte comando com os --type parâmetros e --output-file para transferir um ficheiro 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 <capability-file> pela localização no computador onde pretende armazenar o ficheiro de capacidade.

Para transferir a capacidade de um dispositivo desanexado:

  1. Utilize o seguinte comando com os --deviceparâmetros , --typee ----output-file para transferir um ficheiro 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>
    

    Indique o ID de dispositivo do dispositivo para o qual precisa da capacidade e substitua <capability-file> pela localização no computador onde pretende armazenar o ficheiro de capacidade.

Atualize o keystore fidedigno, se necessário

Se um dispositivo não estiver ligado à Internet, existe a possibilidade de o dispositivo não confiar na capacidade. Isto ocorre quando o AS3 atualizou a chave de assinatura de imagem com a qual assina todas as imagens, incluindo imagens de capacidade, mas o dispositivo não tem esta chave atualizada no arquivo de chaves fidedigno. Qualquer dispositivo ligado atualiza automaticamente o arquivo de chaves fidedigno, mas se o dispositivo não estiver ligado, isso poderá não ter ocorrido.

Para resolver este problema, veja as instruções detalhadas aqui.

Criar uma sessão de manutenção

Para servir um dispositivo, crie uma sessão de manutenção ao selecionar uma capacidade. Sempre que o comando "az sphere" é emitido durante a sessão, a capacidade selecionada é transmitida para o dispositivo, permitindo que o dispositivo execute o comando apesar do estado bloqueado. O ficheiro de capacidade não é armazenado persistentemente no dispositivo, pelo que o dispositivo permanece bloqueado e protegido. Se outro computador for posteriormente ligado ao dispositivo sem acesso ao ficheiro de capacidade, não será possível modificar o dispositivo.

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

  1. Ligue o dispositivo ao PC com a Interface de Programação e Depuração.

  2. Utilize o comando az sphere device capability apply com o parâmetro --capability-file<capability-file> . Substitua <capability-file> pelo caminho de ficheiro que especificou quando transferiu a capacidade.

    Depois de selecionar o ficheiro, a sua sessão é iniciada. Sempre que o az sphere comando é executado durante a sessão, as informações de capacidade são transmitidas ao dispositivo, desbloqueando assim a comunicação. A capacidade é 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 computador e não apenas aos que são executados a partir da linha de comandos atual.

Para terminar a sessão de manutenção, utilize a az sphere device capability apply --none command

Quando este comando for bem-sucedido, as informações de capacidade deixarão de ser transmitidas para o dispositivo. Se não terminar a sessão, da próxima vez que emitir um comando "az sphere" a partir deste computador, a capacidade atual do dispositivo será transmitida juntamente com o comando e, portanto, o comando falhará se estiver a trabalhar com um dispositivo diferente. Se eliminar o ficheiro de capacidade sem terminar a sessão de manutenção, o comando seguinte irá avisá-lo de que o ficheiro de capacidade selecionado está em falta e limpará a seleção de quaisquer comandos adicionais.