Làm cách nào để liệt kê tất cả các khóa .plist có sẵn trên một ứng dụng tên miền nhất định bằng lệnh mặc định?


17

Tôi muốn biết tất cả các khóa (danh sách thuộc tính) có sẵn trên ứng dụng tên miền nhất định, ví dụ tôi có thể liệt kê khóa có sẵn com.apple.dockbằng cách nhập lệnh này:

$ defaults read com.apple.dock

nhưng bằng cách nào đó, đầu ra của lệnh này chỉ hiển thị khóa danh sách thuộc tính đang hoạt động, và không phải tất cả khóa có sẵn để com.apple.dockđược liệt kê ở đó.

Bất cứ ai có thể giúp tôi về điều này?


Bạn có phiền nếu tôi điều chỉnh lại cái này Bạn đang hỏi về công cụ viết tin nhắn chứ không phải về cách thiết kế ngược chương trình đọc tin nhắn. Theo mặc định, chương trình bỏ qua mọi thứ bạn đặt mặc định mà nó không mong muốn thấy. Bạn có thể nhúng shakespeare vào các prefs finder và nó sẽ vui vẻ không làm gì miễn là nó hợp lệ với XML sau khi được ghi vào tệp.
bmike

@bmike Tôi nhận ra điều này. Điều tôi quan tâm là danh sách các giá trị mà ứng dụng thực sự sử dụng. Tôi nghĩ rằng có thể có một danh sách hoàn chỉnh được giấu ở đâu đó trong tệp cấu hình chính bên trong Ứng dụng.
awesomo

Danh sách các giá trị chỉ tồn tại trong mã nguồn cho mỗi chương trình. Bạn có một chương trình bạn quan tâm? Khi chúng được biên dịch, các khóa chuỗi trong nhị phân được mã hóa và tất cả được trộn lẫn với các chuỗi khác. Không có gì ngăn tác giả của Chương trình bao gồm danh sách vì nó có thể dễ dàng được thêm vào thư mục Nội dung / Tài nguyên tồn tại trong bất kỳ Ứng dụng nào. Trong thực tế, điều này không được thực hiện rộng rãi.
bmike

Bạn cũng có thể tìm khác biệt đầu ra defaults readđể tìm các khóa cho các tùy chọn thông thường hoặc sử dụng CFPreferencesCopyValuephương thức trong gdb. Xem Làm thế nào để khám phá thêm các mặc định ghi các chỉnh sửa trên OS X? - Siêu người dùng .
Lri

Bạn cũng có thể khác với đầu ra defaults readđể tìm các khóa cho các tùy chọn thông thường, chạy các chuỗi trên các nhị phân của khung hoặc sử dụng CFPreferencesCopyValuephương thức trong gdb. Xem Làm thế nào để khám phá thêm các mặc định ghi các chỉnh sửa trên OS X? - Siêu người dùng .
Lri

Câu trả lời:


7

Đây không phải là một nhiệm vụ tầm thường, nếu tôi nhớ chính xác mọi người chạy stringstiện ích tại dòng lệnh đối với Ứng dụng và tìm kiếm những thứ phù hợp với cấu trúc tương tự com.domain.FeatureName. (com.apple.iTunes, ch.cyberduck.CyberDuck, com.panic.Coda, v.v.)

Cách dễ nhất có thể để quản lý các phần ghi đè này là Ngăn tùy chọn hệ thống có tên là Bí mật . Việc sử dụng này sẽ cài đặt Ngăn ưu tiên vào Tùy chọn hệ thống và cung cấp cho bạn giao diện chọn ứng dụng và thay đổi cài đặt của chúng theo sở thích cụ thể của bạn.


Tôi cũng thích nó nếu bạn cũng trả lời câu hỏi này - apple.stackexchange.com/questions/19899/ mẹo - chuỗi là cách thân thiện nhất để thử kỹ thuật đảo ngược khóa này cho người dùng cuối.
bmike


5

Thực sự không có khái niệm về các phím "khả dụng". Ứng dụng này là miễn phí để đọc bất cứ phím nào nó muốn. Hầu hết mọi người khám phá "bí mật" mặc định các khóa bằng cách sử dụng stringsđể xem qua tệp nhị phân của ứng dụng để xem khóa nào sẽ cố đọc.


vâng, đây chính xác là điều mà tôi muốn tìm, "bí mật" mặc định các phím. Bạn có thể giải thích thêm về khóa "bí mật"? Nó rất hữu ích nếu có bất kỳ ví dụ. Cảm ơn rât nhiều.
wongacid

1
Nhiều ví dụ nổi tiếng được liệt kê tại secret.blacktree.com
jtbandes

Cảm ơn!! cho tôi biết nếu bạn có bất kỳ liên kết tuyệt vời nào khác về loại thông tin này. :-)
wongacid

4

Hầu hết mọi người ở đây muốn làm mọi thứ thông qua dòng lệnh, nhưng tôi có một gợi ý thiết thực hơn.

Hai chương trình được mô tả dưới đây liệt kê rất nhiều tính năng tùy chỉnh dòng lệnh đã biết của các ứng dụng Mac OS X, được sắp xếp theo ứng dụng hoặc chức năng. Ưu điểm là danh sách các chức năng được cung cấp cho bạn; bạn không cần phải tìm kiếm Google để tìm hiểu các chức năng là gì và các chuỗi dòng lệnh cần thiết để sửa đổi từng chức năng.

Có một số phần mềm miễn phí hoặc ứng dụng thương mại cung cấp giao diện người dùng đồ họa liệt kê hầu hết tất cả các tùy chọn tùy chỉnh có thể được sửa đổi thông qua Terminal. Để kích hoạt bất kỳ tính năng nào trong số này, sử dụng các progam mà tôi đang mô tả, bạn thực hiện nó trong GUI của ứng dụng và bạn không cần phải sử dụng dòng lệnh nào cả. Bạn không cần phải biết bất cứ điều gì về defaults writehoặc .plisttập tin.

Hai trong số các ứng dụng này là:

TinkerTool

miễn phí và

MacPilot

vừa được cập nhật với các tính năng mới của Lion và có giá US $ 20,00.

Đây là những chương trình mà tôi sở hữu và sử dụng.

Tải xuống TinkerTool miễn phí và phiên bản dùng thử của MacPilot và nhấp qua tất cả các tab để xem tất cả các tính năng bạn có thể tùy chỉnh. Có quá nhiều để liệt kê ở đây.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Cập nhật

Nhà phát triển Frederik Wiker đã phát hành các ứng dụng phần mềm miễn phí (đóng góp được chấp nhận) để tạo mặc định viết các tùy chỉnh dành riêng cho Lion và Mountain Lion; nhiều trong số chúng cũng hoạt động tốt cho Mavericks (Mac OS X 10.9).

Tải về những điều này và xem những tùy chỉnh có sẵn cho bạn.

Sư tử tinh chỉnh

Tinh chỉnh núi

nhập mô tả hình ảnh ở đây


Cảm ơn các khuyến nghị. Tôi đánh giá cao phương pháp thay thế.
awesomo

Bạn nên thực sự chấp nhận câu trả lời này / Wheat's. Đó là năm ánh sáng phía trước của tôi.
Jason Salaz

3

Có lẽ một lời giải thích khá dài về cách mọi thứ hoạt động có thể làm sáng tỏ tìm kiếm của bạn và những người khác cho các tùy chọn "ẩn" này.

Hầu hết các ứng dụng sẽ đọc các tệp ưu tiên của chúng một lần khi chúng khởi động và defaultscông cụ tồn tại để đảm bảo các tệp ưu tiên là một cấu trúc hợp lệ và không chứa lỗi cú pháp. (Nó cũng cho phép hệ thống thay đổi cách lưu trữ khóa và mọi người không phải biết chi tiết triển khai và có thể sử dụng lệnh mặc định để thực hiện tất cả việc đọc và viết.)

Phong cách ngôn ngữ và hướng dẫn ngữ pháp tiếng Anh đảm bảo các từ tôi gõ ở đây có ý nghĩa đối với người nói tiếng Anh trung bình và tiêu chuẩn hóa hệ thống mặc định đặt khung để mọi người biết những gì mong đợi. Định dạng danh sách ưu tiên cứng nhắc và toán học hơn nhiều so với ngôn ngữ của con người, nhưng các khái niệm là tương tự nhau.

Hệ thống mặc định của người dùng Mac OS X là kho lưu trữ giá trị khóa (hoặc cơ sở dữ liệu nếu bạn muốn).

Bạn có thể viết bất cứ điều gì vào các cửa hàng giá trị khóa ưu tiên này, sonnet Shakespeare, số, danh sách mua sắm. Nếu chương trình được mã hóa để tìm một khóa cụ thể, nó sẽ đọc giá trị được lưu trữ. Nếu nó không tìm kiếm khóa đó - giá trị của nó nằm ở đó không được sử dụng và chưa đọc.

Điều này nêu lên làm thế nào để biết những giá trị mà một chương trình cụ thể có thể đang tìm kiếm khi chúng khởi động. Nó giúp bạn hiểu được giá trị hoặc thiết kế ngược chương trình.

Nhiều công cụ tồn tại để xem xét một chương trình và cố gắng tìm ra chuỗi nào (các khóa) được nhúng, chẳng hạn như stringsvà dbx / lldb cũng như liên kết trong thư viện của riêng bạn để kết xuất cấu trúc bên trong của một chương trình cụ thể.

Trong thực tế, một số thứ cần thiết để thử nghiệm được thêm vào theo cách "ẩn" này để bạn không thể xem qua khung tùy chọn của chương trình và xem các tính năng mới này chưa sẵn sàng để sử dụng rộng rãi. Theo một cách nào đó, không đơn giản để có được một danh sách toàn diện trừ khi tác giả của chương trình đó phát hành mã nguồn hoặc các tài liệu này cài đặt công khai.

Khi bạn đọc cửa hàng mặc định cho một ứng dụng cụ thể - bạn chỉ đọc "cuốn sách" được viết khi ứng dụng được tạo mặc định hoặc cài đặt được gửi cùng với Mac OS X. Đó là lý do tại sao bạn không nhận được toàn bộ danh sách những thứ thực tế có thể thay đổi với ứng dụng đó.


2

Theo như tôi biết, một ứng dụng sẽ chỉ lưu trữ một khóa mới nếu nó khác với mặc định của nó, ít nhất đó là những gì ứng dụng của tôi làm. Đây không phải là thứ có thể kiểm soát dễ dàng vì nó là một phần của khung Mặc định người dùng, vì ứng dụng chỉ cho người dùng mặc định những gì nó cần được lưu trữ và nó sẽ giải quyết phần còn lại. Tôi không nghĩ rằng thông tin bạn đang tìm kiếm sẽ dễ dàng có được, đáng buồn thay. Nó có thể là tốt mặc dù có quyền truy cập vào điều này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.