В операционной системе Mac OS X в последнее время очень часто встречаются конфигурационные файлы формата *.plist или *.strings сконвертированные в бинарный формат. При помощи обычных текстовых редакторов такой файл не открыть – показываются непонятные «кракозябры». О редактировании я вообще промолчу. Так всё же, можно ли нормально открыть бинарный PLIST или STRINGS? – Можно!
Для того, чтоб из бинарного формата получить структурированный и читабельный вид, бинарный файл для начала нужно переконвертировать в какой-либо формат, например в XML или JSON. И в этом ой как помогает маленькая утилита – plutil. Работает это так… Запускаем Терминал и натравливаем на бинарный *.plist или *.strings утилиту plutil с необходимыми параметрами. Например, для конвертирования бинарного файла в XML команда будет выглядеть следующим образом:
sudo plutil -convert xml1 "/System/Library/Extensions/Some.kext/SystemFile.plist"
Для конвертирования в JSON:
sudo plutil -convert json "/System/Library/Extensions/Some.kext/SystemFile.plist"
Обратите внимание, что синим выделен формат, а зелёным – путь к файлу. Переконвертированный файл теперь можно легко отредактировать в любом текстовом редакторе. После правки файла его можно обратно конвертануть в бинарик. Для этого используется следующая команда:
sudo plutil -convert binary1 "/System/Library/Extensions/Some.kext/SystemFile.plist"
Хочу обратить внимание на то, что консольной утилиты plutil может не быть по-умолчанию в ОС, поэтому, возможно, придётся установить пакет для разработчика Xcode в комплекте которого она присутствует.
Разве нельзя прочитать plist через: defaults read com.xxxx.yyyy ?
Можно, но есть множество других сценариев, когда .plist нужно править именно в текстовом редакторе. И тут без преобразования никак.