Вы не являетесь владельцем файла config plist
Какое лучшее приложение для открытия и редактирования файла plist?
не я, но кто-то проголосовал за закрытие . Я думаю, что если вы просто измените свой вопрос, чтобы быть более конкретным в отношении того, что вы пытаетесь сделать, он не получит никаких "субъективных" голосов.
Это хороший вопрос. Несколько раз я хотел открыть файл .plist, но даже после загрузки приложения это выглядело (очень) сложно, поэтому я сдался.
Файл PList, как сказал Манкофф, - это просто специально отформатированный XML-файл, так что вы можете редактировать и создавать его в такой программе, как TextEdit.
Однако некоторые списки IIRC сжаты, что делает их недоступными в текстовом редакторе без предварительного декодирования. Инструменты Apple делают это автоматически и возвращаются снова.
Если только… ! Но нет, некоторые файлы .plist являются двоичными или что-то в этом роде, и TextEdit для них недостаточно.
Помните, что, в зависимости от конкретного случая использования, может существовать инструмент, более подходящий для работы, предназначенный для редактирования определенного типа файла plist. Например, вы можете использовать Apple Configurator для редактирования профилей iOS (расширение .mobileconfig) или Clover Configurator для редактирования загрузочных профилей Clover.
Если файл plist имеет формат XML, вы можете отредактировать его в любом текстовом редакторе, таком как TextEdit. Если файл plist находится в двоичном формате, вы можете сначала преобразовать его в XML, запустив:
Если вы хотите вернуться к двоичному формату после редактирования:
Если у вас Xcode 4.3 или новее, вы можете использовать его для редактирования списков свойств в графическом редакторе, например:
Xcode 4.2 и более ранние версии поставлялись с отдельным приложением для редактирования списков свойств ( /Developer/Applications/Utilities/Property List Editor.app/ ).
Как указано в этом решении, вполне возможно использовать plutil -convert json $file (или xml ), затем редактировать файл в любом редакторе (например vi ) и, наконец, конвертировать его обратно plutil -convert binary1 $file .
plutil -p
Это более полный ответ, и он должен быть принятым. Например, вы не можете напрямую редактировать ~ / Library / Preferences / .GlobalPreferences.plist без конвертации.
Хорошая программа, такая как TextWrangler, может редактировать двоичные .plist файлы без предварительной конвертации их с помощью Terminal. Просто откройте файл, как любой другой файл (например, перетащите и отпустите значок программы, или диалоговое окно «Открыть файл», или «Открыть с помощью в Finder» или . )
Поскольку Apple избавилась от редактора списка свойств GUI, Xcode - лучший бесплатный вариант, если вы хотите быть уверены в результате.
Есть некоторые ошибки, которые используют редактор общего кода для редактирования plist-файлов. Так как словари используют записи типа
Вы можете создать действительный файл XML, который не является допустимым файлом plist, например:
Если вы готовы начать коммерческую деятельность, Plistinator отредактирует как двоичные, так и XML-файлы plist.
Полное раскрытие: я являюсь автором Plistinator, и его стоимость составляет 12,99 доллара, что платит за мой рамен и арендную плату.
Xcode лучше, чем Plistinator на Mac - пользовательский интерфейс лучше, и его канонически Apple. Это может быть проблемой, так как вам нужно установить весь XCode только для того, чтобы получить инструмент для редактирования. Plistinator выполняет поиск / сканирование каталогов, а также имеет большое поле редактирования для ввода текста произвольной формы в значения. Эти функции делают Plistinator превосходным решением для таких задач, как приложения и игры, управляемые данными. Но для большинства рабочих мест редактор Xcode лучше.
В окне терминала вы можете использовать PlistBuddy доступный по адресу /usr/libexec/PlistBuddy .
PlistBuddy может читать и изменять значения внутри plist, либо в интерактивном режиме, либо непосредственно в командной строке.
Я хочу отредактировать Info.plist для TextEdit. ( Вот почему. ) Я запускаю OS 10.7, и у меня есть Xcode. Но каждый раз, когда я пытаюсь отредактировать файл, он заблокирован, и я не могу сохранить изменения.
Если я попытаюсь сохранить его с помощью Xcode, Xcode спросит, хочу ли я его разблокировать. Я говорю «Разблокировать», но затем ошибка говорит The file "Info.plist" could not be unlocked." ; он говорит, что это потому, что я do not own it .
Если я открою Info.plist, используя vi в Terminal ( vi Info.plist ), я не могу сохранить изменения даже с помощью :w! . Ошибка: E212: Can't open file for writing .
Как я могу внести изменения в файл Info.plist TextEdit?
1) Редактирование через Терминал
Терминал даёт пользователю возможность выполнять действия от имени корневого администратора. А это означает, что вам будет подвластен каждый файл компьютера. Надеемся, нет смысла предупреждать вас об опасности наличия такой власти ;)
В самом Терминале есть несколько встроенных средств редактирования, например, команды nano и vi. Воспользоваться ими проще простого. Сначала нужно приобрести права root-администратора. Введите команду:
Затем вслепую введите пароль и нажмите Enter.
А теперь достаточно ввести:
nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Или можно ввести nano и пробел, а потом перетащить редактируемый файл в окно Терминала. Останется нажать Enter. Работа с командой vi осуществляется точно так же.
Но редактировать файл в таком режиме — удовольствие не из приятных. Судите сами: никакого управления мышью тут не предвидится, и даже курсор придётся передвигать с клавиатуры.
Полезный совет: чтобы выйти из nano, закройте Терминал или нажмите на клавиатуре Ctrl+X.
4 ответа
Прежде чем это сделать, убедитесь, что в вашей системе нет запущенных экземпляров TextEdit.
Выберите файл plist в Finder и сделайте File> Получить данные. В нижней части окна информации о файле вы увидите раздел под названием Sharing & Права доступа . Вы хотите, чтобы убедиться, что вы находитесь в этом списке, и что у вас есть доступ к файлу уровня Read & Write .
Прежде чем вы сможете добавить себя к разрешениям доступа к файлу, вам нужно его разблокировать. Нажмите значок маленького замка (1) в нижнем правом углу и введите свой пароль. Если вы не являетесь администратором на компьютере, вы не сможете продолжить этот шаг.
Как только вы разблокируете файл, вы можете изменить свои права на Read & Write . Если вы не указаны в списке людей, которые могут получить доступ к файлу, нажмите кнопку + под списком и найдите себя в Users & Groups , который появляется.
Изменения применяются к файлу, как только вы делаете их в окне сведений о файле.
Теперь вы сможете открывать, редактировать и сохранять эти изменения в файле.
Откройте окно терминала.
Измените место, где находится файл plist:
Измените права собственности и разрешения на файл, чтобы вы могли читать и писать:
Вам, вероятно, не нужен sudo при втором вызове, но он не может повредить. Для этого вам понадобится доступ администратора к машине.
Если вы хотите отредактировать файл (как описано выше), вам не обязательно его разблокировать. Если вам хорошо работать в командной строке, вы можете отредактировать файл, используя инструменты командной строки, предоставленные Apple. Подготовьте команды с помощью sudo , чтобы получить необходимые права на изменение файла (вам нужно будет ввести пароль администратора).
А именно эти программы: defaults и PlistBuddy (запускается как sudo /usr/libexec/PlistBuddy ). Хотя defaults является более прямым способом изменения файла, PlistBuddy имеет интерактивный режим, который позволяет предварительно просмотреть ваши изменения перед сохранением.
При необходимости вы также можете использовать plutil для преобразования между различными форматами.
Помните, что вы можете получить помощь обо всех этих командах в командной строке, набрав man (например, man defaults )
Это не помогло мне разрешить редактирование, разблокировав файл. Мне пришлось дублировать его, редактировать, а затем удалять исходный файл. Теперь у меня есть собственный шрифт по умолчанию.
Основа стабильности любой операционной системы — это ограничение доступа к важным файлам, от которых зависит работа компьютера, или попросту «защита от дурака». В Mac OS X, как во всех остальных *nix-системах, эта защита реализована через права доступа, группы и владельцев объектов. Прочитать обо всём этом вы можете в нашем цикле статей о Терминале Mac OS X, а сегодня речь пойдёт не столько о защите, сколько о способах её преодоления.
Зачем это нужно? Рано или поздно любой пользователь Мака сталкивается с необходимостью что-нибудь отредактировать в настройках системы или отдельных программ. Ну а владельцы хакинтошей сталкиваются с этой необходимостью чуть ли не каждый день. Как же обойти хитрую систему присвоения прав доступа, чтобы что-нибудь поменять в системе исключительно ради благой цели?
Стандартным форматом настроек Mac OS X и программ для неё является PLIST. Это обычный текстовый файл, который по умолчанию откроется в текстовом редакторе TextEdit. Теперь представьте, что вы открыли такой файл, внесли все нужные изменения и теперь хотите сохранить его. Но не тут-то было! Вы увидите вот такую ошибку:
Вариант у вас только один — сохранить файл ещё где-нибудь. Но это очень и очень плохой вариант. Во-первых, вы потом не сможете скопировать этот файл в его исходную папку. Система просто не даст вам перезаписать имеющийся файл (и будет права). Ну а если вы удалите старый файл и только затем скопируете в ту же папку отредактированную копию, то она скопируется, но будут нарушены права доступа. А это грозит вам самыми загадочными и непредсказуемыми глюками.
Именно поэтому мы рассмотрим несколько других вариантов.
3) Сторонние специализированные программы
Не можем не порекомендовать текстовый редактор TextMate. Это продвинутая версия TextMate, которая делалась в расчёте на программистов, но будет полезна на каждом Маке (а на хакинтоше тем более). К вашим услугам — наглядное форматирование текста, работа с самыми разными кодировками и главное — поддержка работы с защищёнными файлами без дополнительных махинаций в Терминале.
При сохранении защищённого файла TextMate предложит вам ввести пароль, и без проблем сохранит все изменения.
Впрочем, цена — явно не достоинство TextMate. После окончания 30-дневного триала с вас попросят 39 евро. Разработчики оправдываются, указывая на огромное количество встроенных модулей по обработке разных скриптов и языков программирования:
Только вот зачем они рядовому пользователю? Если же цена вас не отпугивает, то можете скачать TextMate по ссылке ниже:
В Mac OS X тысячи файлов настроек с расширением .plist, в которых прописаны абсолютно все параметры работы системы и отдельных программ. Но есть среди них и самый важный файл, отвечающий за параметры загрузки самой Mac OS X — com.apple.Boot.plist. Любой неверный параметр, прописанный там, серьёзно осложнит вам жизнь, потому что Мак может перестать загружаться. Тем не менее, знать устройство этого файла стоит любому пользователю, потому что через него можно настроить многие аспекты поведения компьютера. А особенно важно понимать устройство com.apple.Boot.plist владельцам хакинтошей, которым неизбежно придётся редактировать этот файл.
Кратко опишем, что позволяет сделать файл com.apple.Boot.plist:
- зафиксировать определённые режимы загрузки (см. здесь). Например, можно заставить систему всегда загружаться в 64-битном режиме, вместо того, чтобы держать клавиши 6 и 4 при загрузке.
- настроить графический режим загрузки: изменить разрешение экрана для заставки с яблочком или для текстового режима загрузки
- ограничить количество используемой памяти или ядер процессора
- загрузить систему с другим ядром
- настроить задержку загрузчика перед выбором системы по умолчанию
Последние опции будут полезны владельцам хакинтошей в случае возникновения проблем.
Разметка файла
Теперь о главном: поговорим о содержимом файла com.apple.Boot.plist. По умолчанию это содержимое всегда выглядит вот так:
Нас интересует только то, что находится между тегами
Секция Kernel — это имя ядра системы. Если написать просто имя файла, то загрузчик станет искать его в корне диска. Можно прописать путь к файлу ядра от корневой папки (что-нибудь вроде /Users/kernel) или даже путь к другому диску (в формате rd(0,1)/kernel, где первая цифра — это номер жёсткого диска, причём счёт начинается с нуля; а вторая — номер раздела на этом диске, здесь счёт идёт с единицы).
Если у вас хакинтош, то вам очень пригодится дополнительная секция Timeout, задающая паузу загрузчика (в секундах), после которой он начнёт грузить систему по умолчанию:
Но самая важная секция — Kernel Flags. Здесь содержатся т.н. флаги ядра — короткие обозначения режимов загрузки системы. Всего их более 50, большинство из них имеют сугубо техническую направленность. Но пользователю могут пригодиться следующие:
-x загрузка в безопасном режиме (отключатся все посторонние расширения системы)
-s загрузка в режиме командной строки (на экране появится командная строка Терминала)
-F загрузка в обход имеющихся кэшей системных файлов
«Graphics Mode»=»1280x1024x32» — графический режим видеокарты при загрузке. Первая цифра — ширина экрана, вторая — высота (обе в пикселях), третья — глубина цвета (в битах)
«Text Mode»= аналогичная настройка для текстового режима
«Boot Graphics»=»Yes» (или «No») — ещё один переключатель графического/текстового режима загрузки
«MKext Cache»= — путь к кэшу расширений ядра
«Kernel Cache»= — путь к кэшу ядра
maxmem=2048 — максимальный объём используемой памяти (в мегабайтах)
cpus=2 — количество используемых системой ядер процессора
rd=disk1s2 — загрузка системы с другого раздела с ядром, находящимся на данном разделе. Принцип тот же: первая цифра — это номер жёсткого диска (счёт начинается с нуля), вторая — номер раздела на этом диске (счёт идёт с единицы)
boot-uuid= — обозначение раздела загрузки через специальный идентификатор. Об этом мы поговорим отдельно в цикле статей про хакинтош
arch=x86_64 — загрузка ядра в 64-битном режиме
-legacy — принудительная загрузка в 32-битном режиме
Обратите внимание, что во флагах большие и маленькие буквы различаются. Часть флагов обязательно вводится с дефисом. Если в названии флага есть пробел, то оно вводится в кавычках. Если флаг содержит параметр в виде цифры, то она прописывается с помощью знака «=» без пробелов.
Ядра и загрузчики Mac OS от сторонних программистов для хакинтошей могут иметь свои дополнительные параметры.
2) Запуск текстового редактора с правами администратора
Второй способ более элегантен. Он позволит вам пользоваться обычными программами Mac OS X для правки текста, но запущенными от имени администратора. В этом случае никаких ошибок с правами доступа не возникнет.
Запустите Терминал, введите sudo -s и пароль. Затем нужно будет ввести громоздкую конструкцию типа:
/Applications/TextEdit.app/Contents/MacOS/TextEdit
Заметьте: через Терминал нужно запускать не саму программу (т.е. файл TextEdit.app), а её бинарник, упрятанный внутри программы, в подпапке Contents/MacOS.
После этого TextEdit отлично сможет работать с любыми файлами, но только до первого закрытия программы.
Редактирование файла
Теперь пару слов о том, как редактировать файл com.apple.Boot.plist. Он лежит в папке /Library/Preferences/SystemConfiguration/. Но открыв его в стандартном редакторе TextEdit, вы не сможете сохранить внесённые изменения, потому что сделать это вам не позволят права доступа к файлу.
Варианты есть такие:
1) Терминал. Вводите команды и нажмите Enter после каждой из них:
Введите пароль администратора (символы на экране не появятся) и нажмите Enter.
nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Если не хотите вводить такую длинную строку, можете сократить её, как показано ниже:
nano /L*/Pref*/SystemC*/com.apple.Boot.plist
Прямо в Терминале откроется окно редактора. Мышь в нём работать не будет, курсор нужно перемещать стрелками клавиатуры.
Когда закончите редактирование, нажмите Ctrl+X, затем Y и Enter.
2) TextMate. Этот вариант поудобнее — программа TextMate умеет редактировать почти любой код в любых файлах, даже защищённых системой. Открыть в ней com.apple.Boot.plist вы сможете через контекстное меню файла, через меню File-Open в самой программе или перетаскиванием файла на иконку TextMate в Доке.
При сохранении файла вам попросят ввести пароль.
Устранение проблем
nano /Volumes/…/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Вместо трёх точек введите название раздела, на котором установлена Mac OS X.
Я хочу редактировать Info.plist для TextEdit. ( Вот почему. ) Я использую OS 10.7, и у меня установлен Xcode. Но каждый раз, когда я пытаюсь отредактировать файл, он блокируется, и я не могу сохранить свои изменения.
Если я пытаюсь сохранить его с помощью Xcode, Xcode спрашивает, хочу ли я его разблокировать. Я говорю «Разблокировать», но затем появляется ошибка The file "Info.plist" could not be unlocked." ; это говорит, что это потому что я do not own it .
Если я открываю Info.plist с помощью vi в Terminal ( vi Info.plist ), я не могу сохранить изменения, даже используя :w! . Ошибка есть E212: Can't open file for writing .
Как я могу внести изменения в Info.plist файла TextEdit?
Прежде чем сделать это, убедитесь, что в вашей системе нет запущенных экземпляров TextEdit.
Выберите файл plist в Finder и выполните File> Get Info. В нижней части окна информации о файле вы увидите раздел « Общий доступ и разрешения» . Вы хотите убедиться, что вы в этом списке и что у вас есть Read & Write ровный доступ к файлу.
Прежде чем вы сможете добавить себя в права доступа к файлу, вам нужно его разблокировать. Нажмите на маленький значок замка (1) в правом нижнем углу и введите свой пароль. Если вы не являетесь администратором этого компьютера, вы не сможете пройти этот шаг.
Разблокировав файл, вы можете изменить свои права доступа Read & Write . Если вас нет в списке людей, которые могут получить доступ к файлу, нажмите + кнопку под списком и найдите себя в Users & Groups появившемся списке.
Изменения применяются к файлу, как только вы сделаете их в окне «Информация о файле».
Теперь вы сможете открывать, редактировать и сохранять эти изменения в файл.
Откройте окно терминала.
Перейдите в место, где находится файл plist:
Измените владельца и права доступа к файлу, чтобы вы могли читать и записывать его:
Вам, вероятно, не нужен sudo второй звонок, но это не повредит. Для этого вам понадобится доступ администратора к машине.
Читайте также: