有時候我們的朋友電話號碼換了,但由於簡訊的「名字」是跟著電話走的,

所以一旦刪除舊的電話號碼,就會造成該對話串變成不會顯示朋友的名字。

或者,因為換了電話,造成簡訊列表同一個人有多個對話串...

這次的教學就是教你如何把這些問題解決。

本範例是在 iOS 8.1.x 上面執行的,其他 iOS 版本不保證可以使用。

跟前一個教學一樣,你需要 Firefox + SQLite Manager

以下會示範如何把一個 iMessage (電子郵件) 的對話整合到電話號碼中。

首先,用 SQLite Manager 開啟 SMS.db,怎麼抓 SMS.db 應該不用我再教了吧!

接著,在 chat 的 table 下面,找到對應的 GUID ,例如我們這邊是 squirrel_*****(後面隱藏),

這邊的 ROWID,把他記起來,範例中是 145。

如果你要用 SQL 查的話,可以用這個指令:

所以我們的思路應該是:把所有跟「145」的對話換成「102」,這樣就整合了。

接著到 chat_handle_join 裡面,找到 chat_id 為剛剛的 id 的欄位,看 handle_id 為何,

如果 chat_id 不等於 handle_id 的話,你要記住 handle_id 的值,

範例中因為剛好一樣,所以不必另外記。

但如果不一樣的話,最壞情況是你要記住四個值:

  • 來源的 chat_id
  • 來源的 handle_id
  • 目標的 chat_id
  • 目標的 handle_id
  • 接著按 SQLite Manager 的「Execute SQL」,

    在 EnterSQL 欄位輸入:

    最後,關閉 SQLite Manager,確定該資料夾內「沒有」 sms.db-shm 跟 sms.db-wal 兩個檔案,

    再完全關閉 iPhone 上的簡訊 App(多工列關閉)

    然後再把 sms.db 再丟回去 iPhone 內,刪除 iPhone 的 sms.db-shm 跟 sms.db-wal,

    之後修改 sms.db 權限,重新開機就好了。(一旦要重新開機,不可單純 respring)

    丟回去的詳細教學可以 參考這篇

    重開機之後,你可以看之前其他的對話內容是否被清空了,如果被清空代表成功整合了

    如果你有 iMazing 這個 Mac App 的話,可以讀取簡訊內容,看是否整合成功

    (或者你要在手機裡面慢慢往上滾動也可以啦,只是要很久)