¿Cómo puedo determinar los cambios de plist mientras cambio las preferencias del sistema para automatizarlos la próxima vez?

Estoy tratando de automatizar el proceso de configuración de una nueva computadora portátil tanto como sea posible. Hay ciertos cambios que siempre termino haciendo manualmente en una nueva Mac, como habilitar el zoom de pantalla con el Ctrlmodificador y configurar atajos de teclado para asignar ⌘⌥← a "Seleccionar pestaña anterior" en todas las aplicaciones. Estoy seguro de que hay un preferences.writeequivalente para hacer esto, pero maldita sea, no tengo idea de cómo determinar qué es. ¿Puedo de alguna manera monitorear o "diferenciar" mis preferencias después de hacer el cambio manualmente, tal vez?

~/Biblioteca/Preferencias/.GlobalPreferences.plist

Respuestas (3)

Apple almacena las preferencias más relevantes en una base de datos ahora, por lo que su mejor opción es ignorar los archivos plist en el sistema de archivos y concentrarse en la salida de defaults read com.apple.whateverlas cosas que cambia. Desafortunadamente, no hay una buena piedra de Rosetta que diga si tiene una preferencia X: busque cambios en estos siete dominios de preferencia. Donde Apple almacena iCloud o la información de seguridad no se asigna a cada ícono visual en las preferencias del sistema, por lo que deberá emitir más de uno defaults readpara capturar el estado completo de la mayoría de los paneles de preferencias, ya que la mayoría de los paneles escriben en más de un dominio de configuración.

Alternativamente, puede usar MDM y perfiles y scripts de configuración para realizar todos los cambios, de modo que solo envíe los cambios a todas las máquinas desde su herramienta de administración y omita por completo todo el proceso de ingeniería inversa.

En el pasado, MCX era el camino para administrar las configuraciones empresariales y eso es equivalente a querer ver los archivos .plist que almacenaron esas configuraciones inicialmente en los albores de OS X, pero el sistema actual de perfiles de configuración, cambios programados y ganchos MDM ha dejado MCX y .plist solo en los rincones polvorientos que no se han actualizado para que la nueva base de datos central almacene los valores predeterminados del usuario y del sistema.

Si conoce el archivo que se está modificando, puede comparar la salida antes/después en el terminal para encontrar el nombre de configuración exacto. Por ejemplo:

/usr/libexec/PlistBuddy -c Print ~/Library/Preferences/.GlobalPreferences.plist > /tmp/before.txt

Y, diff /tmp/before.txt /tmp/after.txtpara ver los elementos que se cambian. Pero tenga cuidado, porque es probable que la preferencia que está cambiando quede oculta en la estructura jerárquica.

Si aún no conoce el archivo que se está cambiando, puede monitorear la carpeta Biblioteca/Preferencias para ls -lFatver los archivos modificados más recientemente en la lista primero, y probablemente pueda determinar qué archivo le interesa a partir de ahí.

La mejor manera que encontré es

  1. Ejecutar opensnoop(un programa incluido en macOS que muestra qué archivos están abiertos)
  2. Cambie su configuración y observe a qué Preferencescarpeta se accede
  3. Vaya a esta carpeta y ordene por hora de modificación
  4. defaults read file.plistsobre cualquier cosa sospechosa.