Google стремится к продвижению расового равенства для чернокожего населения. Смотри как.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

OpenWeave Factory Provisioning Tool

дзиндзя-заполнитель-0 .md "> Просмотр на GitHub

OpenWeave Фабрика Provisioning Инструмент обеспечивает удобное средство для инициализации упорной, на устройство информации о конфигурации на Плетении устройств с поддержкой. Factory Provisioning Tool предназначен для использования в качестве части процесса линии производства, что штампы отдельных устройств с уникальной идентичностью и верительной информацией до отгрузки потребителей. Он также может быть использован разработчиками для персонализации подготовки производства оборудования, используемого в процессе разработки.

Теория Операции

Цель OpenWeave Factory Provisioning Tool, чтобы придать выбираемую информацию о конфигурации в постоянное хранилище конфигурации устройства, где он может быть подобран и используется во время выполнения с помощью встроенного программного обеспечения устройства. Конфигурация устройства Стойкие обычно хранится во внутренней флэш-устройства, хотя детали точно, как хранятся данные, и в каком формате, варьируются от платформы к платформе. Factory Provisioning сам инструмент не зависит от конечного формата хранения данных, и полагается на коде в прошивке устройства для записи данных в правильном пути. Пользовательский интерфейс инструмента также в значительной степени зависит от типа аппаратного обеспечения конфигурируется, а это означает, что могут быть использованы аналогичные производственные процессы по линии продуктов, которые основаны на различных аппаратных платформ.

Factory Provisioning Tool предназначен работа работать на хост-компьютере, который подключен к целевому устройству с помощью какой-либо форме отладки или интерфейса управления - например, порт JTAG или SWD. Инструмент работает путем введения инициализации информации в оперативной памяти устройства в специально закодированной форме. Затем устройство проинструктированы рестарта, после чего код встроен в прошивку устройства находит кодированные данные, проверяет его целостность, и записывает содержащиеся значения в постоянное хранилище в формате, соответствующем для платформы.

Код на устройстве, которое обнаруживает и обрабатывает инъекционные данные создания резервов встроен в устройство Layer OpenWeave, и может быть включен в любой поддерживаемой платформе. После включения, код запускается автоматически каждый раз, когда устройство загружается в точке, в начале процесса инициализации устройства. Код работает путем сканирования области для конкретной платформы оперативной памяти. На платформах со скромными монтирует памяти (например, <1M), сканирование включает в себя все доступной оперативной памяти.

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

По умолчанию, Предоставление выбирает инструмент расположение RAM, при котором вводить Предоставления данных, основанные на платформе целевого устройства. Этот выбор может быть переопределен с помощью аргумента инструмента. В общем, это не требуется, чтобы устройство встроенного программного обеспечения резервировать место RAM специально для приема данных создания резервов. Более типично, инициализации данные записываются в ячейки памяти, которая выделяется для других целей, но, как правило, не используется в начале процесса загрузки устройства. Распространенные варианты в верхней части исходного стека системы, или дальний конец кучи арены.

Factory Provisioning Tool зависит от множества внешних инструментов разработки для взаимодействия с целевым устройством. Конкретные инструменты, используемые в зависимости от типа целевого устройства. Два интерфейса устройства поддерживаются в данный момент:

  • отладки зонд SEGGER J-Link подключен к JTAG или SWD-порту устройства
  • USB-последовательный порт подключен к Espressif ESP32

Интерфейс J-Link опирается на инструмент SEGGER J-Link Commander (JLinkExe), который должен быть установлен отдельно на хост-машине.

Интерфейс ESP32 опирается на Espressif esptool.py команды, которая предоставляется в рамках Espressif в ESP-IDF SDK.

Типы информации, которые могут быть инициализированы

OpenWeave Factory Provisioning Tool способен инициализация следующих видов информации:

  • Серийный номер устройства
  • Производитель назначенный идентификатор Weave устройства
  • Производитель назначенный Плетение сертификат и закрытый ключ
  • Плетение код сопряжения
  • Номер версии продукта
  • Дата производства

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

Источники информации провизий

Устройство инициализации информации может быть подано на завод Provisioning Tool в последующих способах:

  • А аргументы командной строки
  • Использование файла CSV инициализации
  • При выборке значения с сервера Nest инициализации

Командная строка

В простейшей форме, информация об устройстве инициализации указывается непосредственно в командной строке к OpenWeave Factory Provisioning Tool. Например:

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000001 \
    --pairing-code NESTUS --mfg-date 2019/04/01

Двоичные значения данных, такие как ткать сертификат и секретный ключ, могут быть указаны либо в качестве базовых 64 строк, или как имена файлов, содержащих требуемые данные в сыре (двоичная форме).

Ниже приводится полный список доступных аргументов командной строки.

Provisioning CSV файл

Для размещения массы инициализации устройств, Завод Provisioning Tool также может считывать данные инициализации из CSV-формата провизии файла данных. Столбцы этого файла , как ожидается , соответствуют определенным типам данных инициализации - то есть, Serial_Num , Certificate , Private_Key и т.д. Строки в файле дают индивидуальные значения для конкретных устройств, проиндексированных Weave идентификатор устройства ( Device_Id ). Идентификатор конкретного устройства, чтобы быть инициализации должен быть указан в командной строке. Например:

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000001 \
    --prov-csv-file ./dev-provisioning-data.csv

Следующие столбцы CSV поддерживаются:

название Формат Описание
Device_Id 16 шестнадцатеричных цифр Плетение идентификатор устройства. Должно присутствовать.
Serial_Num строка Серийный номер устройства.
Certificate База-64 строка Производитель назначенный сертификат Плетение устройство.
Private_Key База-64 строка Производитель назначенный Плетение закрытого ключа.
Pairing_Code строка Плетение код сопряжения.
Product_Rev целое число Продукт номер ревизии.
Mfg_Date YYYY / MM / DD Устройство даты изготовления.

Колонки могут появиться в файле CSV в любом порядке. Все столбцы являются обязательными, за исключением Device_Id . Любые значения , содержащиеся в файле CSV просто не предоставляется на устройстве.

Пользователь может указать отдельные значения инициализации в командной строке в дополнении к файлу CSV, в этом случае в командной строке значения тека прецедента над теми, в файле.

Поддержка формата CSV файл с помощью Factory Provisioning Tool совместит с выходом в weave инструмент gen-provisioning-data команды.

сервер инициализации Nest

Factory Provisioning Tool поддерживает извлечение информации выберите продовольствования из гнезда инициализации сервера с использованием протокола HTTPS на основе. Инициализации протокола сервера можно использовать для получения сертификата о производителе назначенного Плетение устройства, соответствующий закрытый ключ, и Weave код сопряжения с сервера инициализации.

Сетевое расположение вспомогательного сервера задается путем подачи базового URL на предоставлени инструмент командной строки. Требуемая информация инициализации выбирается указать идентификатор Weave устройства в командной строке. Например:

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000001 \
    --prov-server https://192.168.172.2:8000/

Пользователь может указать отдельные значения инициализации в командной строке в дополнении к провизиям URL сервера. В этом случае значение указано в командной строке тека прецедента над значениями, возвращенных сервером.

Включение / отключение заводской поддержки инициализации

Поддержка OpenWeave завода провизий в прошивке устройства управляется WEAVE_DEVICE_CONFIG_ENABLE_FACTORY_PROVISIONING опции конфигурации во время компиляции. Эта опция включена по умолчанию. Функция может быть отключена путем переопределения параметра в приложениях WeaveProjectConfig.h файла. Например:

#define WEAVE_DEVICE_CONFIG_ENABLE_FACTORY_PROVISIONING 0

В целом можно безопасно включить завод в инициализации устройства производства прошивки при условии , что интерфейс устройства отладки соответственно отключен на производственных устройствах. Это может быть достигнуто либо с помощью аппаратных средств (например, путем продувки предохранителей в SoC), или в программном обеспечении (например, через защищенный загрузчик, который блокирует доступ отлаживать как часть процесса загрузки).

Запуск Factory Provisioning Tool

OpenWeave Factory Provisioning Tool поддерживает следующие параметры командной строки:

вариант Описание
--target <строка> Целевой тип устройства. Варианты: nrf52840, esp32
--load-адр <шестигранными цифры> Адрес в памяти устройства, на котором будут записаны данные Provisioning.
--verbose, -v Регулировка выходного уровня детализации. Используйте несколько аргументов, чтобы увеличить подробность.
--serial-Num <строка> Установите серийный номер устройства.
--device-идентификатор <шестигранными цифры> Установите идентификатор устройства производителя назначенным.
--device-CERT <база-64> | <имя файла> Установить сертификат Weave устройства с производителем назначенным.
--device ключ <база-64> | <имя файла> Установите Плетение устройство закрытого ключа производителя назначенный.
--pairing-код <строка> Установите код устройства сопряжения.
--product-Rev <целое число> Установить версию продукта для устройства.
--mfg-дата <YYYY / MM / DD> | сегодня | сейчас Установить дату изготовления устройства.
--jlink-CMD <имя пути> Путь к команде JLINK. По умолчанию «JLinkExe».
--jlink-если ДСО | JTAG J-Link тип интерфейса. По умолчанию ДСО.
--jlink скорость <целое число> | адаптивный | авто J-Link скорость интерфейса.
--jlink-зп <строка> J-Link зонд серийный номер.
--esptool-CMD <имя пути> Путь к команде esptool. По умолчанию «esptool.py».
--port <имя пути> Имя устройства COM-порт для ESP32. По умолчанию / TTY / USB0.
--speed <целое число> Скорость передачи данных для COM-порта. По умолчанию 115200.
--prov-CSV-файл <имя файла> Устройство чтения инициализации данных из файла CSV провизий.
--prov-сервер <URL> Устройство чтения инициализации данных с сервера инициализации.
--disable-сервер проверка При использовании HTTPS, отключить проверку сертификата, представленные провизии сервера.

Примеры

Следующая команда устанавливает идентификатор устройства, серийный номер, версию продукта и сопряжение коды для конкретных значений. Изготовления дата устанавливается на текущую дату. А сертификат устройства и закрытый ключ установлены значениям тестовых данных в файле CSV , поставляемом с openweave-core репозиторий.

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000042 \
    --serial-num JAYS_DEVICE_42 --product-rev 1 --pairing-code NESTUS --mfg-date today \
    --prov-csv-file ~/projects/openweave-core/certs/development/device/test-dev-provisioning-data.csv