Partage via


Apporter des modifications à un appareil après la fabrication

L’une des dernières étapes de la fabrication d’un appareil Azure Sphere consiste à placer l’appareil dans l’état DeviceComplete, ce qui sécurise l’appareil contre toute modification. Toutefois, il existe des situations dans lesquelles les appareils qui ont été placés dans l’état DeviceComplete doivent être modifiés.

Le mécanisme sécurisé utilisé pour de tels scénarios consiste à utiliser une fonctionnalité d’appareil. Il existe deux types de fonctionnalités d’appareil, fieldServicing et appDevelopment, et vous devez utiliser celle qui a l’ensemble minimal de fonctionnalités requises. Autrement dit, si la fonctionnalité fieldServicing répond à vos besoins, vous devez l’utiliser, mais si une plus grande flexibilité est requise, utilisez la fonctionnalité appDevelopment à la place. Bien que les fonctionnalités aient été conçues pour les deux scénarios après lesquels elles sont nommées, vous devez case activée les fonctionnalités réelles activées au lieu de vous appuyer sur ce nom. Seul le propriétaire du locataire de l’appareil peut acquérir des fonctionnalités pour cet appareil, et chaque fonctionnalité est limitée à un seul appareil.

Lorsque vous apportez des modifications à un appareil DeviceComplete, vous ne devez pas charger une version test de ces fonctionnalités. Cela permet d’éliminer le risque de quitter accidentellement la fonctionnalité présente, et donc de laisser l’appareil dans un état non sécurisé. Au lieu de cela, vous devez utiliser une session de maintenance.

L’utilisation des fonctionnalités pour les appareils de service comporte trois étapes : le téléchargement des fonctionnalités, l’application d’une mise à jour de magasin de clés approuvée (si nécessaire), puis la création d’une session de maintenance.

Télécharger une fonctionnalité

Vous pouvez télécharger une fonctionnalité à l’aide de la commande azsphere device capability download . Vous devez avoir accès au locataire propriétaire de l’appareil et à l’accès Internet pour télécharger une fonctionnalité. Par défaut, l’appareil actuellement attaché est utilisé. Lorsque plusieurs appareils sont attachés, spécifiez l’adresse IP, l’ID d’appareil ou l’ID de connexion locale d’un appareil attaché dans le --device paramètre . Lors du téléchargement d’une fonctionnalité pour un appareil non attaché, fournissez un ID d’appareil dans le --device paramètre .

Pour télécharger la fonctionnalité pour un appareil attaché :

  1. Connectez-vous au locataire Azure Sphere dans lequel l’appareil est revendiqué.

  2. Utilisez la commande suivante avec les --type paramètres et --destination pour télécharger un fichier de capacité pour l’appareil attaché. Par exemple :

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

    Remplacez capability-file> par < l’emplacement sur votre ordinateur dans lequel stocker le fichier de capacité.

Pour télécharger la fonctionnalité pour un appareil non attaché :

  1. Connectez-vous au locataire Azure Sphere dans lequel l’appareil est revendiqué.

  2. Utilisez la commande suivante avec les --deviceparamètres , --typeet --destination pour télécharger un fichier de capacité pour l’appareil non attaché. Par exemple :

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

    Indiquez l’ID de l’appareil pour lequel vous avez besoin de la fonctionnalité et remplacez <capability-file> par l’emplacement sur votre ordinateur dans lequel stocker le fichier de capacité.

Mettre à jour le magasin de clés approuvé si nécessaire

Si un appareil n’est pas connecté à Internet, il est possible que l’appareil n’approuve pas la fonctionnalité. Cela se produit quand AS3 a mis à jour sa clé de signature d’image avec laquelle il signe toutes les images, y compris les images de capacité, mais que l’appareil n’a pas cette clé mise à jour dans son magasin de clés approuvé. Tout appareil connecté met automatiquement à jour son magasin de clés approuvé, mais si l’appareil n’est pas connecté, cela ne s’est peut-être pas produit.

Pour y remédier, consultez des instructions détaillées ici.

Créer une session de maintenance

Pour traiter un appareil, vous créez une session de maintenance en sélectionnant une fonctionnalité. Chaque fois que la commande azsphere est émise pendant la session, la fonctionnalité sélectionnée est passée à l’appareil, ce qui permet à l’appareil d’exécuter la commande malgré son état verrouillé. Le fichier de capacité n’étant pas stocké de manière permanente sur l’appareil, celui-ci reste verrouillé et sécurisé. Si un autre ordinateur est attaché ultérieurement à l’appareil sans accès au fichier de capacité, il ne pourra pas modifier l’appareil.

Pour créer une session de maintenance :

  1. Connectez l’appareil au PC à l’aide de l’interface de programmation et de débogage.

  2. Utilisez la commande azsphere device capability select avec le paramètre --capability-file<capability-file> . Remplacez <capability-file> par le chemin d’accès au fichier que vous avez spécifié lors du téléchargement de la fonctionnalité.

    Une fois que vous avez sélectionné le fichier, votre session démarre. Chaque fois que la commande azsphere est exécutée pendant la session, les informations de capacité sont transmises à l’appareil, déverrouillant ainsi la communication. La fonctionnalité est stockée sur votre ordinateur et est associée à vos données de connexion Windows ou Linux, et non à votre connexion Azure Sphere. La session de maintenance s’applique à toutes les commandes azsphere qui sont dirigées vers l’appareil à partir de votre ordinateur, et pas seulement à celles exécutées à partir de l’invite de commandes actuelle.

Pour mettre fin à la session de maintenance, utilisez la commande azsphere device capability select --none

Lorsque cette commande réussit, les informations de fonctionnalité ne sont plus transmises à l’appareil. Si vous ne terminez pas la session, la prochaine fois que vous émettez une commande azsphere à partir de cet ordinateur, la fonctionnalité actuelle de l’appareil sera transmise avec la commande et, par conséquent, la commande échouera si vous travaillez avec un autre appareil. Si vous supprimez le fichier de capacité sans mettre fin à la session de maintenance, la commande suivante vous avertit que le fichier de capacité sélectionné est manquant et efface la sélection pour les commandes supplémentaires.