過去幾個月,我在搭建一個叫Nexus的個人數據平臺。54個數據源、250多張表、35.8萬條知識圖譜事實,全部跑在家用服務器的Postgres 16上。從iMessage到Gmail,從Apple Photos到Spotify再到HealthKit,我試圖把自己的生活變成可查詢的數據模型。
幾周前,我在接入蘋果系數據源時,順手打開了macOS本地的幾個數據庫。里面的東西讓我愣住了——熟悉得可怕。
![]()
蘋果在你Mac上維護著好幾套相互重疊的SQLite數據庫。數字取證社區早就摸清了這些,盡管蘋果幾乎從不公開文檔。mac4n6的Sarah Edwards是最早深入解析knowledgeC.db的人之一,她后來對PersonalizationPortrait的研究直接指出這個數據庫"塞滿了數據"。但那些工作聚焦的是取證調查——執法部門能從扣押設備里提取什么——而非架構分析。我的視角正好相反:我造了一套做同樣事情的系統,我想從蘋果的設計選擇里學到什么。
最終被我接入Nexus的數據庫有這么幾個:
knowledgeC.db(CoreDuet框架)——這是大頭。取證研究人員叫它"生活模式"數據。應用使用、設備使用、位置情境、行為時間線、媒體活動、瀏覽行為、通信元數據、充電模式、移動軌跡。在新版macOS/iOS上,很多內容轉移到了Biome框架,但架構理念沒變。
采集完成后,我自己的aurora_raw_apple_knowledge表有13,677條記錄,aurora_raw_biome有249,776條。Biome的第一個數據流就有241,138條記錄——全是Apple Intelligence功能調用。每次設備端的生成模型運行,都會留下一條記錄。
PersonalizationPortrait——這里開始出現真正的架構巧思。我的aurora_raw_apple_personalization表有38,775條記錄。表結構很簡單:entity_name、entity_type、interest_score、decay_score、topic_category、is_significant_contact。
蘋果在對你追蹤的實體做興趣評分,還帶時間衰減。實體類型包括significant_contact(3,970條)、topic(2,805條)、loc(2,000個位置實體),以及一堆不透明的ne_*(命名實體)類別,似乎對應不同的實體類別。
topic_category的值是Wikidata QID。據我查閱的公開DFIR文獻,之前沒人提過這一點:蘋果在用Wikidata知識圖譜作為主題本體。Q223563(Google Calendar)是我數據里出現頻率最高的主題,587條記錄,平均興趣分0.999。蘋果知道我對日歷很感興趣。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.