Safari: sử dụng dtrace để điều tra iCloud Tab Sync


2

Tôi đang điều tra cách Safari đồng bộ hóa các tab thông qua iCloud.

Để bắt đầu, tôi thực sự muốn biết Safari đang cập nhật danh sách các tab được chia sẻ như thế nào, có nghĩa là theo dõi nó hoặc một số daemon nền để tạo và sửa đổi tệp. (Giả thuyết của tôi là: khi tôi mở một tab mới trên điện thoại của mình, iCloud sẽ gửi một cú hích tới máy Mac của tôi để cập nhật danh sách "Tab iCloud" của Safari.)

Tôi đang cố gắng sử dụng dtraceđể theo dõi việc mở tệp của Safari, với một cái gì đó đơn giản như:

sudo dtrace -n 'syscall::open*:entry /execname == "Safari"/ { printf ("%s", copyinstr(arg0)); }'

nhưng dtracein ra lỗi này:

dtrace: error on enabled probe ID 7 (ID 160: syscall::open:entry): invalid user access in action #1 at DIF offset 24

(Đây là lỗi giống như ai đó đã hỏi trên các diễn đàn của Apple )

Gỡ lỗi một vấn đề về quyền lạ của iTunes với DTrace có thông tin về một vấn đề tương tự với iTunes, nhưng tôi hoàn toàn không hiểu những gì mà họ đã thực hiện gdbđể đưa iTunes trở thành có thể dtrace.

  1. Ai đó có thể giúp tôi hiểu Gỡ lỗi một vấn đề về quyền lạ của iTunes với DTrace không : lỗi gây ra là gì và độ phân giải là gì?
  2. Bạn có bất kỳ kiến ​​thức / thông tin bổ sung nào về đồng bộ hóa iCloud Tab không? Quá trình nào đồng bộ chúng? Chúng được lưu trữ ở đâu trên đĩa?

Câu trả lời:


0

Tệp có chứa các tab iCloud là:

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

Đây là một tệp nhị phân, vì vậy bạn có thể sử dụng plutilđể chuyển đổi một bản sao sang JSON / XML để xử lý. Tôi dự kiến ​​việc đồng bộ hóa sẽ được thực hiện birdnhưng một số trò chơi ánh sáng brctl log -wvà việc rình mò ánh sáng khác không phản ánh những thay đổi tôi thực hiện đối với cơ sở dữ liệu tab. Có khá nhiều dự án hay trên github phân tích tệp này trong python, JS cũng như một ứng dụng thanh menu đẹp:

Biết nơi dữ liệu vẫn tồn tại trên đĩa cho thấy đó syncdefaultsdlà quá trình sở hữu:

sudo fsusage -w | grep com.apple.Safari

Đáng buồn thay, khung riêng và daemon đó về cơ bản không được lưu lại bởi Apple tiết kiệm cho những gì bạn có thể lượm lặt được từ bản mở rộng cho dịch vụ.


1
Điều này thật tuyệt vời, cảm ơn bạn! Bây giờ tôi có thể lặn vào máy sao lưu Time của tôi đối với một số các tab bị mất ...
cbowns

Tôi cũng không biết về các dự án đọc tệp đó. Mát mẻ!
cbowns
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.