Настройки ОС для OEM
ИЗГОТОВИТЕЛь оборудования может настраивать различные аспекты ОПЕРАЦИОННОй системы, используя указанные ниже методы.
Приложение OOBE
IoTCore содержит приложение OOBE для папки "Входящие", которое запускается при первой загрузке устройства. Это отображается до тех пор, пока все пакеты подготовки не будут обработаны в фоновом режиме, а приложение OEM будет доступно для запуска в качестве запускаемого приложения.
Это приложение OOBE можно настроить с помощью settings.json
со следующими атрибутами:
- backgroundColor: цвет фона экрана
- background: фоновое изображение (JPG-файл)
- progressRingVisible: можно отображать или скрывать вращающиеся точки
- welcomeText: текст, отображаемый крупным шрифтом в центре экрана.
- pleaseWaitText: текст, отображаемый под вращающимися точками
- анимация: здесь можно указать GIF-файл анимации
- animationMargin: размещение GIF-файла анимации
- left , top , right, bottom
Все файлы, на которые ссылается файл settings.json, должны находиться в той же папке, что и файл settings.json. Ниже приведен пример фрагмента кода
{
"backgroundColor": "#FF0000FF",
"progressRingVisible": true,
"welcomeText": "Welcome to OOBE customization",
"pleaseWaitText": "please wait ..."
}
Примечание
Файл settings.json должен быть закодирован в кодировке Юникод (UCS-2). UTF-8 не будет работать.
Проверка параметров вручную
settings.json
Создание файла с необходимыми параметрами- Подключитесь к устройству Интернета вещей (с помощью SSH или PowerShell) и поместите
settings.json
файл вместе со всеми графическими ресурсами в каталог, напримерC:\Data\oobe
- Настройте устройство, чтобы разрешить доступ к этому каталогу из всех файлов appx, используя
folderpermissions C:\Data\oobe -e
- Запуск приложения OOBE с помощью
iotstartup add headed IoTUAPOOBE
- Проверка пользовательского интерфейса
Добавление параметров в образ IoT Core
Используйте пакет Custom.OOBEApp и измените XML-файл пакета, чтобы добавить графические ресурсы.
Скопируйте файл settings.json и графические ресурсы в папку пакета.
В файле oemcustomizations.cmd добавьте
folderpermissions C:\Data\oobe -e
, чтобы убедиться, что он вызывается при загрузке системы.В OEMInput.xml включите идентификатор компонента CUSTOM_OOBEAPP. Обратите внимание, что он определен в OEMCOMMONFM.xml.
Параметры сбоя
Для продуктов IoT Core рекомендуется настроить перезагрузку устройств при сбое, а также скрыть экран аварийного дампа (BSOD). Это достигается с помощью настройки следующих разделов реестра:
HKLM\SYSTEM\CurrentControlSet\Control\CrashControl AutoReboot установлено значение 1 DisplayDisabled, для параметра установлено значение 1
Проверка параметров вручную
- Подключитесь к устройству Интернета вещей (с помощью SSH или PowerShell) и задайте следующие разделы реестра.
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v AutoReboot /t REG_DWORD /d 1 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v DisplayDisabled /t REG_DWORD /d 1 /f
- См. раздел Принудительный сбой системы с клавиатуры и настройка клавиши для принудительного сбоя системы.
- Принудительная ошибка системы с помощью настроенного ключа и убедитесь, что устройство перезагружается автоматически и не отображает экран аварийного завершения.
Добавление параметров в образ IoT Core
- Использование пакета Custom.Settings
- В OEMInput.xml включите идентификатор компонента CUSTOM_SETTINGS. Обратите внимание, что он определен в OEMCOMMONFM.xml.
Примечание
В Windows 10, версия 1809 для решения этой настройки добавлена IOT_CRASHCONTROL_SETTINGS функция.
Параметры расположения
В выпуске Windows 10 IoTCore RS5 за ноябрь 2019 г. "11 B" (версия ОС 17763.865) службы определения местоположения для IoT Core по умолчанию будут настроены как "off". Если вы являетесь изготовителем оборудования и хотите включить службы определения местоположения, выполните следующие действия. Это относится только к IoT Core.
В разделе реестра:
HKLM\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\Capabilities\location\edition InitSystemGlobalConsentDenied установить значение 0 InitUserGlobalConsentDenied, задайте значение 0
Разработчики комплектов должны ссылаться на /windows-hardware/manufacture/iot/add-a-registry-setting-to-an-image для получения инструкций по созданию пользовательского образа с этими параметрами реестра.
Параметры BCD
Параметры базы данных конфигурации загрузки можно использовать для настройки различных функций. Сведения о различных доступных параметрах и параметрах см. в разделе BCDEdit Command-LineOptions .
Ниже перечислены некоторые ключевые функции.
Отключение анимации пользовательского интерфейса загрузки
- Настройка вручную можно выполнить с помощью приведенной ниже команды.
bcdedit -set {bootmgr} nobootuxprogress true
- Укажите этот параметр в
Custom.BCD.xml
файле
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<BootConfigurationDatabase
xmlns="http://schemas.microsoft.com/phone/2011/10/BootConfiguration"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
IncludeDescriptions="true" IncludeRegistryHeader="true">
<Objects>
<!-- Windows Boot Manager -->
<Object SaveKeyToRegistry="false">
<FriendlyName>Windows Boot Manager</FriendlyName>
<Elements>
<Element>
<DataType>
<WellKnownType>Boot UX Progress Animation Disable</WellKnownType>
</DataType>
<ValueType>
<BooleanValue>true</BooleanValue>
</ValueType>
</Element>
</Elements>
</Object>
</Objects>
</BootConfigurationDatabase>
- Включите этот параметр в образ с помощью пакета Custom.BCD и добавьте идентификатор компонента CUSTOM_BCD в файл OEMInput.xml.
Замена логотипа загрузки
Существует несколько способов замены логотипа загрузки, отображаемого BIOS или UEFI. Один из способов — лицензировать UEFI или заплатить поставщику платы за это и внести изменения непосредственно в исходный код UEFI. Кроме того, на устройствах, реализация UEFI которых поддерживает подписанные загружаемые драйверы UEFI, в этом примере показано https://github.com/Microsoft/MS_UEFI/tree/share/MsIoTSamples , как создать драйвер, заменяющий логотип загрузки, и предоставить таблицу BGRT в bootmgr, чтобы процесс загрузки Windows оставил логотип на месте во время загрузки, а не заменял его логотипом Windows.
Включение подписывания тестового пакета
- Настройка вручную может быть выполнена с помощью следующих команд:
bcdedit /set {bootmgr} flightsigning on
bcdedit /set flightsigning on
- Чтобы включить этот параметр в изображение, можно добавить приведенный ниже фрагмент в
Custom.BCD.xml
<!-- Allow Flight Signing Certificate -->
<Object SaveKeyToRegistry="false">
<FriendlyName>Global Settings Group</FriendlyName>
<Elements>
<Element>
<DataType>
<WellKnownType>Allow Flight Signatures</WellKnownType>
</DataType>
<ValueType>
<BooleanValue>true</BooleanValue>
</ValueType>
</Element>
</Elements>
</Object>
Настройки среды выполнения
В дополнение к статическим настройкам, описанным выше, вы также можете настроить во время выполнения.
OEMCustomizations.cmd
- Этот командный файл вызывается оболочкой IoTCore при каждой загрузке с системными привилегиями, помещенными в
c:\windows\system32
- В этом файле CMD можно указать любые действия по настройке, однако рекомендуется использовать его в качестве крайнего средства для настройки.
- В iot-adk-addonkit этот файл создается для каждого продукта в каталоге продуктов. Добавьте идентификатор компонента CUSTOM_CMD в XML-файл OEMInput, чтобы включить его в образ.
- См. пакет Custom.Cmd и пример oemcustomizations.cmd.
Customizations.xml
- Это файл параметров, используемый для создания пакета подготовки.
- Для автоматической обработки этого пакета подготовки во время загрузки этот пакет помещается в
c:\windows\provisioning\packages
- В iot-adk-addonkit этот файл создается для каждого продукта в каталоге продуктов. Добавьте идентификатор компонента PROV_AUTO в XML-файл OEMInput, чтобы включить его в образ.
- См . раздел Пакет Provisioning.Auto и пример Customizations.xml
- Дополнительные сведения см. в статье:
- Добавление пакета подготовки
- Подготовка поддерживаемых поставщиков служб конфигурации (CSP) в IoT Core