OEMInput file contents

An OEMInput.xml file contains the required and optional elements used to define a mobile image. The OS uses this file to determine the applications processor, build type, UI languages, default region format, resolution, and other properties to include in the image that will be generated.

This topic provides a full listing of the XML schema for the file.

Required elements in the OEMInput file

The following table describes the required elements in the OEMInput file.

Element Description

OEMInput

The root element for the OEMInput file.

Description

A string that describes the image. OEMs should add a description that is particular to the device the image is built for.

SOC

A string that identifies the SoC used on the device. The following values are currently supported:

Applications processor Supported SOC values

QC8974

  • QC8974: Creates an image without a crash dump partition. Use this value for Production images.

  • QC8974_Test: Creates an image with a crash dump partition that is more than 2 GB in size. Use this value when generating Test images for devices with more than 4 GB of storage.

QC8x26

  • QC8x26: Creates an image without any crash dump partitions. Use this value for production images.

  • QC8x26_Test: Creates an image with two dedicated crash dump partitions on eMMC. The combined size of the two partitions is 3.5 times the size of the total RAM memory on the phone. To create a test image that supports full dumps and offline dumps on a device with at least 8GB of eMMC, use this value and include the DEDICATEDUMPONEMMC feature.

  • QC8x26_UseSD_Test: Creates an image without dedicated partitions for storing crash dumps on devices with less than 8 GB of eMMC. To create full, kernel, or offline crash dumps, an SD card must be present and the feature DEDICATEDUMPONSD feature must be specified to redirect dumps to the SD card. The recommended SD card size for offline dumps is 16 or 32 GB. For more information about specifying debug features, see Optional features for building images.

To build a QC8x26 test image that supports full dumps and offline dumps on a device with less than 8GB of eMMC, use QC8x26_UseSD_Test. Include the DEDICATEDUMPONSD feature to redirect dumps to the SD card. The recommended SD card size for offline dumps is 16 or 32 GB.

To build a QC8x26 test image that supports full dumps and offline dumps on a device with at least 8GB of eMMC, use QC8x26_Test and include the DEDICATEDUMPONEMMC feature.

To build a QC8x26 retail or production image where full dumps and offline dumps are not enabled, use QC8x26.

QC8960

  • QC8960: Creates an image without a crash dump partition. Use this value for Production images.

  • QC8960_Test: Creates an image with a crash dump partition that is more than 2 GB in size. Use this value when generating Test images for phones with more than 4 GB of storage.

  • QC8960_Test_4gb: Creates an image with a crash dump partition that is approximately 600 MB in size, large enough to store a single crash dump for a device with 512 MB of RAM. Use this value when generating Test images for phones with only 4 GB of storage.

Important

The 8960 SOC options must only be used for images that are used to create updates for Windows 10 Mobile. For more information see Update.

Device

A string that identifies the device model the image is being built for. Use this setting to include packages marked with the corresponding Device attribute of the DeviceSpecificPackages and the OEMDevicePlatformPackages elements in the feature manifest file.

ReleaseType

A string that indicates the release type of the image. Use this setting to include packages marked with the corresponding ReleaseType attribute value of a ReleasePackages element in the feature manifest file. The following values are supported:

  • Production: This value indicates that all packages in the image are production signed, and the image only includes production packages (that is, packages where the ReleaseType attribute in the package XML is set to Production). In addition, all Microsoft-owned packages must be signed with a certificate issued by Microsoft. This value should only be used when generating the final retail image.

  • Test: This value indicates that the image can contain test-signed packages as well as production-signed packages, and the image contains a mixture of production and test packages (that is, packages where the ReleaseType attribute in the package XML is set to Test or Production). This value is used in production, test, health, and manufacturing images. For more information about the different image types, see Building a phone image using ImgGen.cmd.

BuildType

A string that specifies whether to use checked build or free packages when creating the image. To generate a checked build with debug code, specify chk. To generate a free build without debug code, specify fre.

SupportedLanguages

Contains the following child elements that specify the language support in the generated image:

  • UserInterface: A string that contains the language codes for the display languages to include in the image. If multiple language codes are listed, they must each be included in their own <language> block.

  • Keyboard: A string that contains the language codes for the keyboard languages to include in the image (that is, languages in which text correction and suggestions are supported). If multiple language codes are listed, they must each be included in their own <language> block.

  • Speech: A string that contains the language codes for the speech languages to include in the image. If multiple language codes are listed, they must each be included in their own <language> block.

BootUILanguage

A string that specifies the language code for the default display language to include in the image.

BootLocale

A string that specifies the language code for the default region format for the image.

Resolutions

Contains one Resolution element. The Resolution element contains a string that represents a display resolution supported by the image. The following values are supported: 480x800, 540x960, 720x1280, 768x1280, and 1080x1920. The build will include the corresponding resolution packages in the image for the specified resolution.

Note that some resolutions are supported only with certain applications processors.

Optional elements in the OEMInput file

The following table describes the optional elements that OEMs can include in the OEMInput file.

Element Description

SV

A string that identifies the manufacturer of the SoC used on the device. Use this setting to include packages marked with the corresponding SVPackages element in the feature manifest file.

Product

A string that specifies what OS variant to build. Specify the value Manufacturing OS to build an MMOS (Microsoft Manufacturing OS) image, which includes the minimal set of OS packages required by MMOS. To build a full OS image, omit this element.

For more information about building an MMOS image, see MMOS image definition.

FormatDPP

A string that indicates whether to include an empty formatted device provisioning partition (DPP) in the image. Specify the value true to generate an image that includes an empty formatted DPP. Specify the value false or omit this element to prevent the DPP from being overwritten.

ExcludePrereleaseFeatures

A string that indicates if features considered to be prerelease are excluded from the build. Specify the value true to generate an image that excludes the prerelease features, specify false to include them. Builds that are created with ExcludePrereleaseFeatures set to true, may be referred to as "limited" builds. If this entry is not included in the OEMInput file, the prerelease features will be included in the image.

When this option is set to true some replacement features may be present in the image. If there are no replacement features configured, then they will not be present in the build.

Features

Contains one or more child elements that specify the names of optional features to reference when building the image. Each feature corresponds to one or more packages that will be included in the image. In order to use a feature, the feature must be defined in a feature manifest that is listed under the AdditionalFMs element. For more information about features and feature manifests, see Building a phone image using ImgGen.cmd and Feature manifest file contents.

The Features element contains one or more of the following child elements:

  • Microsoft Contains one or more Feature elements that specify the names of optional Microsoft features to include in the image. For more info about Microsoft features, see Optional features for building images.

  • OEM Contains one or more Feature elements that specify the names of optional OEM features to include in the image. For more information about adding OEM features, see Feature manifest file contents.

AdditionalFMs

Contains one or more AdditionalFM elements. Each AdditionalFM element contains a string value that specifies the full path of a feature manifest file to reference when building the image.

Feature manifests define the set of packages that are automatically included in certain types of images, and they also define feature names that can be referenced under the Features element to include additional packages in the image. For more information about feature manifest files, see Feature manifest file contents.

PackageFiles

Contains a set of PackageFile elements that specify additional packages to include in the image.

Important

The PackageFiles element can only be used in pre-retail images such as Test and Health images. It is only intended to be used in scenarios you need to quickly add an ad-hoc package to a pre-retail image. In retail images, all packages must be referenced using a feature that is listed under the Features element or listed in a feature manifest that is referenced under the AdditionalFMs element. For more information about features and feature manifests, see Building a phone image using ImgGen.cmd and Feature manifest file contents.

Each PackageFile element contains a text value that specifies the path and name of a single package. If no additional packages are being added to the image, the PackageFiles element must be omitted from the file. The packages can be in any location on the development computer. An environment variable can be used in the path to each package in the PackageFile element.

XML schema for the OEMInput file

The OEMInput file is validated against the following XML schema. You can use this schema to validate the OEMInput XML files that you create. To do this in Visual Studio, first save this in a file with an XSD extension. In Visual Studio select XML > Schemas and select the file that you created. Any deviations in your XML from the schema will be highlighted. Hover over the highlighted items to see additional information.

<?xml version="1.0" encoding="utf-8"?>  
<xs:schema targetNamespace="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate" 
      elementFormDefault="qualified" 
      xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate" 
      xmlns:mstns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema">  
   <xs:element name="OEMInput">  
      <xs:complexType>  
         <xs:all>  
            <xs:element name="Product" type="xs:string" minOccurs="0" maxOccurs="1"/>  
            <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />  
            <xs:element name="SV" type="xs:string" minOccurs="0" maxOccurs="1"/>  
            <xs:element name="SOC" type="xs:string" minOccurs="1" maxOccurs="1"/>  
            <xs:element name="Device" type="xs:string" minOccurs="1" maxOccurs="1"/>  

            <xs:element name="ReleaseType" minOccurs="1" maxOccurs="1">  
               <xs:simpleType>  
                  <xs:restriction base="xs:string">  
                     <xs:enumeration value="Test"/>  
                     <xs:enumeration value="Production"/>  
                  </xs:restriction>  
               </xs:simpleType>  
            </xs:element>  

            <xs:element name="BuildType" minOccurs="1" maxOccurs="1">  
               <xs:simpleType>  
                  <xs:restriction base="xs:string">  
                     <xs:enumeration value="fre"/>  
                     <xs:enumeration value="chk"/>  
                     <xs:enumeration value="%BUILDTYPE%"/> 
                  </xs:restriction>  
               </xs:simpleType>  
            </xs:element>  

            <xs:element name="FormatDPP" minOccurs="0" maxOccurs="1">  
               <xs:simpleType>  
                  <xs:restriction base="xs:string">  
                     <xs:enumeration value="true"/>  
                     <xs:enumeration value="false"/>  
                  </xs:restriction>  
               </xs:simpleType>  
            </xs:element>  

            <xs:element name="ExcludePrereleaseFeatures" minOccurs="0" maxOccurs="1">  
               <xs:simpleType>  
                  <xs:restriction base="xs:string">  
                     <xs:enumeration value="true"/>  
                     <xs:enumeration value="false"/>  
                  </xs:restriction>  
               </xs:simpleType>  
            </xs:element>  

            <xs:element name="OEMDevicePlatform" type="xs:string" minOccurs="0" maxOccurs="1"/>  

            <xs:element name="SupportedLanguages" minOccurs="1" maxOccurs="1">  
               <xs:complexType>  
                  <xs:all>  
                     <xs:element name="UserInterface" minOccurs="1" maxOccurs="1">  
                        <xs:complexType>  
                        <xs:sequence>  
                           <xs:element name="Language" type="xs:string" 
                              minOccurs="1" maxOccurs="unbounded" />  
                        </xs:sequence>  
                     </xs:complexType>  
                     </xs:element>  
                     <xs:element name="Keyboard" minOccurs="0" maxOccurs="1">  
                        <xs:complexType>  
                           <xs:sequence>  
                              <xs:element name="Language" type="xs:string" 
                                 minOccurs="1" maxOccurs="unbounded"/>  
                           </xs:sequence>  
                        </xs:complexType>  
                     </xs:element>  
                     <xs:element name="Speech" minOccurs="0" maxOccurs="1">  
                        <xs:complexType>  
                           <xs:sequence>  
                              <xs:element name="Language" type="xs:string" 
                                 minOccurs="1" maxOccurs="unbounded"/>  
                           </xs:sequence>  
                        </xs:complexType>  
                     </xs:element>  
                  </xs:all>  
               </xs:complexType>  
            </xs:element>  

            <xs:element name="BootUILanguage" type="xs:string" minOccurs="1" maxOccurs="1"/>  

            <xs:element name="BootLocale" type="xs:string" minOccurs="1" maxOccurs="1"/>  

            <xs:element name="Resolutions" minOccurs="0" maxOccurs="1">  
               <xs:complexType>  
                  <xs:sequence>  
                     <xs:element name="Resolution" type="xs:string" minOccurs="1" 
                        maxOccurs="unbounded"/>  
                  </xs:sequence>  
               </xs:complexType>  
            </xs:element>  

            <xs:element name="Features" minOccurs="0" maxOccurs="1">  
               <xs:complexType>  
                  <xs:sequence>  
                     <xs:element name="Microsoft" minOccurs="0" maxOccurs="1">  
                        <xs:complexType>  
                           <xs:sequence>  
                              <xs:element name="Feature" type="xs:string" 
                                 minOccurs="1" maxOccurs="unbounded"/>  
                           </xs:sequence>  
                        </xs:complexType>  
                     </xs:element>  
                     <xs:element name="OEM" minOccurs="0" maxOccurs="1">  
                        <xs:complexType>  
                           <xs:sequence>  
                              <xs:element name="Feature" type="xs:string" 
                                 minOccurs="1" maxOccurs="unbounded"/>  
                           </xs:sequence>  
                        </xs:complexType>  
                     </xs:element>  
                  </xs:sequence>  
               </xs:complexType>  
            </xs:element>  

            <xs:element name="AdditionalFMs" minOccurs="0" maxOccurs="1">  
               <xs:complexType>  
                  <xs:sequence>  
                     <xs:element name="AdditionalFM" type="xs:string" 
                        minOccurs="1" maxOccurs="unbounded"/>  
                  </xs:sequence>  
               </xs:complexType>  
            </xs:element>  
            <!-This element is only for use with Windows 8 Phone device update images -->       
            <xs:element name="UserStoreMapData" minOccurs="0" maxOccurs="1">  
               <xs:complexType>  
                  <xs:attribute name="SourceDir" type="xs:string" />  
                  <xs:attribute name="UserStoreDir" type="xs:string" />  
               </xs:complexType>  
            </xs:element>  

            <xs:element name="PackageFiles" minOccurs="0" maxOccurs="1">  
               <xs:complexType>  
                  <xs:sequence>  
                     <xs:element name="PackageFile" type="xs:string" 
                        minOccurs="1" maxOccurs="unbounded"/>  
                  </xs:sequence>  
               </xs:complexType>  
            </xs:element>  
         </xs:all>  
      </xs:complexType>  
   </xs:element>  
</xs:schema>

Building an image using ImgGen.cmd