packageutil.exe

PackageUtil inspects, compares, and extracts content from XVC, MSIXVC, and MSIXVC2 package files.

packageutil <command> [options]

Global options

Option Description
/v Enables verbose output to the console.
/?, /h Shows help and usage information.

Commands

  • info - Displays package metadata.
  • compare - Compares two packages and reports differences.
  • license - Displays signing key information.
  • osinfo - Displays game OS information.
  • chunkinfo - Displays chunk details.
  • fileinfo - Displays file details.
  • extract - Extracts files from a package.
  • set - Changes a PackageUtil setting.

info

Provides package information, including the version number, ContentID, ProductID, GameOS version, and encryption key IDs.

packageutil info <packagefile>

Arguments

Argument Description
<packagefile> Specifies the package file to examine.

compare

Compares a base package with an updated package and reports the differences, including update size and changed segments.

packageutil compare <basepackagefile> <updatedpackagefile> [options]

Arguments

Argument Description
<basepackagefile> Specifies the base package for the update comparison.
<updatedpackagefile> Specifies the updated package for the comparison.

Options

Option Description
/quiet Prints only summary information.
/out <out> Specifies the output directory for comparison reports.
/keys <keys> Specifies a folder that contains keys to load.
/boxes <boxes> Specifies a folder or base URL that contains boxes to load.

PackageUtil produces .html and .json comparison reports that include an estimated update download size. Compare two versions of a game packaged in the same format.

For XVC and original MSIXVC, both packages must use /lk encryption or the default encryption mode. Don't use /l, because comparison results aren't accurate for packages that use a unique content license. These encryption-mode requirements don't apply to packages created with /msixvc2.

For MSIXVC2, makepkg pack /priorpackage is a shortcut that writes the comparison reports after building the new package. It doesn't change the package or packaging behavior, and you don't need to run packageutil compare again. See Measure PC content updates.

license

Displays information about the signing key used on a package. It can also check whether an EKB file matches the package.

The command reports one of the following values:

  • Submission signed (/l) - only for submission to Partner Center.
  • Test signed (/lt) - sideload enabled and insecurely encrypted.

Note

Currently, packageutil license reports /lk-signed packages as /l-signed packages.

packageutil license <packagefile> [<ekbfile>]

Arguments

Argument Description
<packagefile> Specifies the package file to examine.
<ekbfile> Optionally specifies an EKB file to check against the package. Before certification, use this check to ensure that you're providing the EKB file associated with the package being certified.

osinfo

Provides information about a game OS, including its GUID and four-part version number.

packageutil osinfo <gameos>

Arguments

Argument Description
<gameos> Specifies the game OS file to examine.

chunkinfo

Provides information about the chunks in a package, including chunk ID, chunk size, and Intelligent Delivery specifiers.

packageutil chunkinfo <packagefile>

Arguments

Argument Description
<packagefile> Specifies the package file to examine.

Options

Option Description
/json <json> Specifies the output path for a JSON report.

fileinfo

Provides information about files in a package, including file names, sizes, and segment details.

packageutil fileinfo <packagefile> [options]

Arguments

Argument Description
<packagefile> Specifies the package file to examine.

Options

Option Description
/json <json> Specifies the output path for a JSON report.
/keys <keys> Specifies a folder that contains keys to load.
/boxes <boxes> Specifies a folder or base URL that contains boxes to load.

extract

Extracts one or more files from a package to an output directory.

Note

Extract is supported only for MSIXVC2 packages.

Note

The extract command supports only unencrypted packages. For example, it can't extract content from an encrypted package file on the XBOX CDN.

packageutil extract /pd <packagefile> /out <outputdir> [options]

Options

Option Description
/pd <packagefile> Specifies the package file or a directory that contains a single package file.
/file <file> Specifies one file to extract. If omitted, all files are extracted.
/out <out> (Required) Specifies the output directory.
/keys <keys> Specifies a folder that contains keys to load.
/boxes <boxes> Specifies a folder or base URL that contains boxes to load.

Sample usage:

packageutil extract /pd MyGame.msixvc /out extracted_files

set

Changes a PackageUtil setting. Use set msixvc2 to turn MSIXVC2 developer mode on or off on the current device.

packageutil set msixvc2 <on|off>

Run this command from an elevated command prompt.

JSON output for middleware and custom tooling

When you run compare, PackageUtil creates a JSON companion file with the HTML report. Middleware, engines, and custom tools can use this file to inspect the package layout, locate files in the package binary, verify alignment, or extract structural information without unpacking the package.

The fileinfo command also produces structured output suitable for machine processing.

The JSON output uses abbreviated field names to keep the file size small.

Abbreviated name Full name Description
O Offset The byte offset of a data segment in the package file.
L Length The length of a data segment in bytes.

PC packaging improvements
Make package (makepkg.exe)
Package and upload a PC game