Як перерахувати всі доступні ключі .plist у певній програмі домену командою за замовчуванням?


17

Я хочу знати всі ключі (список властивостей), які доступні в певній програмі домену, наприклад, я можу перерахувати доступний ключ com.apple.dock, ввівши цю команду:

$ defaults read com.apple.dock

але якимось чином ця команда показувала лише активний ключ списку властивостей, і ще не весь доступний ключ для com.apple.dockперелічених там.

Хтось може мені в цьому допомогти?


Ви не заперечуєте, якщо я переформулюю це. Ви запитуєте про інструмент, який записує повідомлення, а не про те, як повернути інженеру програму, яка читає повідомлення. За замовчуванням програма ігнорує все, що ви ввели за замовчуванням, що його не очікували побачити. Ви можете вбудувати Шекспіра в префікси пошуку, і він із задоволенням не зробить нічого, доки це був би дійсний пліст XML, записаний у файл.
bmike

@bmike Я це усвідомлюю. Мене зацікавив перелік значень, які програма використовує насправді. Я подумав, що може бути повний список, зібраний десь у головному конфігураційному файлі всередині Apps.
awesomo

Список значень існує лише у вихідному коді для кожної програми. У вас є одна програма, яка вас цікавить? Після їх компіляції, рядкові клавіші у двійковому кодуванні кодуються і всі змішуються з іншими рядками. Ніщо не заважає автору програми включити список, оскільки його можна було легко додати до папки «Зміст / ресурси», яка існує в будь-якій заданій програмі. На практиці це не робиться широко.
bmike

Ви також можете відрізняти результат пошуку defaults readдля пошуку клавіш для нормальних налаштувань або використовувати CFPreferencesCopyValueметод в gdb. Див. Розділ Як дізнатися більше стандартних налаштувань для запису записів на OS X? - Супер Користувач .
Lri

Ви також можете відрізняти результат пошуку defaults readдля пошуку клавіш для нормальних налаштувань, запуску рядків на бінарних файлах фреймворків або використання CFPreferencesCopyValueметоду в gdb. Див. Розділ Як дізнатися більше стандартних налаштувань для запису записів на OS X? - Супер Користувач .
Лрі

Відповіді:


7

Це не тривіальне завдання, якщо я пригадую правильно, люди запускають stringsутиліту в командному рядку проти програми та шукають речі, які відповідають структурі, подібній до com.domain.FeatureName. (com.apple.iTunes, ch.cyberduck.CyberDuck, com.panic.Coda тощо)

Найімовірніший найпростіший спосіб управління цими скасуваннями - це панель системних налаштувань під назвою Secrets . Використовуючи це, встановлюється панель налаштувань у системні налаштування та дає інтерфейс для вибору програми та зміни їх налаштувань на ваші особливі вподобання.


Мені б сподобалося, якби ви також відповіли на це там - apple.stackexchange.com/questions/19899/… - рядки - це найдружніший спосіб спробувати цю зворотну інженерію ключів для кінцевих користувачів.
bmike


5

Поняття "доступних" ключів насправді не існує. Додаток може читати будь-які клавіші. Більшість людей виявляють "секретні" ключі за замовчуванням, використовуючи stringsдля перегляду бінарних програм, щоб побачити, які клавіші намагатиметься прочитати.


так, це саме те, що я хочу знайти, «секретні» ключі за замовчуванням. Чи можете ви пояснити далі про "секретний" ключ? Це дуже корисно, якщо є якийсь приклад. Велике спасибі.
wingacid

1
Багато добре відомі приклади наведені в secrets.blacktree.com
jtbandes

Спасибі!! дайте мені знати, якщо у вас було якесь інше чудове посилання на подібну інформацію. :-)
wingacid

4

Більшість людей тут хочуть зробити все за допомогою командного рядка, але у мене є більш практична пропозиція.

У цих двох описаних нижче програмах перераховано велику кількість відомих функцій, що настроюються в командному рядку програм Mac OS X, відсортованих за додатком або функцією. Перевага полягає в тому, що перелік функцій надається вам; вам не доведеться шукати Google, щоб дізнатися, що таке функції та послідовності командного рядка, необхідні для зміни кожної з них.

Існує кілька безкоштовних або комерційних програм, які надають графічний інтерфейс користувача, в якому перераховано більшість усіх параметрів налаштування, які можна змінити через Термінал. Щоб активувати будь-яку з цих функцій, використовуючи ці описані мною описи, ви робите це в графічному інтерфейсі програми, і вам зовсім не потрібно використовувати командний рядок. Вам не потрібно нічого знати про файли defaults writeчи .plistфайли.

Два з цих додатків:

TinkerTool

який є безкоштовним, і

MacPilot

щойно оновлений новими функціями Lion і коштує 20,00 доларів США.

Це програми, якими я володію та якими користуюся.

Завантажте безкоштовний TinkerTool та пробну версію MacPilot та натисніть всі вкладки, щоб побачити всі безліч функцій, які ви можете налаштувати. Тут занадто багато, щоб їх перелічити.

введіть тут опис зображення

введіть тут опис зображення

Оновлення

Розробник Фредерік Вікер випустив безкоштовні програми (прийняті пожертви) для створення налаштувань для запису за замовчуванням, характерних для Лева та Гірського Лева; багато з них також добре працюють і для Mavericks (Mac OS X 10.9).

Завантажте їх і подивіться, які налаштування доступні вам.

Левині щипці

Гірські твіки

введіть тут опис зображення


Дякую за рекомендації. Я високо ціную альтернативний підхід.
awesomo

Ви дійсно повинні прийняти цю / відповідь пшениці. Світлі роки попереду моїх.
Джейсон Салаз

3

Можливо, досить довге пояснення того, як все працює, може прояснити ваші та інші пошуки цих "прихованих" уподобань.

Більшість додатків прочитають свої файли налаштувань один раз, коли вони запустяться, і defaultsінструмент існує, щоб переконатися, що файли уподобань є дійсною структурою та не містять синтаксичних помилок. (Це також дозволяє системі змінювати спосіб зберігання ключів, і люди не повинні знати деталі реалізації та можуть використовувати команду за замовчуванням, щоб виконати всі читання та запис.)

Стилі та посібники з граматики англійської мови гарантують, що слова, які я тут набираю, мають значення для середнього мовця англійською мовою, а стандартизація системи за замовчуванням встановлює рамки, щоб усі знали, чого чекати. Форматування списку уподобань набагато жорсткіше і математичніше, ніж людська мова, але поняття схожі.

Система за замовчуванням користувача Mac OS X - це ключове сховище (або база даних, якщо вам зручніше).

Ви можете вписати що завгодно в ці крамниці значень ключових параметрів, сонет Шекспіра, номери, список покупок. Якщо програма закодована для пошуку конкретного ключа, вона прочитає збережене значення. Якщо він не шукає цього ключа - його значення сидить невикористаним та непрочитаним.

Це означає, як знати, які значення може шукати конкретна програма під час їх запуску. Це зводиться до вас, або ви повинні знати значення або реверс-інженер програми.

Існує багато інструментів, щоб вивчити програму і спробувати з'ясувати, які рядки (ключі) вбудовані, такі як stringsі dbx / lldb, а також зв’язування у вашій власній бібліотеці, щоб скинути внутрішню структуру конкретної програми.

На практиці деякі речі, необхідні для тестування, додаються таким чином «прихованим» способом, щоб ви не могли переглядати область вподобань програми та бачити ці нові функції, не готові до широкого використання. Зрештою, вичерпний список отримати зовсім не просто, якщо автор цієї програми не випустить вихідний код або іншим чином публічно задокументує ці налаштування.

Коли ви читаєте магазин за замовчуванням для певного додатка - ви просто читаєте "книгу", яку написали, коли додаток створив її за замовчуванням, або налаштування, що постачаються з Mac OS X. Ось чому ви не отримуєте вичерпного список речей, які реально можна змінити за допомогою цієї програми.


2

Наскільки я знаю, додаток зберігатиме новий ключ лише в тому випадку, якщо він відрізняється від значень за замовчуванням, принаймні так роблять мої програми. Це не те, що можна легко керувати, оскільки воно є частиною рамки User Defaults, оскільки додаток повідомляє користувачам за замовчуванням лише те, що йому потрібно зберігати, і він піклується про інше. Я не думаю, що інформацію, яку ви шукаєте, буде легко отримати, на жаль. Незважаючи на те, було б добре мати доступ до цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.