Plist Files
Post

Plist Files

Plist File

Plist files use an XML format and can be stored in plaintext ASCII or as a proprietary packed file format intended to reduce the file size. These binary files require the use of a supporting editing tool to view the file contents, such as the plutil command line utility on macOS/Linux/iOS or the plist Editor for Windows.

Plist Editor (Windows)

You can download Windows Plist Editor

plutil (Linux)

Installation for Linux:

1
apt-get install plutil

Embedded Plist Data

Plist files can store any data and are often used to store embedded plist data within a plist file. This embedded plist data in a plist file can store even more plist data, and so on. Plist viewers including XCode on macOS and Plist Editor for Windows do not interpret embedded plist data, typically displaying binary content in base64 encoded format.

The plistsubtractor tool is used to extract embedded plist data from a plist file, regardless of how deep the plist data is stored. This Python script takes one or more plist files as command line arguments and extracts any embedded plist data in the plist file. The new file is also parsed to determine whether it has any embedded plist data, writing the new data out as a file if it exists.

1
2
3
4
5
6
7
8
9
$ ls com.apple.nano.plist
com.apple.nano.plist

$ plistsubtractor.py com.apple.nano.plist
Writing com.apple.nano-dndEffectiveOverrides.plist

$ Is -1 com.apple.nano*
-rw-r—r— 1 jwright staff 764 Dec 26 19:35 com.apple.nanodndEffectiveOverrides.plist
-rw-r—r— 1 jwright staff 1046 Dec 26 16:21 com.apple.nano.plist

Plistsubtractor is available at Github-Plistsubstractor.