PC package encryption and content protection

The /msixvc2 option changes how PC package content is protected for distribution without changing your game's file-access APIs. This article distinguishes three stages: protection of the package you upload, encryption for distribution, and protection of installed files.

Overview

For packages built with /msixvc2, the XBOX service encrypts content at the segment level for distribution. A segment is a unit of file data, not an installation chunk defined in your layout file.

The protection depends on the stage:

  • Upload. The /l and /lk package-encryption options apply to XVC and original MSIXVC, not to /msixvc2. See Upload encryption.
  • Distribution. Package content is encrypted on the content distribution network (CDN) and during delivery to the player's device.
  • Installed game data. Game data files are stored unencrypted on NTFS and can be read through normal file-access APIs.
  • Installed executables. Executables designated in MicrosoftGame.config remain encrypted. They can be launched, but can't be read as ordinary data files.

This installed-file behavior is consistent with Flat File Install for original MSIXVC. The /msixvc2 option installs flat files natively, without the separate extraction step.

Per-segment encryption

Original MSIXVC applies encryption across large contiguous regions. With /msixvc2, segments are processed independently rather than as a single encrypted package region. You don't need to reserve encryption fragments with /maxencryptionfragments.

Comparison with MSIXVC encryption

Aspect MSIXVC MSIXVC2
Encryption scope Large contiguous regions Per-segment
Installed PC game data Unencrypted after Flat File Install Unencrypted natively
Installed designated executables Remain encrypted Remain encrypted
CDN encryption Yes Yes
In-transit encryption Yes Yes
Package decryption for game data reads None after Flat File Install None

This table describes PC packages. XBOX console games use XVC, and their installed content remains encrypted.

Impact on IO performance

Reads of installed game data don't require package decryption. Your game continues to use DirectStorage and standard Win32 file reads against NTFS files. This statement applies to game data, not to the protected executables described above.

Upload encryption

The /l and /lk modes protect XVC and original MSIXVC packages for upload. With /msixvc2, the XBOX service applies encryption for distribution instead of using those client-side package-encryption modes.

For submission, include the package and its .ekb file when uploading. When using makepkg upload, keep the accompanying files in the package directory so the uploader includes them automatically. See Package and upload a PC game.

PC packaging improvements
Measure PC content updates
Overview of packaging
Flat File Install overview
Make package (makepkg.exe)