製造後にデバイスに変更を加える
Azure Sphere デバイスの製造における の手順の 1 つ デバイスを DeviceComplete 状態にして、デバイスを変更から保護することです。 ただし、DeviceComplete 状態になっているデバイスを変更する必要がある状況があります。
このようなシナリオで使用されるセキュリティで保護されたメカニズムは、 device 機能を使用することです。 デバイス機能には、 fieldServicing と appDevelopment の 2 種類があり、必要最小限の機能セットを使用する必要があります。 つまり、 fieldServicing 機能がニーズを満たしている場合は、それを使用する必要がありますが、より高い柔軟性が必要な場合は、代わりに appDevelopment 機能を使用します。 この機能は、名前が付けられた 2 つのシナリオ用に設計されていますが、その名前に依存するのではなく、有効になっている実際の機能を確認する必要があります。 デバイスのカタログ所有者のみがそのデバイスの機能を取得でき、各機能は 1 つのデバイスに制限されます。
DeviceComplete デバイスに変更を加える場合は、それらの機能をサイドロードしないでください。 これは、誤って機能が存在し、それによってデバイスが安全でない状態のままになるリスクを排除するためです。 代わりに、サービス セッションを使用する必要があります。
機能を使用してデバイスにサービスを提供するには、機能のダウンロード、信頼されたキーストア更新の適用 (必要な場合)、サービス セッションの作成の 3 つの段階があります。
機能をダウンロードする
az sphere デバイス機能のダウンロード コマンドを使用して、機能をダウンロードできます。 機能をダウンロードするには、デバイスを所有するカタログへのアクセス権とインターネット アクセス権が必要です。 既定では、現在接続されているデバイスが使用されます。 複数のデバイスが接続されている場合は、 --device
パラメーターに、接続されているデバイスの IP アドレス、デバイス ID、またはローカル接続 ID のいずれかを指定します。 接続されていないデバイスの機能をダウンロードする場合は、 --device
パラメーターにデバイス ID を指定します。
接続されているデバイス用の機能をダウンロードするには、次のようにします。
次のコマンドを
--type
パラメーターと--output-file
パラメーターと共に使用して、接続されているデバイスの機能ファイルをダウンロードします。 次に例を示します。az sphere device capability download --resource-group MyResourceGroup --catalog MyCatalog --device <DeviceIdValue> --type ApplicationDevelopment --output-file myCapabilities.cap
<capability-file>機能ファイルを格納するコンピューター上の場所に置き換えます。
接続されていないデバイスの機能をダウンロードするには、次のようにします。
--device
、--type
、および----output-file
パラメーターと共に次のコマンドを使用して、接続されていないデバイスの機能ファイルをダウンロードします。 次に例を示します。az sphere device capability download --resource-group <resource-group> --catalog <catalog> --device <deviceID> --type fieldServicing ----output-file <capability-file>
機能が必要なデバイスのデバイス ID を指定し、 <capability-file> 機能ファイルを格納するコンピューター上の場所に置き換えます。
必要に応じて、信頼されたキーストアを更新します
デバイスがインターネットに接続されていない場合は、デバイスが機能を信頼しない可能性があります。 これは、AS3 がイメージ署名キーを更新し、機能イメージを含むすべてのイメージに署名したが、デバイスが信頼されたキーストアにこの更新されたキーを持っていない場合に発生します。 接続されているデバイスは、その信頼されたキーストアを自動的に更新しますが、デバイスが接続されていない場合は、それが発生していない可能性があります。
これを解決するには、 詳細な手順を参照してください。
サービス セッションを作成する
デバイスにサービスを提供するには、機能を選択してサービス セッションを作成します。 セッション中に 'az sphere' コマンドが発行されるたびに、選択した機能がデバイスに渡され、ロックされた状態でもデバイスでコマンドを実行できるようになります。 機能ファイルはデバイスに永続的に保存されないため、デバイスはロックされ、セキュリティで保護されたままになります。 後で別のコンピューターが機能ファイルにアクセスせずにデバイスに接続されている場合、デバイスを変更することはできません。
サービス セッションを作成するには、次のようにします。
Programming and Debugging Interface を使用して、デバイスを PC に接続します。
az sphere device capability apply コマンドを --capability-file <capability-file> パラメーターと共に使用します。 <capability-file>機能をダウンロードしたときに指定したファイル パスに置き換えます。
ファイルを選択した後、セッションが開始されます。 セッション中に
az sphere
コマンドが実行されるたびに、機能情報がデバイスに渡されるため、通信のロックが解除されます。 機能はご利用のコンピューター上に格納され、Azure Sphere ログインではなく、Windows または Linux のログイン データに関連付けられます。 サービス セッションは、現在のコマンド プロンプトから実行されるコマンドだけでなく、コンピューターからデバイスに送信されるすべてのaz sphere
コマンドに適用されます。
サービス セッションを終了するには、 az sphere デバイス機能の適用 --none コマンドを使用します。
このコマンドが成功すると、機能情報はデバイスに渡されなくなります。 セッションを終了しない場合、次にこのコンピューターから 'az sphere' コマンドを発行すると、現在のデバイス機能がコマンドと共に渡されるため、別のデバイスで作業している場合、コマンドは失敗します。 サービス セッションを終了せずに機能ファイルを削除した場合、次のコマンドは、選択した機能ファイルが見つからないことを警告し、それ以降のコマンドの選択をクリアします。