Как редактировать plist файл. Что такое расширение файла PLIST? Различные формы файлов PLIST

Как редактировать plist файл. Что такое расширение файла PLIST? Различные формы файлов PLIST

Основа стабильности любой операционной системы — это ограничение доступа к важным файлам , от которых зависит работа компьютера, или попросту «защита от дурака». В Mac OS X, как во всех остальных *nix-системах, эта защита реализована через права доступа, группы и владельцев объектов. Прочитать обо всём этом вы можете в о Терминале Mac OS X, а сегодня речь пойдёт не столько о защите, сколько о способах её преодоления.

Зачем это нужно? Рано или поздно любой пользователь Мака сталкивается с необходимостью что-нибудь отредактировать в настройках системы или отдельных программ. Ну а владельцы хакинтошей сталкиваются с этой необходимостью чуть ли не каждый день. Как же обойти хитрую систему присвоения прав доступа, чтобы что-нибудь поменять в системе исключительно ради благой цели?

Стандартным форматом настроек Mac OS X и программ для неё является PLIST. Это обычный текстовый файл, который по умолчанию откроется в текстовом редакторе TextEdit. Теперь представьте, что вы открыли такой файл, внесли все нужные изменения и теперь хотите сохранить его. Но не тут-то было! Вы увидите вот такую ошибку:

Вариант у вас только один — сохранить файл ещё где-нибудь. Но это очень и очень плохой вариант. Во-первых, вы потом не сможете скопировать этот файл в его исходную папку. Система просто не даст вам перезаписать имеющийся файл (и будет права). Ну а если вы удалите старый файл и только затем скопируете в ту же папку отредактированную копию, то она скопируется, но будут нарушены права доступа. А это грозит вам самыми загадочными и непредсказуемыми глюками.

Именно поэтому мы рассмотрим несколько других вариантов.

1) Редактирование через Терминал

Терминал даёт пользователю возможность выполнять действия от имени корневого администратора. А это означает, что вам будет подвластен каждый файл компьютера. Надеемся, нет смысла предупреждать вас об опасности наличия такой власти;)

В самом Терминале есть несколько встроенных средств редактирования, например, команды nano и vi . Воспользоваться ими проще простого. Сначала нужно приобрести права root-администратора. Введите команду:

Затем вслепую введите пароль и нажмите Enter.

А теперь достаточно ввести:

nano путь к файлу

Например:

nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

Или можно ввести nano и пробел, а потом перетащить редактируемый файл в окно Терминала. Останется нажать Enter. Работа с командой vi осуществляется точно так же.

Но редактировать файл в таком режиме — удовольствие не из приятных. Судите сами: никакого управления мышью тут не предвидится, и даже курсор придётся передвигать с клавиатуры.

Полезный совет: чтобы выйти из nano, закройте Терминал или нажмите на клавиатуре Ctrl+X.

2) Запуск текстового редактора с правами администратора

Второй способ более элегантен. Он позволит вам пользоваться обычными программами Mac OS X для правки текста, но запущенными от имени администратора. В этом случае никаких ошибок с правами доступа не возникнет.

Запустите Терминал, введите sudo -s и пароль. Затем нужно будет ввести громоздкую конструкцию типа:

/Applications/TextEdit.app/Contents/MacOS/TextEdit

Заметьте: через Терминал нужно запускать не саму программу (т.е. файл TextEdit.app), а её бинарник, упрятанный внутри программы, в подпапке Contents/MacOS .

После этого TextEdit отлично сможет работать с любыми файлами, но только до первого закрытия программы.

3) Сторонние специализированные программы

Не можем не порекомендовать текстовый редактор . Это продвинутая версия TextMate, которая делалась в расчёте на программистов, но будет полезна на каждом Маке (а на хакинтоше тем более). К вашим услугам — наглядное форматирование текста, работа с самыми разными кодировками и главное — поддержка работы с защищёнными файлами без дополнительных махинаций в Терминале.

При сохранении защищённого файла TextMate предложит вам ввести пароль, и без проблем сохранит все изменения.

Впрочем, цена — явно не достоинство TextMate. После окончания 30-дневного триала с вас попросят 39 евро . Разработчики оправдываются, указывая на огромное количество встроенных модулей по обработке разных скриптов и языков программирования:

Только вот зачем они рядовому пользователю? Если же цена вас не отпугивает, то можете скачать TextMate по ссылке ниже.

Самой частой причиной проблем с раскрытием файла PLIST является просто отсутствие соответствующих приложений, установленных на Вашем компьютере. В таком случае достаточно найти, скачать и установить приложение, обслуживающее файлы в формате PLIST - такие программы доступны ниже.

Поисковая система

Введите расширение файла

Помощь

Подсказка

Необходимо учесть, что некоторые закодированные данные из файлов, которые наш компьютер не читает, иногда можно просмотреть в Блокноте. Таким образом мы прочитаем фрагменты текста или числа - Стоит проверить, действует ли этот метод также в случае файлов PLIST.

Что сделать, если приложение со списка уже было установлено?

Часто установленное приложение должно автоматически связаться с файлом PLIST. Если это не произошло, то файл PLIST успешно можно связать вручную с ново установленным приложением. Достаточно нажать правой кнопкой мышки на файл PLIST, а затем среди доступных выбрать опцию "Выбрать программу по умолчанию". Затем необходимо выбрать опцию "Просмотреть" и отыскать избранное приложение. Введенные изменения необходимо утвердить с помощью опции "OK".

Программы, открывающие файл PLIST

Mac OS

Почему я не могу открыть файл PLIST?

Проблемы с файлами PLIST могут иметь также другую почву. Иногда даже установление на компьютере программного обеспечения, обслуживающего файлы PLIST не решит проблему. Причиной невозможности открытия, а также работы с файлом PLIST может быть также:

Несоответственные связи файла PLIST в записях реестра
- повреждение файла PLIST, который мы открываем
- инфицирование файла PLIST (вирусы)
- слишком маленький ресурс компьютера
- неактуальные драйверы
- устранение расширения PLIST из реестра системы Windows
- незавершенная установка программы, обслуживающей расширение PLIST

Устранение этих проблем должно привести к свободному открытию и работе с файлами PLIST. В случае, если компьютер по-прежнему имеет проблемы с файлами, необходимо воспользоваться помощью эксперта, который установит точную причину.

Мой компьютер не показывает расширений файлов, что сделать?

В стандартных установках системы Windows пользователь компьютера не видит расширения файлов PLIST. Это успешно можно изменить в настройках. Достаточно войти в "Панель управления" и выбрать "Вид и персонализация". Затем необходимо войти в "Опции папок", и открыть "Вид". В закладке "Вид" находится опция "Укрыть расширения известных типов файлов" - необходимо выбрать эту опцию и подтвердить операцию нажатием кнопки "OK". В этот момент расширения всех файлов, в том числе PLIST должны появится сортированные по названию файла.

Файлы PLIST разбросаны по всему вашему Mac, но вполне возможно, что вы никогда их не увидите. Это плохо, так как файлы PLIST, по сути, предоставляют один из наиболее прямых путей к хакингу. Изучив рекомендации, приведенные в данном рецепте, вы овладеете всей мощью этих файлов.

PLIST - это сокращение от «property list» (список свойств), и редактирование файлов с этим расширением имени представляет собой основной метод модификации Mac OS X (а также некоторых других операционных систем). С помощью этого метода вы можете организовать данные таким образом, чтобы к ним могли получать доступ программы, и при этом они структурированы так, что при необходимости пользователи могут создавать собственные файлы этого типа. Это краткое описание, разумеется, практически ничего не говорит, но детальное описание файлов PLIST - это сложная и трудоемкая задача. Если вы действительно заинтересованы в функциональных возможностях файлов PLIST, внимательно изучите следующую документацию: http://developer.apple.com/documentation/Darwin/Reference/Manpages/man_/plist._.html или запустите программу Terminal и введите следующую команду: man plist.При настройке компьютера в соответствии с вашими личными потребностями, наиболее часто приходится настраивать файлы PLIST, в которых хранятся значения по умолчанию для настроек различных программ - от стандартных цветов до реакции программ на те или иные действия. Как правило, эти файлы находятся в папке Library/Preferences вашего домашнего каталога. В большинстве случаев модификация этих файлов безвредна, и при этом позволяет разблокировать довольно неожиданные функциональные возможности. Если вы случайно повредите файл при редактировании, вы можете просто переместить его в Корзину, и при следующем запуске приложения взамен удаленного файла будет сгенерирован новый. Разумеется, при этом вы потеряете все индивидуальные настройки, созданные для этой программы, поэтому лучший способ (как и во всех случаях хакинга, при возможности) заключается в том, чтобы создать резервную копию этого файла с целью последующего восстановления в случае неполадок.


Существует множество способов доступа к файлам PLIST. Наиболее быстрый из них - из программы Terminal с помощью команды default. Рассмотрим простой пример. Некоторые программы можно настроить таким образом, чтобы они отображали меню Debug (большинство пользователей, активно работающих с приложением iCal, знают, насколько полезным может быть это меню). Давайте рассмотрим, каким образом можно настроить iCal таким образом, чтобы добавить в строку меню команду Debug:

  1. При необходимости закройте приложение iCal.
  2. Запустите программу Terminal (Applications/Utilities/Terminal).
  3. Когда на экране появится приглашение к вводу (символ $), введите следующую команду: defaults write com.apple.iCal IncludeDebugMenu
  4. Перезапустите приложение iCal.

После появления окна приложения вы увидите, что в нем появилось новое меню Debug (рис. 1.15).


Приложение Terminal предоставляет великолепные возможности, когда вы знаете, что именно следует поменять. Однако если вы этого не знаете и лишь стремитесь узнать, какие настройки следует изменить, оно уже не будет столь полезным. Для этой цели вам понадобится список свойств (property list). Как было упомянуто в начале этого раздела, обычно большинство файлов PLIST находятся в папке Library в вашем домашнем каталоге. Для файла PLIST, содержащего настройки iCal, путь будет выглядеть следующим образом: ~/Library/Preferences/com.apple.ical.plist. Как только вы обнаружите нужный файл, откройте его редактором списков свойств (Property List Editor). Как было рассказано , этот редактор входит в состав Xcode Tools и устанавливается в папке /Developer/Applications. Кроме того, вы можете просто выполнить двойной щелчок мышью на нужном файле, и он будет открыт для редактирования (рис. 1.16).


После того как файл будет открыт, вы сможете отредактировать любую из его строк. Большинство строк не имеют большого практического значения, но некоторые из них имеют явно выраженный смысл и позволяют редактировать функциональные возможности приложения. Например, изменение числового значения в строке delete todos after с 30 на 60 приведет к тому, что задачи, принятые к исполнению, будут храниться в течение 60 дней.

Итак, теперь вы вооружены командной строкой и программой, позволяющей редактировать файлы PLIST, экспериментируя с их настройками. Кроме того, файлы PLIST можно редактировать и обычным текстовым редактором. В версиях Mac OS X, более ранних, чем Tiger, файлы PLIST можно было непосредственно открывать текстовыми редакторами, но теперь эти файлы хранятся в двоичном формате. Чтобы открыть файл PLIST текстовым редактором, вам потребуется предварительно преобразовать его. Какой из методов преобразования файлов PLIST является наиболее простым? На помощь снова придет приложение Terminal.

Файл PLIST приложения iCal уже достаточно хорошо изучен, так что теперь попробуем модифицировать закладки браузера Safari. Полный путь к файлу PLIST с настройками Safari выглядит так: ~/Library/Safari/Bookmarks.plist. Прежде всего, создадим его резервную копию (как и рекомендуется поступать в большинстве случаев). Для этого наведите на файл курсор мыши, щелкните правой кнопкой и из контекстного меню выберите команду Duplicate. Теперь выполните преобразование этого файла с помощью следующей командной строки: $ plutil -convert xml1 ~/Library/Safari/Bookmarks copy.plist

В данном случае команда plutil запускает процедуру преобразования списка свойств. Ключ -convert xml1 сообщает plutil о необходимости преобразовать файл PLIST в формат XML, а остальная часть командной сроки задает путь к преобразуемому файлу. После того как команда отработает, переместитесь в нужную папку в помощью Finder, наведите на нужный файл курсор мыши, щелкните правой кнопкой и выберите из контекстного меню команды Open With → Other, а затем выберите опцию Text Edit. Файл PLIST, преобразованный в формат XML, выглядит вполне удобочитаемым (рис. 1.17).

Разумеется, файлы PLIST заслуживают намного более тщательного изучения, но приведенный здесь необходимый минимум информации уже позволит вам начать их исследование и экспериментировать с настройками.

Консольная команда defaults , пожалуй, одна из самых привычных для простых мак-пользователей. Однако без должной сноровки это не самый удобный инструмент работы с plist-файлами. Куда проще этим заниматься с помощью привычной оконной программы PlistEdit Pro.

В сущности, эта утилита отдаленно напоминает редактор реестра в Windows. Правда, здесь древовидная структура отображается в таблице параметров, а значения редактируются по месту, а не во всплывающем окне. В остальном же очень схоже с «Регедитом» - свитчеры оценят. 🙂

Впрочем, самое главное достоинство PlistEditor Pro заключается в том, что она легко читает конфигурационные файлы Mac OS X, содержимое которых хранится не только в виде XML-кода (эти можно редактировать и в простом Text Edit), но и в бинарном формате. И в том, и в другом случае вы увидите в окне PlistEdit Pro понятную таблицу конкретных величин и их значений.

Примечательно, что конфигурационные файлы, которые вы хотите просмотреть или отредактировать, не нужно искать по месту их расположения. Вместо этого достаточно открыть окно Preference File Browser (то есть «обозреватель конфигурационных файлов») - и через несколько секунд вы увидите таблицу файлов, многие из которых будут привязаны к конкретным приложениям (собственно, параметры этих приложений и хранятся в соответствующих файлах). Если самостоятельный просмотр этой таблицы не помог определиться с тем, какой именно plist-файл вам нужен - воспользуйтесь поиском, который учитывает либо имя файла или программы, либо вхождение поискового запроса в содержимое искомого файла. Во втором случае можно настроить «поле зрения» поисковика: чтобы он учитывал только ключи, ключи и значения, только значения, логическое правило вхождения поисковой строки и т. д. То есть поиск файлов, мягко говоря, настраивается гибко.

Если необходимые конфигурационные данные хранятся в нестандартной папке, и вы знаете путь к ней - просто перетащите эту папку в окно «браузера». И чтобы больше не повторять эту процедуру, можно текущий список файлов сохранить, щелкнув на кнопке Save Browser . Сохраненные таким образом «браузеры» можно переименовывать или удалять за ненадобностью.


Медиатека iTunes хранится в том же XML-формате. Спрашивается, почему ее нельзя загрузить в PlistEdit Pro? Конечно, если знаешь, зачем это делать. 🙂

Создание новых ключей и узлов, задание значений, определение формата конфигурационного файла производится либо непосредственно в самой таблице содержимого открытого файла, либо посредством главного меню программы. И несмотря на свою невзрачность, PlistEdit Pro - очень удобный редактор. Освоить его - пара пустяков: видно, что разработчик ясно себе представлял процесс редактирования plist-файлов, и какая при этом ставится цель.

Главное же, чтобы вы понимали, что и зачем меняете, добавляете или удаляете. Это тем более важно, если учесть, что утилита пока не поддерживает новомодного системного механизма Versions, и быстренько восстановить незапоротую копию убитого файла будет проблематично. Так что будьте предельно внимательны.

Некоторые iOS-приложения проверяют версию операционной системы на устройстве. Недавно, во время тестирования одного приложения, я как раз и столкнулся с подобной проверкой. Если версия iOS была ниже 7.1, приложение не устанавливалось, и вываливалась ошибка.

В этой статье будут рассмотрены следующие темы:

  • Изменение версии iOS в файле SystemVersion.plist.
  • Изменение версии в plist-файле, находящимся в пакете приложения.
  • Использование утилиты «iOS-ssl-Kill switch» для обхода валидации сертификата.

Изменение версии iOS в файле SystemVersion.plist

Версия iOS может быть изменена (на джейлбрейковом устройстве) в два простых шага посредством изменения соответствующего значения в файле SystemVersion.plist:

  1. Подключаемся к джейлбрейковому устройству по протоколу SSH (или используем ifile, доступный в cydia) для просмотра содержимого системной директории.
  2. Изменяем значение "ProductVersion" в файле "/System/Library/CoreServices/SystemVersion.plist".

Рисунок 1: Содержимое файла SystemVersion.plist

Этот трюк позволяет изменить значение, отображаемое в разделе "Settings/General/about". Однако метод сработает лишь для тех приложений, которые проверяют версию в файле SystemVersion.plist. Если после изменения версии, приложение все равно отказывается работать, используйте второй метод.

Изменение версии в plist-файле, находящимся в пакете приложения

Второй метод, позволяющий изменить версию, состоит из трех простых шагов:

  1. Переименовываем файла ipa в.zip и распаковываем архив.
  2. Изменяем значение "minimum ios version" в файле info.plist, который обычно находится в папке \Payload\appname.app.
  3. Упаковываем архив и переименовываем его обратно в ipa. [Примечание: некоторые приложения проверяют значение "minimum ios version" в других plist-файлах, находящихся в пакете ].

Рисунок 2: Содержимое файла info.plist

После изменения plist-файлов нарушается подпись пакета. Для решения этой проблемы, необходимо зарегистрировать IPA при помощи утилиты из этой статьи .

Некоторые приложения проверяют версию iOS во время установки. Когда пользователь устанавливает приложение при помощи iTunes или xcode, используя IPA, происходит проверка версии iOS, запущенной на устройстве, и если версия ниже, чем требуется, появляется ошибка.

Рисунок 3: Ошибка, возникающая при установке приложения через xcode

Подобная проверка также обходится в несколько шагов:

  1. Переименовываем файл.ipa в.zip и извлекаем папку.app.
  2. Копируем папку.app туда, где установлены iOS приложения (/root/application) при помощи любого SFTP-клиента (например, WinSCP).
  3. Подключаемся к устройству через SSH, заходим в папку, где установлен IPA, а затем ставим права на запуск у папки.app (chmod -R 755 или chmod -R 777). Альтернативный способ - кликнуть правой кнопкой мыши на папке.app в WinSCP и изменить свойства директории, установив соответствующие права.
  4. После перезапуска iOS устройства приложение будет успешно установлено.

Рисунок 4: Установка новых прав для директории

Обход валидации сертификата

Некоторые приложения проверяют сертификат для предотвращения проксификации трафика при помощи утилит наподобие Burp. Обычно в бинарном файле приложения намертво зашит клиентский сертификат. Сервер проверяет этот сертификат, и если валидация заканчивается неудачно, возникает ошибка. Более подробно об этом можно почитать в другой моей статье в соавторстве со Стивом Керном.

Иногда бывает трудно извлечь сертификат из приложения и установить его внутрь прокси. Альтернатива – использовать утилиту ios-ssl-kill-switch. ios-ssl-kill-switch цепляется к Secure Transport API (самый низкий уровень) и отключает проверку сертификата. Большинство проверок используют NSURLConnection на более высоком уровне. Больше подробностей можно узнать .

Проверка сертификата обходится в несколько шагов:

  1. Устанавливаем утилиту kill-ssl-switch .
  2. Все зависимые пакеты должны быть установлены заранее.
  3. Перезапускаем устройство или перезапустите SpringBoard при помощи следующей команды "killall -HUP SpringBoard".
  4. Устанавливаем опцию Disable Certificate Validation в разделе "Settings/SSL Kill Switch".
  5. Перезапускаем приложение, после чего трафик должен перехватываться успешно.

Привязка сертификата (Certificate pinning) обходится путем подцепления к API, выполняющего валидацию сертификата, и постоянного возвращения «истины» при проверке. Для решения этой задачи вполне подойдет фреймворк Mobilesubstrate. Существует несколько других полезных утилит для отключения привязки, например "Trustme" и "Snoop-it".

Рисунок 5: Отключение проверки сертификата в SSL Kill Switch