Câu trả lời:
Tuyên bố miễn trừ trách nhiệm: Tôi là tác giả của ~/.osx
, một bộ sưu tập các defaults write
cài đặt . Đây là những kỹ thuật mà tôi sử dụng để tìm cài đặt. Hãy cho tôi biết nếu có một phương pháp tốt hơn / dễ dàng hơn mà tôi đã không đề cập ở đây!
Đối với hầu hết các cài đặt không bị ẩn, đây là cách bạn có thể tìm thấy các khóa tùy chọn chính xác trong Terminal.app:
defaults read > a
# Change the setting
defaults read > b
diff a b
Đối với các cài đặt ẩn, nó trở nên phức tạp hơn. Bạn có thể sử dụng strings
tiện ích dòng lệnh trên bất kỳ tệp thực thi nhị phân nào và xem liệu bất kỳ văn bản kết quả nào trông giống như một khóa ưu tiên. Ví dụ:
strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
Đây là một ví dụ khác sẽ xem qua tất cả .framework
các tệp trong /System/Library/Frameworks/
và lọc phần đầu ra:
strings /System/Library/Frameworks/*.framework/Versions/Current/* /System/Library/Frameworks/*/Frameworks/*/Versions/Current/* 2> /dev/null | grep -E '^[a-zA-Z0-9_.-]{10,80}$' | sort | uniq
Ngoài ra còn có một công cụ gọi là GDB có thể được sử dụng để tìm các tùy chọn ẩn.
defaults read;
hoạt động tốt ở đây.
Một lệnh chuỗi khác:
for f in $(mdfind kMDItemContentType==public.unix-executable -onlyin /System/Library/); do strings $f 2> /dev/null | grep -E '^[[:alnum:]_.-]{10,80}$' | grep ^Apple | sort -u | sed "s/^/${f##*/} /g"; done
sudo opensnoop -n cfprefsd
hiển thị những gì danh sách tài sản được sửa đổi. Bạn có thể sử dụng fseventer để hiển thị các thay đổi hệ thống tệp khác trong thời gian thực.
mặc định có một tiểu ban tìm:
$ defaults find nsquitalw
Found 1 keys in domain 'Apple Global Domain': {
NSQuitAlwaysKeepsWindows = 1;
}
Các tệp tiêu đề thường chứa các định nghĩa cho các khóa ưu tiên:
grep PreferenceKey -r ~/Code/Source/WebKit/ | grep '\.h:'
Những gì tôi giả định từ câu hỏi của bạn là bạn muốn khám phá các chỉnh sửa / cài đặt của một ứng dụng. Bạn có thể đọc tùy chọn của một ứng dụng bằng lệnh tầm thường này
defaults read NSGlobalDomain
hoặc là
defaults read com.google.Chrome
để đọc các tùy chọn có thể ghi của chrome từ lệnh ghi mặc định mà bạn đã yêu cầu.