Set device platform information

To prepare for building an image, OEMs must perform the following tasks to specify required information for the targeted device platform:

  • Set several device platform values in the SMBIOS system information structure on the devices.

  • Build a device platform package.

The engineering flashing tool set provided by Microsoft compares the values in the SMBIOS system information structure with corresponding values in the device platform package before flashing an image. This check helps to ensure that an image can be flashed to a particular device only if it was built for the corresponding device platform. It is recommended that the flashing tools that OEMs create for their manufacturing environments do the same verification. For more information, see Validating the device platform information before flashing an image to a device in this topic.

Note  

This topic describes prerequisites for building an image that can be flashed to a device. OEMs must set additional device platform information including partner names, version numbers, and device names before an image is finalized for retail devices.

 

Setting SMBIOS system information values

On each device platform, OEMs must ensure that the following values in the SMBIOS system information structure are set:

  • PhoneManufacturer

  • Family

  • Product Name

  • Version

These values may be set to defaults by the SoC vendor; OEMs must replace these with values for their device platform. OEMs may also need to set other SMBIOS values as specified by the SoC vendor. For more information about how to set or read these values, refer to documentation provided by the SoC vendor.

For more information about the expected sizes and data types for these values, refer to section 7.2 in the System Management BIOS (SMBIOS) Reference Specification (PDF).

Important  

The PhoneManufacturer setting must contain a code specified by Microsoft that corresponds to the OEM. This setting is used for targeting device updates, for connecting to the store-within-a-store in the Windows Store, and for Watson reports. The value must be a valid OEM ID. To get the valid OEM ID that applies to you, contact your Microsoft representative.

 

Creating the device platform package

The device platform package contains just one file: an XML file named OEMDevicePlatform.xml that includes information specific to the device platform for which the image is being built. Every image must include a device platform package. OEMs must specify the device platform package by using the OEMDevicePlatformPackages element in a FM file that is included in the image.

To create the device platform package, first create an OEMDevicePlatform.xml file that contains the device platform information in the required schema format. Then, create a package that includes this XML file.

Creating the XML file

The OEMDevicePlatform.xml file contains a single OEMDevicePlatform element with the following child elements.

Element Description

MinSectorCount

This value specifies the minimum sectors that are expected on a device store. The imaging tool uses this value to ensure that the content will fit on the device. The actual sector count may be more than this minimum. The sector size is 512 bytes, as defined in the device layout package provided by Microsoft.

DevicePlatformID

This is one of the following strings that consists of values from the SMBIOS system information structure concatenated together, with each value separated by a period (.):

  • PhoneManufacturer.Family.Product Name

  • PhoneManufacturer.Family.Product Name.Version

OEMs can choose whether or not to include the Version value in this string.

When device platform validation is enabled in the Microsoft flashing application, the values specified in this string will be compared with the corresponding values in the SMBIOS system information structure. For more information, see Use the flashing tools provided by Microsoft.

The device platform XML file can have only a DevicePlatformID or DevicePlatformIDs element, but not both.

DevicePlatformIDs

OEMs can set multiple device platform IDs using the following XML syntax, where each string has the same format as described for the DevicePlatformID element.

<DevicePlatformIDs>
   <ID>Contoso.ContosoPhoneFamily.Z101._012</ID>
   <ID>Contoso.ContosoPhoneFamily.Z101._013</ID>
   <ID>Contoso.ContosoPhoneFamily.Z102</ID>
</DevicePlatformIDs>

Device platform validation will succeed if any of the IDs match either the PhoneManufacturer.Family.Product.Version or the PhoneManufacturer.Family.Product specified.

The device platform XML file can have only a DevicePlatformID or DevicePlatformIDs element, but not both.

AdditionalMainOSFreeSectorsRequest

Optional. This value specifies the number of sectors to add to the pool of storage reserved by the OS for future updates. There is no guarantee that the sectors specified by using the AdditionalMainOSFreeSectorsRequest element will always be available for OEM-specific updates; the sectors are instead added to a single pool of storage that is reserved for all updates from Microsoft and OEMs.

MainOSRTCDataReservedSectors

Optional. This value specifies the number of sectors to add to the pool of storage reserved by the OS for use by runtime configuration data during backup and restore operations. Up to 100 MB can be reserved.

This following example demonstrates how to reserve 50 MB.

<MainOSRTCDataReservedSectors>102400</MainOSRTCDataReservedSectors>

CompressedPartitions

Optional. Use this element to enable CompactOS in your mobile image.

This element contains one or more child Name elements that specify which partitions to compress. Currently, the only supported partition is the Main OS partition, and the only supported value under this element is MainOS, as shown in the example below.

<CompressedPartitions>
  <Name>MainOS</Name>
</CompressedPartitions>
Important  The host computer where the image is created must be running Windows 10. You can also create the image on a host computer running Windows 8.1 or Windows Server 2012 R2 with KB3066427 installed.
 

 

The following example demonstrates an OEMDevicePlatform.xml file.

<?xml version="1.0" encoding="utf-8"?>
<OEMDevicePlatform xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
   xmlns="https://schemas.microsoft.com/embedded/2004/10/ImageUpdate">
   <MinSectorCount>20971520</MinSectorCount>
   <DevicePlatformID>Contoso.ContosoFamily.ContosoDevice.v1</DevicePlatformID>
   <AdditionalMainOSFreeSectorsRequest>204800</AdditionalMainOSFreeSectorsRequest>
</OEMDevicePlatform>

Creating the package

To create a package that includes the OEMDevicePlatform.xml file, follow the guidance in Creating packages. The following example demonstrates a device platform XML file that specifies a single device platform ID.

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="urn:Microsoft.WindowsPhone/PackageSchema.v8.00"
   Owner="OEMName" OwnerType="OEM" Component="OEMDevicePlatform" 
   ReleaseType="Production" Platform="DeviceName">
   <Components>
      <OSComponent>
         <Files>
            <File Source="OEMDevicePlatform.xml" DestinationDir="$(runtime.windows)\ImageUpdate" 
                  Name="OEMDevicePlatform.xml"/>
         </Files>
      </OSComponent>
   </Components>
</Package>

Note the following details concerning this example:

Including the device platform package in the image

After the device platform package is created, it must be specified using the OEMDevicePlatformPackages element in a feature manifest file. For more information, see Feature manifest file contents.

Validating the device platform information before flashing an image to a device

To help ensure that an image about to be flashed to a device was actually designed for that device, the flashing tool set created by OEMs should check the Manufacturer, Family, and Product Name SMBIOS system information structure values on the device and compare these values against the Manufacturer.Family.Product Name portion of the DevicePlatformID string in the device platform package. The flashing tool should proceed with the flashing process only if these values match. The flashing tool can optionally verify that the Version value also matches, but this is not required. For more information, see Developing custom OEM flashing tools.

By default, the device-side UEFI flashing application provided by Microsoft validates that the device platform information in SMBIOS matches the device platform information in the image. For more information, see Use the flashing tools provided by Microsoft.

When it is necessary to migrate a phone to a new set of device platform values, Microsoft recommends the following process:

  • Build a transition image that contains the new SMBIOS values but still references the old DevicePlatformID string in the device platform package.

  • Flash this image to the phone. This process overwrites the SMBIOS values on the phone with the new SMBIOS values.

  • In the image definition, update the DevicePlatformID string in the device platform package to match the new SMBIOS values. This enables the image to be flashed to the phone.

Developing custom OEM flashing tools

Use the flashing tools provided by Microsoft

 

 

Send comments about this topic to Microsoft