Windows ADK IoT Core Add-ons: contents

The Windows 10 IoT Core ADK Add-Ons include OEM-specific tools to create images for your IoT Core devices with your apps, board support packages (BSPs), settings, drivers, and features.

This kit

  • makes IoT Core image creation process easy and simple
  • enables creation of multiple images/image variants easily
  • provides automation support for nightly builds

The IoT Core manufacturing guide walks you through building images with these tools.

Key XML definitions

  • Package definitions (*.wm.xml) : defines a component package
  • Provisioning definitions (customizations.xml) : source file for provisioning settings
  • Feature manifests (*FM.xml) : defines feature composition and feature IDs
  • Feature manifest List (*FMList.xml) : enumerates the FM files
  • Product definitions (*OEMInputFile.xml) : specifies the product composition with the Microsoft features and OEM features included in the product
Name Filename.ext ADK tool build command Output
Package *.wm.xml pkggen.exe New-IoTCabPackage (buildpkg) *.cab
Provisioning customizations.xml icd.exe New-IoTProvisioningPackage (buildppkg) *.ppkg
Feature manifest *FM.xml featuremerger.exe imageapp.exe - -
Feature manifest list *FMList.xml featuremerger.exe New-IoTFIPPackage (buildfm) MergerdFM/*FM.xml , *
Product *OEMInputFile.xml imageapp.exe New-IoTFFUImage (buildimage) *.ffu

Code Architecture

  • Root folder
    • IoTCorePShell.cmd: Launches the IoT Core Powershell
    • Version info, links to documentation
  • Scripts
    • This contains helper powershell scripts and sample build scripts.
  • Tools
  • Workspace
    • IoTWorkspace.xml
      • XML file containing the workspace configuration information such as supported architecture, security settings etc.
    • Build
      • This is the output directory where the build contents are stored. It starts as empty.
    • Common/Packages
      • Architecture independent, platform independent packages
      • OEMCommonFM.xml - feature manifest file that enumerates common packages and defines common features.
    • Source-<arch>
      • Packages
        • Architecture specific, platform independent packages
        • OEMFM.xml - the feature manifest file that enumerates arch specific packages and defines arch specific features.
        • OEMFMList.xml - enumeration of OEM FM files.
      • BSP
        • <bspname>/Packages
          • Architecture specific, platform specific packages
          • <bspname>FM.xml - feature manifest that enumerates the bsp packages and defines supported device layouts and features
          • <bspname>FMList.xml - enumeration of BSP FM files.
        • <bspname>/OemInputSamples
          • sample oeminput files demonstrating how to use the bsp, these files are used as templates in Add-IoTProduct (newproduct)
      • Products
        • architecture specific named products

Sample packages

Sample packages are provided in the iot-adk-addonkit that can be used as a reference or as is in your image, if it meets your needs. Few of such packages are listed here.

Common Packages

Package Name Description
Registry.Version Package containing registry settings with product and version information.
DeviceLayout.GPT4GB Package with GPT drive/partition layout for UEFI-based devices with 4GB drives.
DeviceLayout.GPT8GB-R Package with GPT drive/partition layout for UEFI-based devices with 8GB drives with recovery partition.
DeviceLayout.MBR4GB Package with MBR drive/partition layout for legacy BIOS-based devices with 4GB drives.
DeviceLayout.MBR8GB-R Package with MBR drive/partition layout for legacy BIOS-based devices with 8GB drives with recovery partition.

Applications and Services packages

Package Name Description
Appx.IoTCoreDefaultApp Foreground apps package containing IoTCoreDefaultApp, see description.
Appx.IoTOnboardingTask Background apps package containing IoTOnboardingTask, see description.
AzureDM.Services Service package contaiing Azure Device Management


Source files to create board support packages (BSPs).

Some BSPs are included in each folder as a start. You can create your own BSPs based on these packages.

Driver packages

Package Name Description
Drivers.GPIO Sample package for adding a driver.


Source file for product configurations. Use our samples (SampleA, SampleB) or create your own.

Product Description
SampleA Product with Microsoft provided features / apps
SampleB Product using OEM Apps and OEM drivers
SingleLangSample Product with single non english language support
MultiLangSample Product with multiple language support
SecureSample Product using security features
RecoverySample Product using recovery mechanism

IoT Core manufacturing guides

IoTCore Servicing

IoT Core feature list