Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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. |
Related topics
PC packaging improvements
Make package (makepkg.exe)
Package and upload a PC game