So scannen Sie in OSX nach Anwendungsoptionen

So scannen Sie in OSX nach Anwendungsoptionen

Ich sehe gelegentlich Anleitungen, mit denen Sie die Funktionalität einiger Anwendungen unter OSX über defaultsdie Befehlszeile ändern können. Ich weiß, dass Leute diese Konfigurationsanweisungen finden, indem sie die Anwendung scannen. Wie geht das?

Lösung: ich hätte schwören können, dass es so war option. Mein Fehler.

Antwort1

Mit können Sie defaultsdiese Werte nicht nur ändern, sondern auch auflisten.

defaults read -g"globale" Optionen anzeigen, während defaults read com.company.ProgramNamedieVorgabewerte(also Konfigurationsoptionen) für ein bestimmtes Programm. In diesem Zusammenhang com.company.ProgramNameist dieBündelkennungdes Programms, zB com.apple.TextEditoder com.culturedcode.Things.Mehr dazu.


Wenn Sie beispielsweise „Ausführen“ wählen, defaults read com.apple.Finderwird eine Zeile mit dem Inhalt AppleShowAllFiles = FALSEoder etwas Ähnlichem angezeigt. Seien Sie jetzt abenteuerlustig und führen Sie defaults write com.apple.Finder AppleShowAllFiles -boolean TRUEFinder aus und starten Sie ihn neu, um zu sehen, was passiert.

Weitere Informationen zur Verwendung von defaultsfinden Sie man defaultsin der Dokumentation. Sie kann recht komplex werden und einige Dinge im Zusammenhang mit Listen und Wörterbüchern sind praktisch unmöglich zu tun. Wenn Sie so weit gekommen sind, schauen Sie nach /usr/libexec/PlistBuddy– auf dieser Site finden Sie einige Beispiele zur Verwendung. Verwenden Sie einfach die Suchfunktion.


Finden Sie die Bundle-ID eines bestimmten Programms heraus:

Um herauszufinden, wofür Ihre Anwendungcom.vendor.yourapp, klicken Sie mit der rechten Maustaste auf das Anwendungspaket, wählen SiePaketinhalt anzeigen, navigieren Sie zuInhalt, offenInfo.plistmit einem Texteditor oder besser einem Eigenschaftenlisteneditor wieEigenschaftenlisten-EditoroderXcode 4(beide Teil der Entwicklertools von Apple) und suchen Sie nachCFBundleIdentifieroder dergleichen.


Ein weiteres Tool, das Sie verwenden können, ist strings. Es zeigt alle Zeichenfolgen (also möglicherweise nützliche Zeichenfolgen) in einer Binärdatei an. Beachten Sie, dass dies ergibtTonnenvon Fehlalarmen, da neben der regulären Ausgabe, die auf der Benutzeroberfläche angezeigt wird, auch Objective-C-Funktionsaufrufe angezeigt werden.


Geheimnissebietet auch eine Datenbank mit versteckten Einstellungen für OS X, sortiert nach Anwendung. Diese können mithilfe von geändert werden defaults. Für Ihre Bequemlichkeit können Sie auch ein Einstellungsfenster von der Website herunterladen, mit dem Sie diese über Ihre Systemeinstellungen ändern können.

Antwort2

#!/bin/sh

# find key names in ~/Library/Preferences/`osascript -e 'id of app "iTunes"'`.plist
defaults read com.apple.iTunes | ruby -e 'puts STDIN.read.scan(/^    \"?([a-zA-Z_.\-]+?)\"? /)' > keys.txt

# extract identifiers from a binary
# (the output is tens of thousands of lines even after grepping)
strings - /Applications/iTunes.app/Contents/MacOS/iTunes | egrep "^[a-zA-Z][a-zA-Z_.\-]{7,}$" | ruby -e 'puts STDIN.read.split("\n").uniq' > strings.txt

# the identifiers for preferences often appear near each other
for x in `cat /0/keys.txt`; do
    grep -C 10 "$x" strings.txt
done | ruby -e 'puts STDIN.read.split("\n").uniq' > strings2.txt

Eine andere Methode mit dem GNU-Debugger:arcticmac.home.comcast.net/~arcticmac/tutorials/gdbFindingPrefs.html

verwandte Informationen