Personnalisations du système d’exploitation pour OEM

OEM peut personnaliser différents aspects du système d’exploitation à l’aide des méthodes spécifiées ci-dessous.

Application OOBE

IoTCore a une application OOBE de boîte de réception qui s’exécute lorsque l’appareil démarre pour la première fois. Cela s’affiche jusqu’à ce que tous les packages d’approvisionnement soient traités en arrière-plan et qu’une application OEM soit disponible pour être lancée en tant qu’application de démarrage.

Cette application OOBE peut être personnalisée avec un settings.json avec les attributs suivants :

  • backgroundColor : couleur d’arrière-plan de l’écran
  • arrière-plan : image d’arrière-plan (fichier jpg)
  • progressRingVisible : les points en rotation peuvent être affichés ou masqués
  • welcomeText : texte affiché dans une grande police au centre de l’écran
  • pleaseWaitText : texte affiché sous les points tournants
  • animation : Le gif d’animation peut être spécifié ici
  • animationMargin : positionnement du gif d’animation
  • left , top , right, bottom

Tous les fichiers référencés dans le fichier settings.json doivent se trouver dans le même dossier que le fichier settings.json. Un exemple d’extrait de code est fourni ci-dessous

{
"backgroundColor":  "#FF0000FF",
"progressRingVisible": true,
"welcomeText": "Welcome to OOBE customization",
"pleaseWaitText": "please wait ..."
}

Notes

Le fichier settings.json doit être encodé en encodage Unicode (UCS-2). UTF-8 ne fonctionnera pas.

Valider les paramètres manuellement

  1. Créer le settings.json fichier avec vos paramètres requis
  2. Connectez-vous à l’appareil IoT (à l’aide de SSH ou de Powershell) et placez le settings.json fichier avec toutes les ressources graphiques dans un répertoire, par exemple C:\Data\oobe
  3. Configurez l’appareil pour autoriser l’accès à ce répertoire à partir de tous les fichiers appx, à l’aide de
folderpermissions C:\Data\oobe -e
  1. Lancez l’application OOBE à l’aide de
iotstartup add headed IoTUAPOOBE
  1. Vérifier l’interface utilisateur

Ajouter des paramètres à l’image IoT Core

  1. Utiliser le package Custom.OOBEApp et modifier le fichier xml du package pour ajouter vos ressources graphiques

  2. Copiez vos ressources settings.json et graphiques dans ce dossier de package.

  3. Dans le fichier oemcustomizations.cmd, ajoutez folderpermissions C:\Data\oobe -e , pour vous assurer qu’il est appelé au démarrage du système.

  4. Dans le OEMInput.xml, incluez l’ID de fonctionnalité CUSTOM_OOBEAPP, notez que celui-ci est défini dans le OEMCOMMONFM.xml.

Paramètres d’incident

Pour les produits IoT Core, il est recommandé de configurer vos appareils pour qu’ils redémarrent en cas d’incident et de masquer l’écran de vidage sur incident (BSOD). Pour ce faire, définissez les clés de Registre suivantes :

HKLM\SYSTEM\CurrentControlSet\Control\CrashControl AutoReboot défini sur 1 DisplayDisabled défini sur 1

Valider les paramètres manuellement

  1. Connectez-vous à votre appareil IoT (à l’aide de SSH ou de PowerShell) et définissez les clés de Registre suivantes

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

  1. Consultez Forcer un incident système à partir du clavier et configurer une touche pour forcer le plantage du système.
  2. Forcez un plantage du système à l’aide de la clé configurée et vérifiez que l’appareil redémarre automatiquement et n’affiche pas l’écran crashdump.

Ajouter des paramètres à l’image IoT Core

  1. Utiliser le package Custom.Settings
  2. Dans le OEMInput.xml, incluez l’ID de fonctionnalité CUSTOM_SETTINGS, notez que celui-ci est défini dans le OEMCOMMONFM.xml.

Notes

Dans Windows 10, version 1809, IOT_CRASHCONTROL_SETTINGS fonctionnalité est ajoutée pour traiter cette personnalisation.

Paramètres d’emplacement

À partir de la version « 11 B » Windows 10 IoTCore RS5 de novembre 2019 (version du système d’exploitation 17763.865), les services de localisation pour IoT Core seront configurés pour être définis sur « off » par défaut. Si vous êtes un OEM et souhaitez activer les services de localisation, suivez les étapes ci-dessous. Cela s’applique uniquement à IoT Core.

Sous la clé de Registre :

HKLM\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\Capabilities\location\edition InitSystemGlobalConsentDenied défini sur 0 InitUserGlobalConsentDenied défini sur 0

Les générateurs de kit doivent se référer à /windows-hardware/manufacture/iot/add-a-registry-setting-to-an-image pour obtenir des instructions sur la création d’une image personnalisée avec ces paramètres de Registre

Paramètres BCD

Les paramètres de la base de données de configuration de démarrage peuvent être utilisés pour configurer différentes fonctionnalités. Consultez BcDEdit Command-LineOptions pour connaître les différents paramètres et options disponibles.

Quelques fonctionnalités clés sont répertoriées ci-dessous

Désactiver l’animation d’expérience utilisateur de démarrage

  1. Le paramètre manuel peut être effectué avec la commande ci-dessous
bcdedit -set {bootmgr} nobootuxprogress true
  1. Spécifier ce paramètre dans un Custom.BCD.xml fichier
<?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>
  1. Incluez ce paramètre dans l’image à l’aide du package Custom.BCD et ajoutez l’ID de fonctionnalité CUSTOM_BCD à OEMInput.xml fichier

Il existe plusieurs façons de remplacer le logo de démarrage affiché par le BIOS ou l’UEFI. L’une des façons consiste à accorder une licence à l’UEFI ou à payer un fabricant de carte pour le faire, et d’apporter des modifications directement au code source UEFI. Sur les appareils dont l’implémentation UEFI prend en charge les pilotes UEFI chargeables signés, il existe un exemple ici : https://github.com/Microsoft/MS_UEFI/tree/share/MsIoTSamples qui montre comment créer un pilote qui remplace le logo de démarrage et fournir une table BGRT à bootmgr afin que le processus de démarrage Windows laisse votre logo en place pendant le démarrage au lieu de le remplacer par le logo Windows.

Activer la signature de version d’évaluation

  1. Le paramétrage manuel peut être effectué avec les commandes ci-dessous :
bcdedit /set {bootmgr} flightsigning on
bcdedit /set flightsigning on
  1. Pour inclure ce paramètre dans l’image, vous pouvez ajouter le fragment ci-dessous au 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>

Personnalisations du runtime

En plus des personnalisations statiques décrites ci-dessus, vous pouvez également personnaliser pendant l’exécution.

  1. OEMCustomizations.cmd
  • Ce fichier de commandes est appelé par IoTCore Shell à chaque démarrage avec des privilèges système, placés dans c:\windows\system32
  • Vous pouvez spécifier des actions de personnalisation ici dans ce fichier cmd, bien qu’il soit recommandé de conserver cette option en dernier recours pour les personnalisations
  • Dans iot-adk-addonkit, ce fichier est créé pour chaque produit dans le répertoire du produit. Ajoutez l’ID de fonctionnalité CUSTOM_CMD dans le fichier XML OEMInput pour l’inclure dans l’image.
  • Consultez Package Custom.Cmd et exemples oemcustomizations.cmd
  1. Customizations.xml
  • Il s’agit du fichier de paramètres utilisé pour créer le package d’approvisionnement
  • Pour traiter automatiquement ce package d’approvisionnement au moment du démarrage, ce package est placé dans c:\windows\provisioning\packages
  • Dans iot-adk-addonkit, ce fichier est créé pour chaque produit dans le répertoire du produit. Ajoutez l’ID de fonctionnalité PROV_AUTO dans le fichier xml OEMInput pour l’inclure dans l’image.
  • Consultez Package Provisioning.Auto et exemples de Customizations.xml
  • Pour plus d’informations, consultez :
  • Ajouter un package d’approvisionnement
  • Approvisionnement pour les fournisseurs de services de configuration (CSP) pris en charge dans IoT Core