¿Cómo enumerar todas las claves .plist disponibles en una determinada aplicación de dominio mediante el comando predeterminado?


17

Quiero saber todas las claves (lista de propiedades) que están disponibles en ciertas aplicaciones de dominio, como ejemplo, podría enumerar las claves disponibles com.apple.dockal ingresar este comando:

$ defaults read com.apple.dock

pero de alguna manera el resultado de este comando solo mostró la clave de la lista de propiedades activas y, sin embargo, no todas las claves disponibles se com.apple.dockenumeran allí.

Alguien me puede ayudar en esto?


¿Te importa si reformulo esto? Está preguntando acerca de la herramienta que escribe mensajes y no sobre cómo realizar ingeniería inversa en el programa que lee los mensajes. Por defecto, el programa ignora todo lo que pones por defecto que no esperaba ver. Podrías incrustar shakespeare en las preferencias del buscador y no haría nada feliz siempre y cuando fuera válido plist XML una vez escrito en el archivo.
bmike

@bmike me doy cuenta de esto. Lo que me interesaba era la lista de valores que la aplicación realmente utiliza. Pensé que podría haber una lista completa escondida en algún lugar de un archivo de configuración maestra dentro de Apps.
awesomo

La lista de valores solo existe en el código fuente de cada programa. ¿Tiene un programa que le interese? Una vez que se compilan, las claves de cadena en el binario se codifican y se mezclan con las otras cadenas. No hay nada que impida que el autor de un Programa incluya una lista, ya que podría agregarse fácilmente a la carpeta Contenido / Recursos que existe en cualquier Aplicación dada. En la práctica, esto no se hace ampliamente.
bmike

También puede diferenciar la salida de defaults readpara encontrar las claves para las preferencias normales o usar el CFPreferencesCopyValuemétodo en gdb. Consulte ¿Cómo explorar más ajustes de escritura predeterminados en OS X? - Súper usuario .
Lri

También puede diferenciar el resultado de defaults readencontrar las claves para las preferencias normales, ejecutar cadenas en los binarios de los marcos o usar el CFPreferencesCopyValuemétodo en gdb. Consulte ¿Cómo explorar más ajustes de escritura predeterminados en OS X? - Súper usuario .
Lri

Respuestas:


7

Esta no es una tarea trivial, si recuerdo correctamente, las personas ejecutan la stringsutilidad en la línea de comandos contra una Aplicación y buscan cosas que coincidan con una estructura similar a com.domain.FeatureName. (com.apple.iTunes, ch.cyberduck.CyberDuck, com.panic.Coda, etc.)

La forma más fácil de administrar estas anulaciones es mediante un Panel de preferencias del sistema con el nombre de Secretos . El uso de esto instala un Panel de preferencias en las Preferencias del sistema y le brinda una interfaz para elegir una aplicación y cambiar su configuración según sus preferencias particulares.


Me encantaría que también respondieras esto allí - apple.stackexchange.com/questions/19899/… - strings es la forma más amigable de intentar esta ingeniería inversa de claves para usuarios finales.
bmike


5

Realmente no hay una noción de claves "disponibles". La aplicación es libre de leer las claves que quiera. La mayoría de las personas descubren las claves predeterminadas "secretas" al usar stringspara mirar a través del binario de la aplicación para ver qué claves intentará leer.


sí, esto es exactamente lo que quiero encontrar, las claves predeterminadas "secretas". ¿Podría explicar más sobre la clave "secreta"? Es muy útil si hay algún ejemplo. Muchas gracias.
wongacid

1
Muchos ejemplos conocidos se enumeran en secrets.blacktree.com
jtbandes

¡¡Gracias!! avíseme si tenía algún otro enlace excelente sobre este tipo de información. :-)
wongacid

4

La mayoría de la gente aquí quiere hacer todo a través de la línea de comando, pero tengo una sugerencia más práctica.

Estos dos programas descritos a continuación enumeran una gran cantidad de las características personalizables de línea de comandos conocidas de las aplicaciones de Mac OS X, ordenadas por aplicación o función. La ventaja es que la lista de funciones se proporciona para usted; no tiene que buscar en Google para averiguar cuáles son las funciones y las secuencias de línea de comandos necesarias para modificar cada una.

Existen varias aplicaciones comerciales o gratuitas que proporcionan una interfaz gráfica de usuario que enumera la mayoría de las opciones de personalización que se pueden modificar a través del Terminal. Para activar cualquiera de estas características, usando estos programas que describo, lo hace dentro de la GUI de la aplicación y no tiene necesidad de usar la línea de comando. No necesita saber nada sobre defaults writeo.plist archivos.

Dos de estas aplicaciones son:

TinkerTool

que es gratis y

MacPilot

que acaba de actualizarse con las nuevas características de Lion y cuesta US $ 20.00.

Estos son programas que poseo y uso.

Descargue la herramienta gratuita TinkerTool y la versión de prueba de MacPilot y haga clic en todas las pestañas para ver todas las funciones que puede personalizar. Hay demasiados para enumerarlos aquí.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Actualizar

Desarrollador Frederik Wiker ha lanzado aplicaciones gratuitas (se aceptan donaciones) para crear personalizaciones de escritura predeterminadas específicas para Lion y Mountain Lion; muchos de ellos también funcionan bien para Mavericks (Mac OS X 10.9) también.

Descargue estos y vea qué personalizaciones están disponibles para usted.

Lion Tweaks

Ajustes de montaña

ingrese la descripción de la imagen aquí


Gracias por las recomendaciones Agradezco el enfoque alternativo.
awesomo

Realmente deberías aceptar esta respuesta de Wheat. Está a años luz de la mía.
Jason Salaz

3

Quizás una explicación bastante larga sobre cómo funcionan las cosas podría aclarar su búsqueda y la de otros para estas preferencias "ocultas".

La mayoría de las aplicaciones leerán sus archivos de preferencias una vez que se inicien y la defaultsherramienta existe para garantizar que los archivos de preferencias sean una estructura válida y no contengan errores de sintaxis. (También permite que el sistema cambie la forma en que se almacenan las claves y las personas no tienen que conocer los detalles de implementación y pueden usar el comando predeterminado para leer y escribir).

Las guías de estilo y gramática del idioma inglés garantizan que las palabras que escribo aquí sean significativas para el hablante de inglés promedio, y la estandarización del sistema predeterminado establece un marco para que todos sepan qué esperar. El formato de la lista de preferencias es mucho más rígido y matemático que un lenguaje humano, pero los conceptos son similares.

El sistema predeterminado del usuario de Mac OS X es un almacén de valores clave (o una base de datos si lo prefiere).

Puede escribir cualquier cosa en estas tiendas de valores clave de preferencia, un soneto de Shakespeare, números, una lista de compras. Si el programa está codificado para buscar una clave específica, leerá el valor almacenado. Si no está buscando esa clave, su valor se encuentra allí sin usar y sin leer.

Esto muestra cómo saber qué valores podría estar buscando un programa específico cuando se inicia. Se reduce a tener que conocer el valor o aplicar ingeniería inversa al programa.

Existen muchas herramientas para buscar en un programa e intentar descubrir qué cadenas (las claves) están integradas, como stringsy dbx / lldb, así como vincular en su propia biblioteca para volcar la estructura interna de un programa específico.

En la práctica, algunas cosas que son necesarias para las pruebas se agregan de esta manera "oculta" para que no pueda mirar por encima del panel de preferencias del programa y ver estas nuevas características que no están listas para un uso amplio. En cierto modo, no es nada simple obtener una lista completa a menos que el autor de ese programa libere el código fuente o documente públicamente estas configuraciones.

Cuando lees la tienda de valores predeterminados para una aplicación en particular, solo estás leyendo el "libro" que se escribió cuando la aplicación creó su configuración predeterminada o la configuración que se envió con Mac OS X. Es por eso que no recibes el exhaustivo lista de cosas que son realmente posibles de cambiar con esa aplicación.


2

Hasta donde sé, una aplicación solo almacenará una nueva clave si difiere de sus valores predeterminados, al menos eso es lo que hacen mis aplicaciones. Esto no es algo que se pueda controlar fácilmente, ya que forma parte del marco de valores predeterminados del usuario, ya que la aplicación solo le dice al usuario los valores predeterminados que necesita almacenados y se encarga del resto. Lamentablemente, no creo que la información que está buscando se pueda obtener fácilmente. Sin embargo, podría ser bueno tener acceso a esto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.