Personalizzazioni del sistema operativo per OEM
L'OEM può personalizzare vari aspetti del sistema operativo usando i metodi specificati di seguito.
App configurazione guidata
IoTCore ha un'app della configurazione guidata posta in arrivo che viene eseguita quando il dispositivo viene avviato per la prima volta. Viene visualizzato fino a quando non vengono elaborati tutti i pacchetti di provisioning in background e un'app OEM è disponibile per l'avvio come app di avvio.
Questa app della configurazione guidata può essere personalizzata con gli settings.json
attributi seguenti:
- backgroundColor: colore di sfondo dello schermo
- sfondo: immagine di sfondo (file jpg)
- progressRingVisible: i punti rotanti possono essere visualizzati o nascosti
- welcomeText: testo visualizzato in caratteri di grandi dimensioni al centro della schermata
- pleaseWaitText: testo visualizzato sotto i punti rotanti
- animazione: è possibile specificare qui la gif di animazione
- animationMargin: posizionamento della gif di animazione
- sinistra , superiore , destra, inferiore
Tutti i file a cui si fa riferimento nel file settings.json devono trovarsi nella stessa cartella del file settings.json. Di seguito è riportato un frammento di codice di esempio
{
"backgroundColor": "#FF0000FF",
"progressRingVisible": true,
"welcomeText": "Welcome to OOBE customization",
"pleaseWaitText": "please wait ..."
}
Nota
Il file settings.json deve essere codificato nella codifica Unicode (UCS-2). UTF-8 non funzionerà.
Convalidare le impostazioni manualmente
- Creare il
settings.json
file con le impostazioni necessarie - Connettersi al dispositivo IoT (usando SSH o powershell) e inserire il
settings.json
file insieme a tutti gli asset grafici in una directory, ad esempioC:\Data\oobe
- Configurare il dispositivo per consentire l'accesso a questa directory da tutti i file appx usando
folderpermissions C:\Data\oobe -e
- Avviare l'applicazione configurazione guidata usando
iotstartup add headed IoTUAPOOBE
- Verificare l'interfaccia utente
Aggiungere impostazioni all'immagine IoT Core
Usare il pacchetto Custom.OOBEApp e modificare il file XML del pacchetto per aggiungere gli asset grafici
Copiare gli asset settings.json e grafici nella cartella del pacchetto.
Nel file oemcustomizations.cmd aggiungere
folderpermissions C:\Data\oobe -e
, per assicurarsi che venga chiamato all'avvio del sistema.Nella OEMInput.xml includere l'ID funzionalità CUSTOM_OOBEAPP, si noti che è definito nel OEMCOMMONFM.xml.
Impostazioni di arresto anomalo
Per i prodotti IoT Core, è consigliabile configurare i dispositivi per il riavvio in caso di arresto anomalo e nascondere anche la schermata di dump di arresto anomalo del sistema (BSOD). Questa operazione viene ottenuta con l'impostazione delle chiavi del Registro di sistema seguenti:
HKLM\SYSTEM\CurrentControlSet\Control\CrashControl AutoReboot impostato su 1 DisplayDisabled impostato su 1
Convalidare le impostazioni manualmente
- Connettersi al dispositivo IoT (usando SSH o powershell) e impostare le chiavi del Registro di sistema seguenti
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
- Vedere Forzare un arresto anomalo del sistema dalla tastiera e configurare un tasto per forzare l'arresto anomalo del sistema.
- Forzare un arresto anomalo del sistema usando la chiave configurata e verificare che il dispositivo venga riavviato automaticamente e non visualizzi la schermata di arresto anomalo del sistema.
Aggiungere impostazioni all'immagine IoT Core
- Usare il pacchetto Custom.Settings
- Nella OEMInput.xml includere l'ID funzionalità CUSTOM_SETTINGS, si noti che questo valore è definito nel OEMCOMMONFM.xml.
Nota
In Windows 10, versione 1809, IOT_CRASHCONTROL_SETTINGS funzionalità viene aggiunta per risolvere questa personalizzazione.
Impostazioni percorso
Dalla versione di Windows 10 IoTCore RS5 novembre 2019 "11 B" (os versione 17763.865) successiva, i servizi di posizione per IoT Core verranno configurati per essere impostati su "off" per impostazione predefinita. Se si è un OEM e si vuole attivare i servizi di posizione, seguire questa procedura. Questo vale solo per IoT Core.
Sotto la chiave del Registro di sistema:
HKLM\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\Capabilities\location\edition InitSystemGlobalConsentDenied impostato su 0 InitUserGlobalConsentDenied impostato su 0
I generatori di kit devono fare riferimento a /windows-hardware/manufacture/iot/add-a-registry-setting-to-an-image per istruzioni sulla creazione di un'immagine personalizzata con queste impostazioni del Registro di sistema
Impostazioni BCD
Le impostazioni del database di configurazione di avvio possono essere usate per configurare varie funzionalità. Vedere BCDEdit Command-LineOptions per le varie impostazioni e opzioni disponibili.
Di seguito sono elencate alcune funzionalità chiave
Disabilitare l'animazione dell'esperienza utente di avvio
- L'impostazione manuale può essere eseguita con il comando seguente
bcdedit -set {bootmgr} nobootuxprogress true
- Specificare questa impostazione in un
Custom.BCD.xml
file
<?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>
- Includere questa impostazione nell'immagine usando il pacchetto Custom.BCD e aggiungere CUSTOM_BCD ID funzionalità al file OEMInput.xml
Sostituzione del logo di avvio
Esistono diversi modi per sostituire il logo di avvio visualizzato dal BIOS o UEFI. Un modo consiste nel concedere in licenza l'UEFI o pagare un fornitore del produttore della scheda a tale scopo e apportare modifiche direttamente al codice sorgente UEFI. In alternativa, nei dispositivi la cui implementazione UEFI supporta i driver UEFI caricabili firmati, ecco un esempio: https://github.com/Microsoft/MS_UEFI/tree/share/MsIoTSamples che mostra come creare un driver che sostituisce il logo di avvio e fornire una tabella BGRT per bootmgr in modo che il processo di avvio di Windows lasci il logo sul posto durante l'avvio anziché sostituirlo con il logo di Windows.
Abilitare la firma in anteprima
- L'impostazione manuale può essere eseguita con i comandi seguenti:
bcdedit /set {bootmgr} flightsigning on
bcdedit /set flightsigning on
- Per includere questa impostazione nell'immagine, è possibile aggiungere il frammento seguente al
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>
Personalizzazioni di runtime
Oltre alle personalizzazioni statiche descritte in precedenza, è anche possibile personalizzare durante il runtime.
OEMCustomizations.cmd
- Questo file di comando viene richiamato da IoTCore Shell in ogni avvio con privilegi di sistema, inseriti in
c:\windows\system32
- È possibile specificare qualsiasi azione di personalizzazione in questo file cmd, anche se è consigliabile mantenere questa opzione come ultima opzione per le personalizzazioni
- Nel file iot-adk-addonkit questo file viene creato per ogni prodotto nella directory del prodotto. Aggiungere l'ID funzionalità CUSTOM_CMD nel file XML OEMInput per includerlo nell'immagine.
- Vedere Il pacchetto Custom.Cmd e l'oemcustomizations.cmd di esempio
Customizations.xml
- Questo è il file di impostazioni usato per creare il pacchetto di provisioning
- Per elaborare automaticamente questo pacchetto di provisioning al momento dell'avvio, questo pacchetto viene inserito in
c:\windows\provisioning\packages
- Nel file iot-adk-addonkit questo file viene creato per ogni prodotto nella directory del prodotto. Aggiungere l'ID funzionalità PROV_AUTO nel file XML OEMInput per includerlo nell'immagine.
- Vedere Pacchetto Provisioning.Auto ed esempio Customizations.xml
- Per altri dettagli, vedere:
- Aggiungere un pacchetto di provisioning
- Provisioning per provider di servizi di configurazione supportati in IoT Core