Estoy investigando cómo Safari sincroniza las pestañas a través de iCloud.
Para empezar, realmente quiero saber cómo Safari está actualizando su lista compartida de pestañas, lo que significa monitorearlo o algún demonio en segundo plano para la creación y modificación de archivos. (Mi hipótesis es: cuando abro una nueva pestaña en mi teléfono, iCloud envía un mensaje a mi Mac que actualiza la lista de "Pestañas de iCloud" de Safari).
Estoy tratando de usar dtrace
para monitorear las aperturas de archivos de Safari, con algo simple como:
sudo dtrace -n 'syscall::open*:entry /execname == "Safari"/ { printf ("%s", copyinstr(arg0)); }'
pero dtrace
imprime este error:
dtrace: error on enabled probe ID 7 (ID 160: syscall::open:entry): invalid user access in action #1 at DIF offset 24
(Este es el mismo error que alguien preguntó en los foros de Apple )
La depuración de un extraño problema de permisos de iTunes con DTrace tenía información sobre un problema similar con iTunes, pero no entiendo muy bien qué volteretas hacia atrás realizaron para gdb
que iTunes fuera dtrace
capaz.
El archivo que contiene las pestañas de iCloud es:
~/Library/SyncedPreferences/com.apple.Safari.plist
Es un archivo binario, por lo que puede usarlo plutil
para convertir una copia a JSON/XML para su procesamiento. Esperaba que la sincronización fuera a través, bird
pero algunas exploraciones ligeras brctl log -w
y otras indagaciones ligeras no reflejan los cambios que realizo en la base de datos de pestañas. Hay bastantes buenos proyectos en github que analizan este archivo en python, JS, así como una buena aplicación de barra de menú:
Saber dónde persisten los datos en el disco muestra que syncdefaultsd
es el proceso de propiedad:
sudo fsusage -w | grep com.apple.Safari
Lamentablemente, ese marco privado y ese demonio básicamente no están documentados por Apple, excepto por lo que puede obtener de la lista de lanzamiento del servicio.
cbowns
cbowns