Betriebssystemanpassungen für OEM

OEM kann verschiedene Aspekte des Betriebssystems mithilfe der folgenden angegebenen Methoden anpassen.

OOBE-App

IoTCore verfügt über eine Posteingangs-OOBE-App, die ausgeführt wird, wenn das Gerät zum ersten Mal gestartet wird. Dies wird angezeigt, bis alle Bereitstellungspakete im Hintergrund verarbeitet werden und eine OEM-App als Start-App gestartet werden kann.

Diese OOBE-App kann mit einer settings.json mit folgenden Attributen angepasst werden:

  • backgroundColor : Hintergrundfarbe des Bildschirms
  • background : Hintergrundbild (JPG-Datei)
  • progressRingVisible: Drehende Punkte können angezeigt oder ausgeblendet werden
  • welcomeText: Text, der in großer Schriftart in der Mitte des Bildschirms angezeigt wird
  • pleaseWaitText : Text, der unterhalb der drehenden Punkte angezeigt wird
  • animation: Animations-GIF kann hier angegeben werden
  • animationMargin : Positionierung der Animations-GIF
  • links , oben , rechts, unten

Alle Dateien, auf die in „settings.json“ verwiesen wird, sollten sich im gleichen Ordner wie die Datei „settings.json“ befinden. Unten wird ein Beispielausschnitt angegeben

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

Hinweis

Die Datei settings.json muss in unicode-Codierung (UCS-2) codiert werden. UTF-8 funktioniert nicht.

Überprüfen Sie die Einstellungen manuell

  1. Erstellen Sie die settings.json Datei mit ihren erforderlichen Einstellungen
  2. Stellen Sie eine Verbindung mit dem IoT-Gerät (mit SSH oder Powershell) her, und platzieren Sie die settings.json Datei zusammen mit allen grafischen Ressourcen in einem Verzeichnis, beispielsweise C:\Data\oobe
  3. Konfigurieren Sie das Gerät so, dass der Zugriff auf dieses Verzeichnis über alle Appx-Dateien ermöglicht wird
folderpermissions C:\Data\oobe -e
  1. Starten Sie die OOBE-Anwendung mithilfe
iotstartup add headed IoTUAPOOBE
  1. Überprüfen Sie die Benutzeroberfläche

Fügen Sie Einstellungen zum IoT Core-Image hinzu

  1. Verwenden Sie custom.OOBEApp-Paket, und ändern Sie die XML-Paketdatei, um Ihre grafischen Ressourcen hinzuzufügen

  2. Kopieren Sie Ihre settings.json und grafische Ressourcen in diesen Paketordner.

  3. Fügen Sie folderpermissions C:\Data\oobe -e in der Datei oemcustomizations.cmd hinzu, um sicherzustellen, dass dies beim Systemstart aufgerufen wird.

  4. Fügen Sie in der OEMInput.xml die Feature-ID CUSTOM_OOBEAPP hinzu, beachten Sie, dass dies in der OEMCOMMONFM.xml definiert ist.

Absturzeinstellungen

Für IoT Core-Produkte empfiehlt es sich, Ihre Geräte so zu konfigurieren, dass sie beim Absturz neu gestartet werden und auch den Absturzabbildbildschirm (BSOD) ausblenden. Dies wird durch Festlegen der folgenden Registrierungsschlüssel erreicht:

HKLM\SYSTEM\CurrentControlSet\Control\CrashControl AutoReboot set to 1 DisplayDisabled set to 1

Überprüfen Sie die Einstellungen manuell

  1. Stellen Sie eine Verbindung mit Ihrem IoT-Gerät (mit SSH oder Powershell) her, und legen Sie die folgenden Registrierungsschlüssel fest

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. Lesen Sie das Erzwingen eines Systemabsturzes von der Tastatur, und konfigurieren Sie eine Taste, um den Systemabsturz zu erzwingen.
  2. Erzwingen Sie einen Systemabsturz mithilfe der konfigurierten Taste, und stellen Sie sicher, dass das Gerät automatisch neu gestartet wird und nicht den Absturzdumpbildschirm anzeigt.

Fügen Sie Einstellungen zum IoT Core-Image hinzu

  1. Verwenden des Pakets Custom.Settings
  2. Fügen Sie in der OEMInput.xml die Feature-ID CUSTOM_OOBEAPP hinzu, beachten Sie, dass dies in der OEMCOMMONFM.xml definiert ist.

Hinweis

In Windows 10, Version 1809 wird das IOT_CRASHCONTROL_SETTINGS Feature hinzugefügt, um diese Anpassung zu beheben.

Standorteinstellungen

Ab der Version Windows 10 IoTCore RS5 November 2019 „11 B“ (Betriebssystemversion 17763.865) werden Standortdienste für IoT Core standardmäßig auf „deaktiviert“ konfiguriert. Wenn Sie ein OEM sind und die Standortdienste aktivieren möchten, führen Sie die folgenden Schritte aus. Dies gilt nur für IoT Core.

Unter dem Registrierungsschlüssel:

HKLM\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\Capabilities\location\edition InitSystemGlobalConsentDenied set to 0 InitUserGlobalConsentDenied set to 0

Ersteller von Kits sollten sich für die Erstellung eines benutzerdefinierten Images mit diesen Registrierungseinstellungen an den Anweisungen /windows/hardware/manufacture/iot/add-a-registry-setting-to-an-image orientieren

BCD-Einstellungen

Startkonfigurationsdatenbankeinstellungen können verwendet werden, um verschiedene Features zu konfigurieren. Weitere Informationen finden Sie unter BCDEdit Command-LineOptions für die verschiedenen verfügbaren Einstellungen und Optionen.

Im Folgenden sind einige wichtige Features aufgeführt

Start-UX-Animation deaktivieren

  1. Manuelle Einstellung kann mit dem folgenden Befehl erfolgen
bcdedit -set {bootmgr} nobootuxprogress true
  1. Geben Sie diese Einstellung in einer Custom.BCD.xml Datei an
<?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. Fügen Sie diese Einstellung in das Image mithilfe des Pakets Custom.BCD ein, und fügen Sie die CUSTOM_BCD feature-ID der OEMInput.xml Datei hinzu

Es gibt mehrere Möglichkeiten, das Startlogo zu ersetzen, das vom BIOS oder UEFI angezeigt wird. Eine Möglichkeit besteht darin, den UEFI zu lizenzieren oder einen Boardhersteller zu bezahlen, um dies zu tun, und Änderungen direkt am UEFI-Quellcode vorzunehmen. Alternativ gibt es auf Geräten, deren UEFI-Implementierung signierte UEFI-Treiber unterstützt, hier ein Beispiel: https://github.com/Microsoft/MS_UEFI/tree/share/MsIoTSamples Hier erfahren Sie, wie Sie einen Treiber erstellen, der das Startlogo ersetzt und eine BGRT-Tabelle an bootmgr angibt, damit der Windows-Startprozess Ihr Logo während des Startvorgangs platziert, anstatt es durch das Windows-Logo zu ersetzen.

Aktivieren der Flight-Signatur

  1. Manuelle Einstellung kann mit dem folgenden Befehl erfolgen:
bcdedit /set {bootmgr} flightsigning on
bcdedit /set flightsigning on
  1. Um diese Einstellung in das Image einzuschließen, können Sie dem folgenden Fragment zur Custom.BCD.xml hinzuzufügen
<!--  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>

Laufzeitanpassungen

Zusätzlich zu den oben beschriebenen statischen Anpassungen, können Sie auch während der Laufzeit anpassen.

  1. OEMCustomizations.cmd
  • Diese Befehlsdatei wird von IoTCore Shell auf jedem Start mit Systemrechten aufgerufen, die in c:\windows\system32 abgelegt ist
  • Sie können hier in dieser cmd-Datei alle Anpassungsaktionen angeben, es wird jedoch empfohlen, dies als letzte Option für Anpassungen beizubehalten
  • In dem iot-adk-addonkit wird diese Datei für jedes Produkt unter dem Produktverzeichnis erstellt. Fügen Sie die Feature-ID CUSTOM_CMD in der OEMInput-XML-Datei hinzu, um dies in das Image einzuschließen.
  • Siehe Custom.Cmd-Paket und Beispiel oemcustomizations.cmd
  1. Customizations.xml
  • Dies ist die Einstellungsdatei, die zum Erstellen des Bereitstellungspakets verwendet wird
  • Um dieses Bereitstellungspaket zum Startzeit automatisch zu verarbeiten, wird dieses Paket in c:\windows\provisioning\packages abgelegt
  • In dem iot-adk-addonkit wird diese Datei für jedes Produkt unter dem Produktverzeichnis erstellt. Fügen Sie die Feature-ID PROV_AUTO in der OEMInput-XML-Datei hinzu, um dies in das Image einzuschließen.
  • Siehe Provisioning.Auto Paket und Beispiel-Customizations.xml
  • Weitere Informationen finden Sie unter:
  • Hinzufügen eines Bereitstellungspakets
  • Bereitstellung für unterstützte Konfigurationsdienstanbieter (CSPs) in IoT Core