PrefEdit contains a browser for macOS preference manifest files which allows you to decode the complete contents of a manifest in a user-friendly way. It is not necessary to work with the XML code or the raw property list of the manifest.
As mentioned in the introduction, manifest files are usually part of application bundles, so you cannot use the standard methods to navigate to a file. To open a manifest, it is recommended to use the following method:
Select the application whose manifest you like to open in the Finder, then right-click on the application’s icon and select the item Show Package Contents in the context menu.
In the new window displaying the contents of the package, open the folder Contents, then its subfolder Resources.
Double-click the manifest file or drag it onto the icon of PrefEdit. The latter is preferred it the manifest is actually a folder with multi-lingual resources.
If you know the POSIX path of a manifest file in advance, you can also use the following alternative:
In PrefEdit, select the menu item File > Open, or press the key combination ⌘ + O.
In the Open panel, press the key combination ⌘ + ⇧ + G to open the sheet Go to the folder.
Enter the path of the manifest file into the field, then continue with the instructions above for opening an application package.
PrefEdit will open a new document window which displays the decoded contents of the manifest. The window contains the following elements:
The title and subtitle of the manifest.
The name of the default preference domain the manifest is associated with.
The version number of the manifest and the version number of its file format.
A list of all entries, called Manifest Keys in this context. The keys are listed in a table with the following columns:
Domain: The preference domain name this entry is associated with. This domain specification could be different from the default domain in case the manifest can be applied to multiple domains.
Key: The name of the preference setting this entry is associated with.
Title: A short clear-text description of the meaning of the preference setting.
After selecting a manifest key in the table, the lower part of the window will display detail information about the key and its preference setting:
Title and a text description of the preference setting.
Preference domain and the preference key (name) of the preference setting.
Data type for the value of the preference setting.
The default value for this setting.
Allowed value range of the value.
The so-called repetition range. It specifies how often items for this preference setting can be repeated when the value has the type Array.
Version number of Apple’s MCX management technology this entry should be used with.
Information, on which events MCX should activate the predefined management settings, depending on what options the network administrator has selected via the Workgroup Manager application. A setting can be defined to either be applied once/often or always. This will cause MCX to overwrite user preferences during login, or on startup and logout.
Preference settings support several data types for values, as discussed before. For two particular aspects, preference manifests can be more specific in describing what data type to expect:
URL describes a value of the type String which must hold a valid Universal Resource Locator, for example an HTTP Internet link.
Alias describes a value of the type Binary Data which must hold a byte sequence representing macOS’s internal form to store references to file system objects.
If specified, the allowed value range for a preference setting is either noted as an interval, for example 2 … 5 (meaning that the values 2, 3, 4, 5 are allowed), or it is shown as a pop-up menu listing all permitted values line by line. You can open the pop-up menu to view the complete list. Note that selecting any of the values has no effect.
Union Policy Keys (UPKs)
PrefEdit can also decode entries of preference manifests which are not directly related to preference settings, but which describe a policy the MCX technology should use when overriding settings which must be merged with settings already present. Such manifest entries are called Union Policy Keys or UPKs.
A union policy is used by MCX to combine values of already present settings to produce a new setting when the management actions takes place. There can be one or more input settings whose names are listed as input keys, and one single output setting, merging the values either into an array or a dictionary.
In case a manifest entry represents a union policy, a button Show Union Policy will appear instead of the default value for a setting. Pressing this button will open a detail sheet which describes the policy:
Input keys list the names of the settings which should be taken as input for the merge operation.
Output key refers to the name of the setting which is used as target for the result of the merge operation.
Output type indicates whether the output setting is an array or a dictionary.
Options define additional rules:
Replace output means that the present value of the output setting should be overwritten completely.
Remove duplicates means that values with the same contents should be removed, so that only one single instance of each affected value remains as result of the merge operation.