デバイス機能と通信
重要
これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。
デバイスの機能service-UART通信用のデバイス固有の OS ポリシーを決定します。 ホスト コンピューターと接続されているデバイス間のすべての通信は、サービス UART を介して行われます。 ホスト コンピューターは、接続されているデバイスと通信して、デバイスに対する操作を実行します。 製造元、ソフトウェア開発者、およびフィールド サービス技術者は、デバイスが悪意のあるユーザーから保護されていることを確認しながら、必要な操作に対してサービス UART 通信のロックを解除する機能を使用します。
デバイスの製造元と OEM は、サービス UART 通信をロックダウンして、デバイスへの物理的なアクセス権を持つユーザーによる不正な使用を防ぐことができます。 このような通信のロックダウンは、 デバイスの最終処理の一部です。 最終処理後、ユーザーはデバイスの ID を取得できますが、それ以上のことはできません。他のすべての操作にはデバイス機能が必要です。 最終処理は通常、製造元が顧客サイトにデバイスを出荷する前に工場の現場で実行されます。
デバイス機能ファイルには、1 つのデバイスに対してのみ 0 個以上の機能が含まれています。 機能ファイルは、意図されたデバイスではないデバイスに適用されている場合は機能しません。 デバイスには次の機能を備えることができます。各機能については、このトピックの後半で説明します。
Note
デバイス機能は、アプリケーション機能とは関係ありません。 アプリケーション機能では、実行時にアプリケーションで必要なリソースを指定します。 アプリケーション機能の詳細については、「アプリケーション マニフェスト」を参照してください。
デバイスの機能または製造状態を確認する方法
接続されているデバイスに格納されている機能構成を確認するには、 azsphere device capability show-attached コマンドを使用します。 このコマンドは、機能ファイルを使用して構成された機能と、ボードに既定で存在する機能 (すべてではない) を表示します。 デバイス機能を必要とする azsphere コマンドの完全な一覧については、CLI の概要 表を参照してください。
デバイスの機能は、デバイスの製造状態の影響を受ける可能性があります。 デバイスの製造状態を確認するには、 azsphere device manufacturing-state show コマンドを使用します。 デバイスが DeviceComplete 製造状態にあるか Device access is forbidden
を返す場合、service-UART 通信はロックされており、コンピューターからデバイスと通信するにはデバイス機能が必要です。 デバイスが DeviceComplete 製造状態にある場合、製造操作は、デバイスが機能ファイルを介してロック解除された場合にのみ許可されます。
Note
顧客サイトにデバイスをインストールする場合は、インストールする前に、デバイスが DeviceComplete 製造状態になるようにする必要があります。 「 Azure Sphere デバイスの順序を確認するを参照してください。
DeviceCompleteの製造状態は、通常、開発キットには適していません。 製造エンジニアが開発する製造操作のテストを有効にするには、開発キットが Blank 製造状態であるか、 Module1Complete 製造状態である必要があります。
デバイスが機能を取得する方法
デバイスは、次の 3 つの方法のいずれかで機能を取得できます。
既定で開きます。 Blank製造状態または Module1Complete 製造状態のデバイスには、既定でいくつかの機能が開かれています。 これは、デバイス機能ファイルを使用して機能をロック解除するプロセスで必要とされるように、製造段階のデバイスをクラウドに接続したり、テナントに要求したりする必要がないようにするために行われます。 製造が進むにつれて、製造元はデバイスの製造状態を変更して、 Factory-floor タスクで説明されているように、不要になった機能をロックダウンできます。
デバイスにサイドロードされます。 デバイスには、ホスト コンピューターからデバイスにサイドロードされた機能ファイルがある場合があります。 azsphere device capability download コマンドを使用して、機能ファイルを取得します。 このサイドロードされた一連の機能は、新しい機能ファイル (機能のない空のファイルである可能性があります) がサイドロードされるまで保持されます。 これは、 azsphere device enable-development コマンドが実行された場合など、アプリケーションの開発中の通常の状況です。 アプリケーション開発は、開発者がデバッグなどの操作を実行し、サイドロードされたバージョンのアプリケーションを簡単に削除してデプロイできる、ロック解除された状態のデバイスを持つことによって支援されます。
各操作でデバイスに渡されます。 デバイスは、操作ごとにローカルで選択された機能を適用できます。 azsphere device capability select コマンドは、ホスト コンピューターにローカルに格納されている機能ファイルを選択します。 このコマンドを実行すると、選択した機能は、後続の各コマンドを使用してコンピューターからデバイスに渡されます。 この機能はデバイスではなくコンピューターに格納されるため、この方法でフィールド内にあるデバイスに対して機能を使用することをお勧めします。 フィールド エンジニアが誤って機能の削除を忘れてデバイスをセキュリティで保護されていない状態にしておくリスクは回避されます。
機能ファイルをデバイスにサイドロードしたり、操作を使用してデバイスに渡したりする前に、「 Make の製造後にデバイスに変更を加える」の説明に従って、Azure Sphere Security Service (AS3) からダウンロードする必要があります。 ダウンロードされた機能ファイルはデバイス固有です。一度ダウンロードすると、関連するデバイスで機能ファイルを繰り返し使用できます。
enableRfTestMode 機能
enableRfTestMode機能は、デバイスの製造状態が Blank の場合、デバイスに既定で存在します。 この機能により、電子ヒューズのプログラミングとRF動作の構成とテストが可能になります。 テナント所有者がこの機能をホスト コンピューターにダウンロードすることはできません。 この機能が必要な場合は、Microsoft の担当者にお問い合わせください。
デバイスの製造状態が Blank の場合、 azsphere デバイス機能 show-attached コマンドは、 enableRfTestMode 機能を表示します。
appDevelopment 機能
appDevelopmentデバイス機能は、service-UART 通信のロックを解除し、デバイスが信頼する署名の種類を変更します。 これは、アプリケーションの開発中に使用することを目的としています。
既定では、Azure Sphere デバイスで、Azure Sphere Security Service によってダウンロードされた運用環境で署名済みイメージ パッケージが信頼されますが、SDK 署名済みイメージ パッケージは信頼されません。 そのため、デバイスに appDevelopment 機能がない場合は、SDK を使用してイメージ パッケージを作成し、それをデバッグのために Azure Sphere デバイスにサイドロードすることはできません。 appDevelopment 機能があれば、デバイスでイメージ パッケージが信頼され、デバイスからアプリケーションの開始、停止、デバッグ、または削除を行うことができます。
要約すると、 appDevelopment 機能によって service-UART 通信のロックが解除され、次の操作が許可されます。
Visual Studio、Visual Studio Code、CLI、または azsphere image-package コマンドを使用してビルドされたイメージ パッケージをサイドロードする。
イメージ パッケージの署名方法を問わない、Azure Sphere デバイスからのイメージ パッケージの開始、停止、デバッグ、または削除。
appDevelopment機能を追加するには、azsphere device enable-development コマンドを使用します。 このコマンドは、接続されたデバイスの appDevelopment 機能をダウンロードし、デバイスに機能をサイドロードして、デバイスを既定の Development デバイス グループに移動します。 別のデバイス グループを指定するには、 --device-group
パラメーターを含めます。
azsphere device enable-development を使用すると、デバイスは、明示的にロックされるまでロック解除されたままになります。 デバイスを再ロックするには、azsphere device enable-cloud-test コマンドを使用します。 このコマンドにより、指定されたコマンドライン パラメーターに応じて、機能が削除され、デバイス グループが変更されます。
azsphere デバイスの enable-development と azsphere device enable-cloud-test コマンドは、開発とデバッグ、またはクラウドデプロイ用にデバイスを準備する一連のアクションをそれぞれ実行します。 これらのコマンドを使用する代わりに、 azsphere device capability コマンドを使用して、デバイス機能をダウンロードまたは更新したり、デバイスが現在持っている機能を確認したりできます。
fieldServicing 機能
fieldServicing機能は、デバイスの製造状態が Blank または Module1Complete の場合、既定でデバイスに存在します。 デバイスが DeviceComplete 製造状態にある場合、 fieldServicing 機能はサイドロードできますが、通常はサービス セッション中に各操作でデバイスに渡されます。 サービス セッションを開始する方法の詳細については、「 製造後にデバイスに変更を加える」を参照してください。
デバイスの製造状態に関係なく、 fieldServicing 機能によって service-UART 通信のロックが解除され、次の操作が可能になります。
- 実稼働署名付きイメージ パッケージのサイドローディング。
- 一時としてマークされた実稼働署名付きイメージ パッケージの開始、停止、および削除。
- Wi-Fi の構成などの日常的なメンテナンス タスクの実行。
デバイスの製造状態が Blank または Module1Complete の場合、fieldServicing 機能は既定でデバイスに存在しますが、azsphere device capability show-attached コマンドには fieldServicing 機能は表示されません。
最新の信頼されたキーストアへの依存関係
AS3 によって機能ファイルが作成されると、現在のイメージ署名キーを使用して署名されます。 各デバイスには、これらのキーが保持される OS の一部として、信頼されたキーストアがあります。 ただし、デバイスがインターネットに接続されていない場合は、そのデバイスの信頼されたキーストアが古い場合に、対象となるデバイスによって機能が信頼されない可能性があります。
これを解決するには、信頼されたキーストアを更新するようにデバイスがインターネットに接続できるようにすることが 1 つの方法です。 デバイスをインターネットに接続しResetを押して OS の更新をトリガーします。
これが不可能な場合は、更新された信頼されたキーストアをサイドロードできます。 これを行うには、 ライセンス条項に同意し 最新の OS 回復イメージを ダウンロードしこの zip ファイルから "trusted-keystore.bin" ファイルのみを抽出します。 その後、コマンド azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> を使用して信頼されたキーストアをサイドロードできます。これで、デバイスによって機能が信頼されるようになります。
3 つ目の方法は、 システム ソフトウェアを 最新のリリースバージョン (最新の信頼されたキーストアを含む) に Azure Sphere OS を更新することです。