Ich sehe gelegentlich Anleitungen, mit denen Sie die Funktionalität einiger Anwendungen unter OSX über defaults
die 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 defaults
diese Werte nicht nur ändern, sondern auch auflisten.
defaults read -g
"globale" Optionen anzeigen, während defaults read com.company.ProgramName
dieVorgabewerte(also Konfigurationsoptionen) für ein bestimmtes Programm. In diesem Zusammenhang com.company.ProgramName
ist dieBündelkennungdes Programms, zB com.apple.TextEdit
oder com.culturedcode.Things
.Mehr dazu.
Wenn Sie beispielsweise „Ausführen“ wählen, defaults read com.apple.Finder
wird eine Zeile mit dem Inhalt AppleShowAllFiles = FALSE
oder etwas Ähnlichem angezeigt. Seien Sie jetzt abenteuerlustig und führen Sie defaults write com.apple.Finder AppleShowAllFiles -boolean TRUE
Finder aus und starten Sie ihn neu, um zu sehen, was passiert.
Weitere Informationen zur Verwendung von defaults
finden Sie man defaults
in 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