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 將無法運作。
手動驗證設定
- 使用必要設定撰寫
settings.json
檔案 - 使用 SSH或使用Powershell () 連線到 IoT 裝置,並將檔案連同所有圖形資產放在
settings.json
目錄中,例如C:\Data\oobe
- 使用 設定裝置以允許從所有 appx 檔案存取此目錄
folderpermissions C:\Data\oobe -e
- 使用 啟動 OOBE 應用程式
iotstartup add headed IoTUAPOOBE
- 驗證使用者介面
將設定新增至 IoT 核心版映射
使用 Custom.OOBEApp 套件並修改套件 xml 檔案以新增圖形化資產
將 settings.json 和圖形化資產複製到該套件資料夾。
在 oemcustomizations.cmd 檔案中,新增
folderpermissions C:\Data\oobe -e
,以確保在系統開機時呼叫此功能。在 OEMInput.xml 中包含功能識別碼 CUSTOM_OOBEAPP,請注意,這是在 OEMCOMMONFM.xml 中定義的。
當機設定
針對 IoT 核心產品,建議您將裝置設定為在當機時重新開機,同時隱藏 BSOD) (損毀傾印畫面。 這可透過設定下列登錄機碼來達成:
HKLM\SYSTEM\CurrentControlSet\Control\CrashControl AutoReboot 設定為 1 DisplayDisabled 設定為 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
- 請參閱 從鍵盤強制系統當機 ,並設定按鍵以強制系統當機。
- 使用設定的金鑰強制系統當機,並確認裝置會自動重新開機,且不會顯示損毀傾印畫面。
將設定新增至 IoT 核心版映射
- 使用 Custom.Settings 套件
- 在 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 動畫
- 手動設定可以使用下列命令來完成
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 Shell 都會叫用此命令檔案,並具有系統許可權,並放在
c:\windows\system32
- 您可以在此 Cmd 檔案中指定任何自訂動作,但建議將此動作保留為自訂的最後一個選擇
- 在 iot-adk-addonkit 中,系統會針對產品目錄下的每個產品建立此檔案。 在 OEMInput xml 檔案中新增功能 識別碼CUSTOM_CMD ,以在映射中包含此功能。
- 請參閱 Custom.Cmd 套件和 範例 oemcustomizations.cmd
Customizations.xml
- 這是用來建立布建套件的設定檔
- 若要在開機時自動處理此布建套件,此套件會放在
c:\windows\provisioning\packages
- 在 iot-adk-addonkit 中,系統會針對產品目錄下的每個產品建立此檔案。 在 OEMInput xml 檔案中新增功能 識別碼PROV_AUTO ,以在映射中包含此功能。
- 請參閱 Provisioning.Auto 套件和 範例 Customizations.xml
- 如需詳細資訊,請參閱:
- 新增布建套件
- 布建 IoT 核心版中支援的組態服務提供者 (CSP)