OEM에 대한 OS 사용자 지정

OEM은 아래 지정된 방법을 사용하여 OS의 다양한 측면을 사용자 지정할 수 있습니다.

OOBE 앱

IoTCore에는 디바이스가 처음으로 부팅되면 실행되는 받은 편지함 OOBE 앱이 있습니다. 모든 프로비전 패키지가 백그라운드에서 처리되고 OEM 앱을 시작 앱으로 시작할 수 있을 때까지 표시됩니다.

이 OOBE 앱은 다음 특성을 가진 로 사용자 지정할 수 있습니다. settings.json

  • backgroundColor: 화면 배경색
  • background : 배경 이미지(jpg 파일)
  • progressRingVisible: 회전하는 점을 표시하거나 숨길 수 있습니다.
  • welcomeText: 화면 가운데에 큰 글꼴로 표시되는 텍스트
  • pleaseWaitText : 회전하는 점 아래에 표시되는 텍스트입니다.
  • animation: 애니메이션 gif는 여기에서 지정할 수 있습니다.
  • animationMargin: 애니메이션 gif의 위치
  • left , top , right, bottom

settings.json에서 참조되는 모든 파일은 settings.json 파일과 동일한 폴더에 있어야 합니다. 샘플 조각은 아래에 제공됩니다.

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

참고

settings.json 파일은 유니코드(UCS-2) 인코딩으로 인코딩해야 합니다. UTF-8은 작동하지 않습니다.

수동으로 설정 유효성 검사

  1. 필요한 settings.json 설정으로 파일 작성
  2. IoT디바이스(SSH 사용 또는 Powershell 사용)에커넥트 디렉터리의 모든 그래픽 자산과 함께 파일을 배치합니다.
  3. 를 사용하여 모든 appx 파일에서 이 디렉터리에 액세스할 수 있도록 디바이스를 구성합니다.
folderpermissions C:\Data\oobe -e
  1. 를 사용하여 OOBE 애플리케이션 시작
iotstartup add headed IoTUAPOOBE
  1. 사용자 인터페이스 확인

IoT Core 이미지에 설정 추가

  1. Custom.OOBEApp 패키지를 사용하고 패키지 xml 파일을 수정하여 그래픽 자산을 추가합니다.

  2. settings.json 및 그래픽 자산을 해당 패키지 폴더에 복사합니다.

  3. oemcustomizations.cmd 파일에서 를 추가하여 folderpermissions C:\Data\oobe -e 시스템 부팅 시 호출되도록 합니다.

  4. OEMInput.xml CUSTOM_OOBEAPP 기능 ID를포함합니다. 이 ID는 OEMCOMMONFM.xml 정의됩니다.

크래시 설정

IoT Core 제품의 경우 크래시 시 다시 부팅하고 BSOD(크래시 덤프 화면)도 숨기도록 디바이스를 구성하는 것이 좋습니다. 이렇게 하려면 다음 레지스트리 키를 설정합니다.

HKLM\SYSTEM\CurrentControlSet\Control\CrashControl AutoReboot가 1로 설정된 1 DisplayDisabled

수동으로 설정 유효성 검사

  1. IoT 디바이스(SSH 사용 또는Powershell 사용)에 커넥트 다음 레지스트리 키를 설정합니다.

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 Core 이미지에 설정 추가

  1. Custom.설정 패키지 사용
  2. OEMInput.xml CUSTOM_SETTINGS 기능 ID를포함합니다. 이 ID는 OEMCOMMONFM.xml 정의됩니다.

참고

Windows 10, 버전 1809 이 사용자 지정을 해결하기 위해 IOT_CRASHCONTROL_SETTINGS 기능이 추가됩니다.

위치 설정

Windows 10 IoTCore RS5 2019년 11월 11일 B ” 릴리스(OS 버전 17763.865) 이상부터 IoT Core에 대한 위치 서비스는 기본적으로 꺼짐으로 설정되도록 “ 구성됩니다. ” OEM이고 위치 서비스를 켜려면 아래 단계를 따르세요. 이는 IoT Core에만 적용됩니다.

레지스트리 키 아래에서 다음을 수행합니다.

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 패키지를 사용하여 이미지에 이 설정을 포함하고 OEMInput.xml 파일에 기능 ID CUSTOM_BCD 추가합니다.

BIOS 또는 UEFI에서 표시하는 부팅 로고를 바꾸는 방법에는 여러 가지가 있습니다. 한 가지 방법은 UEFI에 라이선스를 부여하거나 보드 제조업체 공급업체에 지불하여 UEFI 소스 코드를 직접 변경하는 것입니다. 또는 UEFI 구현이 서명된 로드 가능한 UEFI 드라이버를 지원하는 디바이스에는 부팅 로고를 대체하는 드라이버를 빌드하고 부팅 프로세스에서 https://github.com/Microsoft/MS_UEFI/tree/share/MsIoTSamples Windows 부팅 프로세스가 Windows 로고로 바꾸는 대신 로고를 그대로 두도록 부팅 로고에 BGRT 테이블을 제공하는 방법을 보여주는 샘플이 있습니다.

플라이트 서명 사용

  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 기능 ID를 추가하여 이미지에 포함합니다.
  • Custom.Cmd 패키지 및 샘플 oemcustomizations.cmd를 참조하세요.
  1. Customizations.xml
  • 프로비전 패키지를 만드는 데 사용되는 설정 파일입니다.
  • 부팅 시 이 프로비전 패키지를 자동으로 처리하려면 이 패키지가 에 배치됩니다. c:\windows\provisioning\packages
  • iot-adk-addonkit에서 이 파일은 제품 디렉터리 아래의 각 제품에 대해 만들어집니다. OEMInput xml 파일에 기능 ID PROV_AUTO 추가하여 이미지에 포함합니다.
  • Provisioning.Auto 패키지 및 샘플 Customizations.xml 참조하세요.
  • 자세한 내용은 다음을 참조하세요.
  • 프로비전 패키지 추가
  • IoT Core에서 지원되는 CSP(구성 서비스 공급자)에 대한 프로비저닝