Возможности устройств и обмен данными

Возможности устройств определяют политики ОС для конкретного устройства для обмена данными между службой и UART. Весь обмен данными между главным компьютером и подключенным устройством осуществляется через UART службы. Главный компьютер взаимодействует с подключенным устройством для выполнения операций с устройством. Производители, разработчики программного обеспечения и специалисты по обслуживанию на местах используют возможности для разблокировки связи между службами UART для необходимых операций, обеспечивая защиту устройства от злоумышленников.

Производители устройств и изготовители оборудования могут заблокировать обмен данными между службами UART, чтобы предотвратить несанкционированное использование устройства теми, кто имеет физический доступ к устройству. Блокировка такого взаимодействия является частью завершения устройства. После завершения работы пользователь может получить идентификатор устройства, но не более того; для всех остальных операций требуется возможность устройства. Завершение обычно выполняется на заводе до того, как производитель отправляет устройство на сайт клиента.

Файл возможностей устройства содержит ноль или больше возможностей только для одного устройства. Файл возможностей не будет работать, если он применяется к устройству, которое не является тем, для которого он предназначен. Устройство может иметь следующие возможности, каждая из которых описана далее в этом разделе:

Примечание

Возможности устройств не связаны с возможностями приложений. Возможности приложения указывают ресурсы, необходимые приложению во время выполнения. Дополнительные сведения о возможностях приложения см. в манифесте приложения.

Определение возможностей устройства или состояния производства

Чтобы определить конфигурацию возможностей, хранящуюся на подключенном устройстве, используйте команду azsphere device capability show-attached . Команда отображает возможности, настроенные с помощью файла возможностей, и некоторые, но не все возможности, представленные по умолчанию на платах. Полный список команд azsphere , которым требуется возможность устройства, см. в таблице в обзоре интерфейса командной строки.

На возможности устройства может влиять состояние производства устройства. Чтобы определить состояние производства устройства, используйте команду azsphere device manufacturing-state show . Если команда показывает, что устройство находится в производственном состоянии DeviceComplete или возвращает значение Device access is forbidden, связь между службой и UART заблокирована, и вам нужна возможность устройства для связи с устройством с компьютера. Если устройство находится в производственном состоянии DeviceComplete , производственные операции разрешены только в том случае, если устройство разблокировано с помощью файла возможностей.

Примечание

При установке устройства на клиентском сайте перед установкой убедитесь, что устройство завершено до состояния производства DeviceComplete . См . раздел Завершение работы устройства Azure Sphere.

Состояние управления DeviceComplete обычно не подходит для комплекта средств разработки. Чтобы обеспечить тестирование производственных операций, разрабатываемых инженерами-изготовителями, набор средств разработки должен находиться в состоянии "Пустое производство" или " Модуль1Complete ".

Как устройства получают возможности

Устройства могут получить возможности одним из трех способов:

  • По умолчанию открыт. Устройство, которое находится в состоянии "Пустое производство" или "Модуль1Complete", имеет некоторые возможности, открытые по умолчанию. Это делается для того, чтобы устройства, все еще на этапе производства, не должны подключаться к облаку или запрашиваться в клиентах, как это требуется в процессе использования файлов возможностей устройства для разблокировки возможностей. По мере развития производства производители могут изменить состояние производства устройства, чтобы заблокировать возможности, которые больше не подходят, как описано в разделе Задачи фабрики.

  • Загружено неопубликованным устройством. Устройство может иметь файл возможностей, загруженный неопубликованным на устройство с главного компьютера. Чтобы получить файл возможности, используйте команду azsphere device capability download . Этот неопубликованный набор возможностей сохраняется до тех пор, пока не будет загружен неопубликованный файл (который может быть пустым файлом без возможностей). Это обычная ситуация во время разработки приложения, например при выполнении команды azsphere device enable-development . Разработка приложений облегчается тем, что устройство находится в разблокированном состоянии, где разработчик может выполнять такие операции, как отладка, а также легко удалять и развертывать неопубликованные версии приложения.

  • Передается на устройство с каждой операцией. На устройстве могут применяться локально выбранные возможности для каждой операции. Команда azsphere device capability select выбирает файл возможностей, который хранится локально на хост-компьютере. После выполнения этой команды выбранная возможность передается с компьютера на устройство с каждой последующей командой. Это рекомендуемый способ использования возможностей для устройств, находящихся в поле, так как эти возможности хранятся на компьютере, а не на устройстве. Риск того, что инженер-специалист случайно оставить устройство в незащищенном состоянии, забыв удалить эту возможность, избегается.

Прежде чем файл возможностей можно будет загрузить на устройство или передать на устройство с помощью операции, его необходимо скачать из службы безопасности Azure Sphere (AS3), как описано в разделе Внесение изменений в устройство после производства. Скачанные файлы возможностей зависят от устройства; После скачивания файл возможностей можно многократно использовать на связанном устройстве.

Возможность enableRfTestMode

Возможность enableRfTestMode присутствует на устройстве по умолчанию, когда состояние производства устройства — Blank. Эта возможность позволяет программировать электронные предохранители, а также настраивать и тестировать операции RF. Владельцы клиентов не могут скачать эту возможность на главный компьютер. Если вам нужна эта возможность, обратитесь к представителю Майкрософт.

Если производственное состояние устройства равно Blank, команда azsphere device capability show-attached отображает возможность enableRfTestMode .

Возможность appDevelopment

Возможность устройства appDevelopment разблокирует обмен данными между службой и UART и изменяет тип подписи, которому доверяет устройство. Он предназначен для использования во время разработки приложений.

По умолчанию устройства Azure Sphere доверяют пакетам образов, подписанным рабочей средой, которые скачиваются службой безопасности Azure Sphere, но не доверяют пакетам образов, подписанным пакетом SDK. Таким образом, нельзя создать пакет образа с помощью пакета SDK и загрузить его на устройство Azure Sphere для отладки, если устройство не имеет возможности appDevelopment . Возможность appDevelopment заставляет устройство доверять пакету образа и позволяет запускать, останавливать, отлаживать или удалять приложение с устройства.

Таким образом, возможность appDevelopment разблокирует обмен данными между службами UART, чтобы разрешить следующие операции:

  • Загрузка неопубликованного пакета образа, созданного с помощью Visual Studio, Visual Studio Code, cli или команды azsphere image-package.

  • Запуск, остановка, отладка или удаление пакета образа с устройства Azure Sphere независимо от того, как он подписан.

Чтобы добавить возможность appDevelopment , используйте команду azsphere device enable-development . Эта команда скачивает возможность appDevelopment для подключенного устройства, загружает неопубликованную возможность на устройство и перемещает устройство в группу устройств Разработка по умолчанию. Чтобы указать другую группу --device-group устройств, добавьте параметр .

При использовании azsphere device enable-development устройство остается разблокированным, пока вы не заблокируете его явным образом. Чтобы восстановить блокировку устройства, используйте команду azsphere device enable-cloud-test . Эта команда удаляет возможность и изменяет группу устройств в зависимости от предоставленных параметров командной строки.

Команды azsphere device enable-development и azsphere device enable-cloud-test выполняют последовательность действий, которые подготавливают устройство к разработке и отладке или к облачным развертываниям соответственно. Вместо этих команд можно использовать команду azsphere device capability , чтобы скачать или обновить возможность устройства или узнать, какие возможности есть у устройства в настоящее время.

Возможность fieldServicing

Возможность fieldServicing присутствует на устройстве по умолчанию, когда устройство имеет состояние производства Blank или Module1Complete. Если устройство находится в производственном состоянии DeviceComplete , возможность fieldServicing может быть загружена неопубликованно, но обычно передается устройству с каждой операцией во время сеанса обслуживания. Дополнительные сведения о запуске сеанса обслуживания см. в статье Внесение изменений в устройство после производства.

Независимо от состояния производства устройства, возможность fieldServicing разблокирует обмен данными между службой и UART для выполнения следующих операций:

  • Загрузка неопубликованного пакета образа, подписанного в рабочей среде.
  • Запуск, остановка и удаление пакета образов с рабочей подписью, помеченного как временный.
  • Выполнение рутинных задач обслуживания, таких как настройка Wi-Fi.

Хотя возможность fieldServicing присутствует на устройстве по умолчанию, когда производственное состояние устройства — Blank или Module1Complete, команда azsphere device capability show-attached не отображает возможность fieldServicing .

Зависимость от актуального доверенного хранилища ключей

Когда as3 создает файл возможностей, он подписывается с помощью текущего ключа подписывания образа. Каждое устройство имеет надежное хранилище ключей в составе ОС, где хранятся эти ключи. Тем не менее, если устройство не подключено к Интернету, то можно не доверять устройству, на которое оно нацелено, если доверенное хранилище ключей этого устройства устарело.

Чтобы устранить эту проблему, один из способов заключается в том, чтобы разрешить устройству подключаться к Интернету, чтобы оно обновлялось доверенное хранилище ключей. Подключите устройство к Интернету и нажмите кнопку Сброс , чтобы активировать обновление ОС.

Если это невозможно, можно загрузить обновленное доверенное хранилище ключей. Для этого примите условия лицензии , а затем скачайте последние образы восстановления ОС и извлеките из этого ZIP-файла только файл trusted-keystore.bin. Затем можно использовать команду azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> , чтобы загрузить неопубликованное хранилище ключей, и устройство должно доверять этой возможности.

Третий метод — восстановление системного программного обеспечения для обновления ОС Azure Sphere до последней выпущенной версии, включая последнее доверенное хранилище ключей.