2 votos

Safari: uso de dtrace para investigar la sincronización de pestañas de iCloud

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 monitorizarlo o algún demonio en segundo plano para las creaciones y modificaciones de archivos. (Mi hipótesis es: cuando abro una nueva pestaña en mi teléfono, iCloud envía un push a mi Mac que actualiza la lista "Pestañas iCloud" de Safari).

Estoy intentando utilizar 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

(Se trata del mismo error como alguien preguntó en los foros de Apple )

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 dieron en gdb para que iTunes sea dtrace -capaz.

  1. ¿Puede alguien ayudarme a entender Depuración de un extraño problema de permisos de iTunes con DTrace : ¿cuál es la causa del error y cuál es la resolución?
  2. ¿Tienes algún conocimiento/información adicional sobre la sincronización con la pestaña de iCloud? ¿Qué proceso las sincroniza? ¿Dónde se almacenan en el disco?

0voto

Oskar Puntos 1242

El archivo que contiene las fichas de iCloud es:

~/Library/SyncedPreferences/com.apple.Safari.plist

Es un archivo binario, por lo que puede utilizar plutil para convertir una copia a JSON/XML para su procesamiento. Esperaba que la sincronización se realizara a través de bird pero un poco de espeleología ligera con brctl log -w y otros husmeos ligeros no reflejan los cambios que hago en la base de datos de pestañas. Hay bastantes buenos proyectos en github que analizan este archivo en Python, JS así como una bonita aplicación de barra de menú:

Saber dónde persisten los datos en el disco demuestra que syncdefaultsd es el proceso propietario:

sudo fsusage -w | grep com.apple.Safari

Lamentablemente, Apple no ha documentado ese marco privado ni el demonio, salvo lo que se puede deducir del plist launchd del servicio.

1 votos

Esto es fantástico, ¡gracias! Ahora puedo bucear en mi copia de seguridad de Time Machine para algunas fichas perdidas .

0 votos

Tampoco conocía los proyectos que leen ese archivo. ¡Genial!

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X