Bagaimana cara mendaftar semua kunci .plist yang tersedia pada aplikasi domain tertentu dengan perintah default?

17

Saya ingin mengetahui semua kunci (daftar properti) yang tersedia di aplikasi domain tertentu, sebagai contoh saya bisa mendaftar kunci yang tersedia com.apple.dockdengan memasukkan perintah ini:

$ defaults read com.apple.dock

tetapi entah bagaimana output dari perintah ini hanya menunjukkan kunci daftar properti aktif, namun tidak semua kunci yang tersedia untuk com.apple.dockterdaftar di sana.

Adakah yang bisa membantu saya dalam hal ini?

wongacid
sumber
Apakah Anda keberatan jika saya reword ini. Anda bertanya tentang alat yang menulis pesan dan bukan tentang cara merekayasa balik program yang membaca pesan. Secara default, program mengabaikan apa pun yang Anda masukkan ke default yang tidak diharapkan untuk dilihat. Anda bisa menanamkan shakespeare di finder prefs dan itu dengan senang hati tidak akan melakukan apa pun asalkan itu XML plist yang valid setelah ditulis ke file.
bmike
@ sepeda saya menyadari ini. Yang saya minati adalah daftar nilai yang sebenarnya digunakan oleh aplikasi. Saya pikir mungkin ada daftar lengkap yang tersimpan di suatu tempat di file konfigurasi master di dalam Aplikasi.
awesomo
Daftar nilai hanya ada dalam kode sumber untuk setiap program. Apakah Anda memiliki satu program yang Anda minati? Begitu mereka dikompilasi, kunci string dalam biner dikodekan dan semua dicampur dengan string lainnya. Tidak ada yang mencegah penulis Program untuk memasukkan daftar karena dapat dengan mudah ditambahkan ke folder Contents / Resources yang ada dalam Aplikasi yang diberikan. Dalam praktiknya, ini tidak dilakukan secara luas.
bmike
Anda juga dapat membedakan keluaran defaults readuntuk menemukan kunci untuk preferensi normal atau menggunakan CFPreferencesCopyValuemetode ini di gdb. Lihat Bagaimana cara menjelajahi lebih banyak default menulis tweak pada OS X? - Pengguna Super .
Lri
Anda juga bisa membedakan keluaran defaults readuntuk menemukan kunci untuk preferensi normal, menjalankan string pada biner frameworks, atau menggunakan CFPreferencesCopyValuemetode dalam gdb. Lihat Bagaimana cara menjelajahi lebih banyak default menulis tweak pada OS X? - Pengguna Super .
Lri

Jawaban:

7

Ini bukan tugas sepele, jika saya ingat dengan benar orang menjalankan stringsutilitas pada baris perintah terhadap Aplikasi, dan mencari hal-hal yang cocok dengan struktur yang mirip dengan com.domain.FeatureName. (com.apple.iTunes, ch.cyberduck.CyberDuck, com.panic.Coda, dll.)

Cara termudah yang mungkin untuk mengelola penggantian ini adalah dengan System Preferences Pane dengan nama Rahasia . Menggunakan ini menginstal Panel Preferensi ke dalam System Preferences, dan memberi Anda antarmuka untuk memilih aplikasi dan mengubah pengaturannya sesuai preferensi Anda.

Jason Salaz
sumber
Saya akan senang jika Anda menjawab ini juga di sana - apple.stackexchange.com/questions/19899/… - string adalah cara yang paling ramah untuk mencoba teknik pembalikan kunci untuk pengguna akhir ini.
bmike
6

Menemukan situs web yang didedikasikan untuk perintah tulis default Mac OS X ini, beberapa perintah praktis untuk Mac OS X Lion & Mountain Lion.

http://www.defaults-write.com

Brandon West
sumber
5

Sebenarnya tidak ada gagasan tentang kunci "tersedia". Aplikasi ini gratis untuk membaca kunci apa pun yang diinginkan. Kebanyakan orang menemukan kunci default "rahasia" dengan menggunakan stringsuntuk melihat melalui biner aplikasi untuk melihat kunci apa yang akan dibacanya.

jtbandes
sumber
ya, ini persis yang saya ingin temukan, "rahasia" kunci default. Bisakah Anda menjelaskan lebih lanjut tentang kunci "rahasia"? Sangat membantu jika ada contoh. Terima kasih banyak.
wongacid
1
Banyak contoh terkenal terdaftar di secrets.blacktree.com
jtbandes
Terima kasih!! beri tahu saya jika Anda memiliki tautan hebat lainnya pada info semacam ini. :-)
wongacid
4

Kebanyakan orang di sini ingin melakukan semuanya melalui baris perintah, tetapi saya punya saran yang lebih praktis.

Kedua program yang dijelaskan di bawah ini mencantumkan banyak fitur yang dapat dikustomisasi dari command-line dari aplikasi Mac OS X, diurutkan berdasarkan aplikasi atau fungsi. Keuntungannya adalah daftar fungsi disediakan untuk Anda; Anda tidak harus pergi mencari Google untuk mencari tahu apa fungsinya dan urutan baris perintah yang diperlukan untuk memodifikasi masing-masing.

Ada beberapa aplikasi freeware atau komersial yang menyediakan antarmuka pengguna grafis yang mencantumkan sebagian besar opsi penyesuaian yang dapat dimodifikasi melalui Terminal. Untuk mengaktifkan salah satu fitur ini, menggunakan progam yang saya jelaskan ini, Anda melakukannya dalam GUI aplikasi dan Anda tidak perlu menggunakan baris perintah sama sekali. Anda tidak perlu tahu apa-apa tentang defaults writeatau .plistfile.

Dua dari aplikasi ini adalah:

TinkerTool

yang gratis, dan

MacPilot

yang baru saja diperbarui dengan fitur Lion baru, dan biaya US $ 20,00.

Ini adalah program yang saya miliki dan gunakan.

Unduh TinkerTool gratis dan versi percobaan MacPilot dan dan klik semua tab untuk melihat semua fitur segudang yang dapat Anda sesuaikan. Ada terlalu banyak untuk disebutkan di sini.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Memperbarui

Pengembang Frederik Wiker telah merilis aplikasi freeware (donasi diterima) untuk membuat kustomisasi tulis default khusus untuk Lion dan Mountain Lion; banyak dari mereka juga berfungsi dengan baik untuk Mavericks (Mac OS X 10.9) juga.

Unduh ini dan lihat kustomisasi apa yang tersedia untuk Anda.

Lion Tweaks

Tweak Gunung

masukkan deskripsi gambar di sini


sumber
Terima kasih untuk rekomendasinya. Saya menghargai pendekatan alternatif.
awesomo
Anda harus benar-benar menerima jawaban ini / Gandum. Ini tahun cahaya di depan saya.
Jason Salaz
3

Mungkin penjelasan yang cukup panjang tentang bagaimana hal-hal bekerja dapat menjernihkan pencarian Anda dan orang lain untuk preferensi "tersembunyi" ini.

Sebagian besar aplikasi akan membaca file preferensi mereka sekali ketika mereka mulai dan defaultsalat ada untuk memastikan file preferensi adalah struktur yang valid dan tidak mengandung kesalahan sintaksis. (Ini juga memungkinkan sistem untuk mengubah cara kunci disimpan dan orang tidak perlu mengetahui detail implementasi dan dapat menggunakan perintah default untuk melakukan semua membaca dan menulis.)

Panduan gaya bahasa Inggris dan tata bahasa memastikan kata-kata yang saya ketik di sini bermakna bagi penutur bahasa Inggris rata-rata, dan standarisasi sistem default menetapkan kerangka kerja sehingga semua orang tahu apa yang diharapkan. Pemformatan daftar preferensi jauh lebih kaku dan matematis daripada bahasa manusia, tetapi konsepnya mirip.

Sistem default pengguna Mac OS X adalah penyimpanan nilai kunci (atau basis data jika Anda mau).

Anda dapat menulis apa saja ke dalam toko nilai kunci preferensi ini, soneta Shakespeare, angka, daftar belanja. Jika program dikodekan untuk mencari kunci tertentu, program akan membaca nilai yang disimpan. Jika tidak mencari kunci itu - nilainya duduk di sana tidak terpakai dan belum dibaca.

Ini memunculkan cara untuk mengetahui nilai-nilai apa yang mungkin dicari oleh program tertentu ketika mereka mulai. Itu intinya Anda harus tahu nilai atau merekayasa balik program.

Ada banyak alat untuk melihat ke dalam suatu program dan mencoba untuk mencari tahu apa string (kunci) yang tertanam, seperti stringsdan dbx / lldb serta menghubungkan di perpustakaan Anda sendiri untuk membuang struktur internal dari program tertentu.

Dalam praktiknya, beberapa hal yang diperlukan untuk pengujian ditambahkan dengan cara "tersembunyi" sehingga Anda tidak dapat melihat panel preferensi program dan melihat fitur-fitur baru yang tidak siap untuk digunakan secara luas. Di satu sisi, sama sekali tidak mudah untuk mendapatkan daftar komprehensif kecuali pembuat program tersebut merilis kode sumber atau mendokumentasikan pengaturan ini secara publik.

Ketika Anda membaca toko default untuk aplikasi tertentu - Anda hanya membaca "buku" yang ditulis ketika aplikasi membuat set default atau pengaturan yang dikirimkan dengan Mac OS X. Itulah sebabnya Anda tidak menerima keseluruhan daftar hal-hal yang secara realistis mungkin untuk diubah dengan aplikasi itu.

bmike
sumber
2

Sejauh yang saya tahu aplikasi hanya akan menyimpan kunci baru jika berbeda dari standarnya, setidaknya itulah yang dilakukan aplikasi saya. Ini bukan sesuatu yang dapat dikontrol dengan mudah karena merupakan bagian dari kerangka kerja Default Pengguna, karena aplikasi hanya memberi tahu pengguna default apa yang perlu disimpan dan mengurus sisanya. Saya tidak berpikir bahwa informasi yang Anda cari akan mudah diperoleh, sayangnya. Akan lebih baik jika memiliki akses ke ini.

Fred
sumber