OEM 的 OS 自訂

OEM 可以使用下列指定的方法來自訂作業系統的各個層面。

OOBE 應用程式

IoTCore 有一個收件匣 OOBE 應用程式,會在裝置第一次開機時執行。 這會顯示,直到背景處理所有布建套件,且 OEM 應用程式可啟動為啟動應用程式為止。

此 OOBE 應用程式可以使用下列屬性的 來調整 settings.json

  • backgroundColor:螢幕背景色彩
  • 背景:背景影像 (jpg 檔案)
  • progressRingVisible :可以顯示或隱藏旋轉點
  • welcomeText:畫面中央顯示大型字型的文字
  • pleaseWaitText:顯示在旋轉點下方的文字
  • 動畫:您可以在這裡指定動畫 gif
  • animationMargin:動畫 gif 的位置
  • 左、上、右、下

settings.json 中參考的所有檔案都應該位於與 settings.json 檔案相同的資料夾中。 以下提供範例程式碼片段

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

注意

settings.json 檔案必須在 Unicode (UCS-2 編碼) 編碼。 UTF-8 將無法運作。

手動驗證設定

  1. 使用必要設定撰寫 settings.json 檔案
  2. 使用 SSH或使用Powershell () 連線到 IoT 裝置,並將檔案連同所有圖形資產放在 settings.json 目錄中,例如C:\Data\oobe
  3. 使用 設定裝置以允許從所有 appx 檔案存取此目錄
folderpermissions C:\Data\oobe -e
  1. 使用 啟動 OOBE 應用程式
iotstartup add headed IoTUAPOOBE
  1. 驗證使用者介面

將設定新增至 IoT 核心版映射

  1. 使用 Custom.OOBEApp 套件並修改套件 xml 檔案以新增圖形化資產

  2. 將 settings.json 和圖形化資產複製到該套件資料夾。

  3. 在 oemcustomizations.cmd 檔案中,新增 folderpermissions C:\Data\oobe -e ,以確保在系統開機時呼叫此功能。

  4. 在 OEMInput.xml 中包含功能識別碼 CUSTOM_OOBEAPP,請注意,這是在 OEMCOMMONFM.xml 中定義的。

當機設定

針對 IoT 核心產品,建議您將裝置設定為在當機時重新開機,同時隱藏 BSOD) (損毀傾印畫面。 這可透過設定下列登錄機碼來達成:

HKLM\SYSTEM\CurrentControlSet\Control\CrashControl AutoReboot 設定為 1 DisplayDisabled 設定為 1

手動驗證設定

  1. 使用 SSH或使用Powershell) 連線到 IoT 裝置 (,並設定下列登錄機碼

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. 請參閱 從鍵盤強制系統當機 ,並設定按鍵以強制系統當機。
  2. 使用設定的金鑰強制系統當機,並確認裝置會自動重新開機,且不會顯示損毀傾印畫面。

將設定新增至 IoT 核心版映射

  1. 使用 Custom.Settings 套件
  2. 在 OEMInput.xml 中包含功能識別碼 CUSTOM_SETTINGS,請注意,這是在 OEMCOMMONFM.xml 中定義的。

注意

在 Windows 10 版本 1809 中,會新增IOT_CRASHCONTROL_SETTINGS功能以解決此自訂。

位置設定

從 Windows 10 IoTCore RS5 2019 年 11 月 「11 B」版本 (作業系統版本 17763.865) ,IoT Core 的位置服務預設會設定為「關閉」。 如果您是 OEM,而且想要開啟位置服務,請遵循下列步驟。 這僅適用于 IoT 核心版。

在登錄機碼下:

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 命令列選項

以下列出幾個主要功能

停用開機 UX 動畫

  1. 手動設定可以使用下列命令來完成
bcdedit -set {bootmgr} nobootuxprogress true
  1. 在檔案 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>
  1. 使用 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 標誌取代它。

啟用正式發行前小眾測試版簽署

  1. 您可以使用下列命令來完成手動設定:
bcdedit /set {bootmgr} flightsigning on
bcdedit /set flightsigning on
  1. 若要在影像中包含此設定,您可以將下列片段新增至 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>

執行時間自訂

除了上述的靜態自訂之外,您也可以在執行時間期間自訂。

  1. OEMCustomizations.cmd
  • 每個開機上的 IoTCore Shell 都會叫用此命令檔案,並具有系統許可權,並放在 c:\windows\system32
  • 您可以在此 Cmd 檔案中指定任何自訂動作,但建議將此動作保留為自訂的最後一個選擇
  • 在 iot-adk-addonkit 中,系統會針對產品目錄下的每個產品建立此檔案。 在 OEMInput xml 檔案中新增功能 識別碼CUSTOM_CMD ,以在映射中包含此功能。
  • 請參閱 Custom.Cmd 套件和 範例 oemcustomizations.cmd
  1. Customizations.xml
  • 這是用來建立布建套件的設定檔
  • 若要在開機時自動處理此布建套件,此套件會放在 c:\windows\provisioning\packages
  • 在 iot-adk-addonkit 中,系統會針對產品目錄下的每個產品建立此檔案。 在 OEMInput xml 檔案中新增功能 識別碼PROV_AUTO ,以在映射中包含此功能。
  • 請參閱 Provisioning.Auto 套件和 範例 Customizations.xml
  • 如需詳細資訊,請參閱:
  • 新增布建套件
  • 布建 IoT 核心版中支援的組態服務提供者 (CSP)