Varsayılan bir komutla belirli bir etki alanı uygulamasındaki tüm kullanılabilir .plist anahtarları nasıl listelenir?


17

Belirli bir etki alanı uygulamasında bulunan tüm anahtarları (özellik listesi) bilmek istiyorum, örneğin com.apple.dockbu komutu girerek kullanılabilir anahtarı listeleyebilirim :

$ defaults read com.apple.dock

ancak bir şekilde bu komutun çıktısında yalnızca etkin özellik listesi anahtarı gösterildi, ancak com.apple.dock burada listelenen .

Herkes bana bu konuda yardımcı olabilir mi?


Bunu yeniden yazmamın sakıncası var mı? Mesajları okuyan programı soruyorsunuz, mesajları okuyan programı nasıl tersine çevireceğinizi sormuyorsunuz. Varsayılan olarak, program, beklemediğiniz varsayılanları koyduğunuz her şeyi yok sayar. Bulucu tercihlerine shakespeare gömebilirsiniz ve dosyaya yazıldığında geçerli plist XML olduğu sürece hiçbir şey yapmaz.
bmike

@bmike bunu fark ettim. İlgimi çeken şey, uygulamanın kullandığı değerler listesiydi. Apps içindeki bir ana yapılandırma dosyasında bir yere sıkışmış tam bir liste olabileceğini düşündüm.
awesomo

Değerlerin listesi yalnızca her programın kaynak kodunda bulunur. İlgilendiğiniz bir programınız var mı? Derlendiklerinde, ikili dosyadaki dize anahtarları kodlanır ve diğer dizelerle karıştırılır. Herhangi bir Uygulamada bulunan İçerik / Kaynaklar klasörüne kolayca eklenebileceğinden, bir Programın yazarının bir liste eklemesini engelleyen hiçbir şey yoktur. Uygulamada, bu yaygın bir şekilde yapılmamaktadır.
bmike

Ayrıca defaults read, normal tercihler için tuşları bulmak veya CFPreferencesCopyValuegdb'deki yöntemi kullanmak için çıktısını da değiştirebilirsiniz . Bkz. Daha fazla varsayılan nasıl keşfedilir OS X'te tweaks yazma? - Süper Kullanıcı .
Lri

Ayrıca defaults read, normal tercihlerin anahtarlarını bulmak, çerçevelerin ikili dosyalarında dizeleri çalıştırmak veya CFPreferencesCopyValueyöntemi gdb'de kullanmak için çıktısını farklılaştırabilirsiniz. Bkz. Daha fazla varsayılan nasıl keşfedilir OS X'te tweaks yazma? - Süper Kullanıcı .
Lri

Yanıtlar:


7

Bu önemsiz bir görev değil, doğru şekilde hatırlıyorsam insanlar strings , bir uygulama karşısında komut satırında yardımcı programı com.domain.FeatureName ile benzer bir yapıya uyan şeyleri aradığımı hatırlamıyorsam. (com.apple.iTunes, ch.cyberduck.CyberDuck, com.panic.Coda, vb.)

Bu geçersiz kılmaları yönetmenin en kolay yolu, Sırlar adıyla bir Sistem Tercihleri ​​Bölmesi'dir . Bunu kullanmak, Sistem Tercihleri'ne bir Tercih Bölmesi yükler ve size bir uygulama seçme ve ayarlarını kendi tercihinize göre değiştirme arabirimi sunar.


Bunu orada da cevapladıysanız çok isterim - apple.stackexchange.com/questions/19899/… - dizeler, son kullanıcılar için anahtarların bu tersine mühendislikini denemenin en kolay yoludur.
bmike


5

Gerçekten "kullanılabilir" anahtarlar kavramı yoktur. Uygulama istediği tuşları okumakta serbesttir. Çoğu kişi strings, hangi anahtarları okumaya çalışacağını görmek için uygulama ikili dosyasına bakmak için kullanarak "gizli" varsayılan anahtarları keşfeder .


Evet, bu tam olarak bulmak istiyorum, "gizli" varsayılan anahtarları. "Gizli" anahtar hakkında daha fazla bilgi verebilir misiniz? Herhangi bir örnek varsa çok yararlı. Çok teşekkür ederim.
wongacid

1
Birçok tanınmış örnekleri listelenir secrets.blacktree.com
jtbandes

Teşekkürler!! Bu tür bilgilerle ilgili başka harika bir bağınız varsa bana bildirin. :-)
wongacid

4

Buradaki çoğu insan her şeyi komut satırı üzerinden yapmak istiyor, ancak daha pratik bir önerim var.

Aşağıda açıklanan bu iki program, Mac OS X uygulamalarının bilinen komut satırı özelleştirilebilir özelliklerinin büyük bir kısmını listeler. Avantajı, sizin için sağlanan işlevlerin listesidir; işlevlerin ne olduğunu ve her birini değiştirmek için gereken komut satırı dizilerini bulmak için Google'da arama yapmak zorunda değilsiniz.

Terminal aracılığıyla değiştirilebilen tüm özelleştirme seçeneklerinin çoğunu listeleyen bir grafik kullanıcı arabirimi sağlayan birkaç ücretsiz veya ticari uygulama vardır. Açıkladığım bu programları kullanarak bu özelliklerden herhangi birini etkinleştirmek için bunu uygulamanın GUI'sinde yaparsınız ve komut satırını kullanmanıza gerek yoktur. Hakkında hiçbir şey bilmenize gerek yok defaults writeveya.plist dosyaları.

Bu uygulamalardan ikisi:

TinkerTool

ki bu ücretsiz ve

MacPilot

yeni Lion özellikleriyle güncellendi ve 20,00 ABD doları.

Bunlar sahip olduğum ve kullandığım programlardır.

Ücretsiz TinkerTool'u ve MacPilot'un deneme sürümünü indirin ve özelleştirebileceğiniz çok sayıda özelliği görmek için tüm sekmeleri tıklayın. Burada listelemek için çok fazla var.

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Güncelleme

Geliştirici Frederik Wiker , Lion ve Mountain Lion'a özgü varsayılan yazma özelleştirmeleri oluşturmak için ücretsiz uygulamalar (bağış kabul edildi) yayınladı; birçoğu da Mavericks (Mac OS X 10.9) için iyi çalışıyor.

Bunları indirin ve kullanabileceğiniz özelleştirmeleri görün.

Aslan tweaks

Dağ Düzenlemeleri

resim açıklamasını buraya girin


Öneriler için teşekkürler. Alternatif yaklaşımı takdir ediyorum.
awesomo

Bu / Buğdayın cevabını gerçekten kabul etmelisin. Işık yıllarım önümde.
Jason Salaz

3

Belki de işlerin nasıl işlediğini ve başkalarının bu "gizli" tercihleri ​​aramasını nasıl engelleyebileceğine dair oldukça uzun bir açıklama.

Çoğu uygulama, tercih dosyalarını başladıklarında bir kez okuyacak ve defaultsaraç, tercih dosyalarının geçerli bir yapı olduğundan ve sözdizimi hataları içermediğinden emin olmak için var olacaktır. (Ayrıca sistemin anahtarların depolanma biçimini değiştirmesine izin verir ve insanlar uygulama ayrıntılarını bilmek zorunda değildir ve tüm okuma ve yazma işlemlerini yapmak için varsayılanlar komutunu kullanabilir .)

İngilizce dil stili ve dilbilgisi kılavuzları, buraya yazdığım sözcüklerin ortalama İngilizce konuşmacı için anlamlı olmasını sağlar ve varsayılanları standartlaştırmak, herkesin ne bekleyeceğini bilmesi için bir çerçeve oluşturur. Tercih listesi biçimlendirmesi bir insan dilinden çok daha katı ve matematikseldir, ancak kavramlar benzerdir.

Mac OS X kullanıcı varsayılanları sistemi bir anahtar değer deposudur (veya isterseniz veritabanıdır).

Bu tercih anahtar değer mağazalarına, bir Shakespeare sonnet'e, numaralara, bir alışveriş listesine herhangi bir şey yazabilirsiniz. Program belirli bir anahtarı aramak üzere kodlanırsa, depolanan değeri okuyacaktır. Bu anahtarı aramıyorsa - değeri orada kullanılmamış ve okunmamış olarak oturuyor.

Bu, belirli bir programın başlatıldığında hangi değerleri arayabileceğini nasıl öğreneceğini getirir. Değeri bilmeniz ya da programı tersine çevirmeniz gerekir.

Bir programa bakmak ve hangi dizelerin (anahtarların) gömülü olduğunu anlamaya çalışmak için birçok araç vardır stringsve dbx / lldb gibi belirli bir programın iç yapısını dökmek için kendi kitaplığınıza bağlantı.

Uygulamada, test için gerekli olan bazı şeyler bu "gizli" şekilde eklenir, böylece programın tercih bölmesine bakamaz ve geniş kullanıma hazır olmayan bu yeni özellikleri göremezsiniz. Bir bakıma, söz konusu programın yazarı kaynak kodunu yayınlamadığı veya bu ayarları herkese açık olarak belgelemediği sürece kapsamlı bir liste almak hiç de kolay değildir.

Belirli bir uygulamanın varsayılan deposunu okuduğunuzda, yalnızca uygulama varsayılan kümesini oluştururken yazılan "kitap" ı veya Mac OS X ile birlikte gelen ayarları okursunuz. o uygulama ile değiştirmek mümkün gerçekçi şeyler listesi.


2

Bildiğim kadarıyla bir uygulama yeni bir anahtarı yalnızca varsayılanlarından farklıysa saklar, en azından uygulamalarım bunu yapar. Bu, Kullanıcı Varsayılanları çerçevesinin bir parçası olduğu için kolayca kontrol edilebilecek bir şey değildir; Aradığınız bilginin ne yazık ki kolayca elde edileceğini sanmıyorum. Buna erişim olsa güzel olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.