Quantcast
Channel: 應用教學 – Hiraku Dev
Viewing all articles
Browse latest Browse all 94

iPhone SMS修改教學 Part2 ~ 簡訊合併 &號碼轉移

$
0
0

這系列拖了好幾年終於寫第二篇了。

這次要教的是如何把簡訊(或 iMessage )的對話合併。

 

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

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

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

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

SMS 整合教學

 

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

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

 

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

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

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

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

SMS 整合教學

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

SELECT * FROM chat WHERE guid LIKE '%關鍵字%'

相同的,再找到目標的電話號碼,我就不附帶圖片了,這邊範例是 102。

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

 

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

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

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

SMS 整合教學

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

  • 來源的 chat_id
  • 來源的 handle_id
  • 目標的 chat_id
  • 目標的 handle_id

接著按 SQLite Manager 的「Execute SQL」,

在 EnterSQL 欄位輸入:

UPDATE message SET handle_id = REPLACE (handle_id, '來源handleID', '目標handleID') WHERE handle_id = 來源handleID

在本範例中,是

UPDATE message SET handle_id = REPLACE (handle_id, '145', '102') WHERE handle_id = 145

按「Run SQL」,如果沒出現錯誤即可。

 

之後再輸入

UPDATE chat_message_join SET chat_id = REPLACE (chat_id, '來源chatID', '目標chatID') WHERE chat_id = 來源chatID

在本範例中是

UPDATE chat_message_join SET chat_id = REPLACE (chat_id, '145', '102') WHERE chat_id = 145

一樣,Run SQL。

 

最後,關閉 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 的話,可以讀取簡訊內容,看是否整合成功

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

SMS 整合教學


Viewing all articles
Browse latest Browse all 94

Trending Articles