把 Whatsapp chat history 由 iPhone 轉移到 Android

[anti-both]

2014 更 新 –  Wazzap Migrator – Android App 2014 版

2015 更 新 - 把 Whatsapp chat history 由 Android 轉 移 到 iPhone

*** 更 新 whatsapp migrator 為 0.98 版 本 ***

不 知 何 解 ,很 多 朋 友 都 跟 我 說 「不 能 」、「不 可 能 」、「別 浪 費 時 間 」,諸 如 此 類 的 。但 作 為 一 個 堅 持 唯 物 論 史 觀 的 無 神 論 者 兼 且 是 廢 人 般 的 無 產 階 級 的 我 ( 別 跟 我 爭 ,要 又 四 十 歲 又 沒 樓 的 才 能 稱 廢 ),當 然 要 為 大 家 破 除 迷 信 。

其 實 很 多 App 的 iPhone 版 和 Android 版 的 資 料 不 能 互 通 ,其 實 是 兩 者 使 用 的 資 料 庫 不 一 樣 所 致 ,就 像 你 的 應 該 用 程 式 使 用 Mysql 而 我 的 應 用 程 式 使 用 Microsoft SQL server。但 如 果 有 開 發 過 資 料 庫 應 用 程 式 的 朋 友 ,都 了 解 使 用 不 同 的 資 料 庫 ,其 實 是 分 別 不 大 的 。要 將 資 料 由 一 種 資 料 庫 轉 移 到 另 一 種 的 資 料 庫 ,其 實 也 完 全 沒 有 難 度 。所 以 為 什 麼 就 不 可 能 呢 ?

今 天 為 大 家 介 紹 一 個 非 常 容 易 使 用 而 且 免 費 的 轉 移 工 具 ── Whatsapp Migrator ( 該 作 者 已 經 把 這 軟 體 轉 為 WazzapMigrator,那 是 一 款 Android App )。用 了 它 ,你 就 能 把 iPhone 的 chat history,全 部 轉 移 到 Android 之 上 。

要 使 用 這 個 工 具 ,你 必 須 先 安 裝 好 Java Runtime Environment。大 家 可 以 Google 一 下 「java runtime」又 或 者 到 下 面 的 連 結 下 載 安 裝 。Java Runtime 是 完 全 免 費 的 ,也 被 廣 泛 應 用 於 不 同 的 網 站 。Whatsapp Migrator 建 議 使 用 Version 7 以 上 的 版 本 ,所 以 如 果 你 的 Java 比 較 舊 ,就 要 先 更 新 一 下 ( 理 論 上 只 要 下 載 最 新 版 安 裝 就 會 自 動 更 新 的 了 ) 。

http://www.java.com/zh_TW/download/manual.jsp

除 了 Java,你 還 需 要 iPhone 和 Android 的 Whatsapp 資 料 庫 檔 案 各 一 。還 記 得 筆 者 之 前 說 ,iPhone 和 Android 的 App 多 使 用 不 同 的 資 料 庫 麼 ?所 以 這 兩 個 檔 案 就 是 不 同 格 式 的 資 料 庫 ,Whatsapp Migrator 做 的 ,就 是 把 資 料 庫 A 裡 面 的 資 料 複 製 到 資 料 庫 B。

Android 的 Whatsapp 內 建 了 Backup 功 能 ,所 以 比 較 容 易 取 得 資 料 庫 檔 案 。只 要 backup 一 次 ( settings > more > backup chats ),資 料 庫 檔 案 就 會 在 下 面 的 路 徑 。

/sdcard/WhatsApp/Databases/msgstore.db.crypt

只 要 使 用 Airdorid 或 者 ES file explorer 之 類 把 這 個 檔 案 複 製 到 你 的 電 腦 就 可 以 了 。

至 於 iPhone 就 比 較 麻 煩 ,由 於 iPhone 的 限 制 比 較 多 ,所 以 不 容 易 直 接 在 iPhone 上 面 瀏 覽 和 複 製 檔 案 ,於 是 我 們 就 要 在 電 腦 上 的 backup 上 面 著 手 。首 先 打 開 iTunes,完 整 備 份 一 次 你 的 iPhone ( 以 保 證 你 的 chat history 是 最 update 的 )。然 後 我 們 使 用 iPhone Backup Extractor ( 使 用 free edition 就 可 以 了 ,不 過 如 果 大 家 覺 得 好 用 ,當 然 應 該 多 多 付 款 以 支 持 作 者 ),把 下 面 的 Whatsapp 資 料 庫 檔 由 backup 抽 取 出 來 。

net.whatsapp.WhatsApp/Documents/ChatStorage.sqlite
iPhone Backup Extractor

iPhone Backup Extractor

跟 據 Whatsapp Migrator 的 作 者 指 示 ,不 能 使 用 有 加 密 的 iPhone backup。

iTunes encrypt backup

iTunes encrypt backup

取 得 兩 個 檔 案 之 後 ,我 們 就 可 以 使 用 Whatsapp Migrator 了 。到 Releases 那 一 頁 ,下 載 最 新 版 本 ( 現 時 是 0.98,Windows 用 戶 就 是 下 載 .exe 的 那 個 )。Whatsapp Migrator 是 不 用 安 裝 的 。把 它 放 到 一 個 適 合 的 資 料 夾 裡 面 ,直 接 double click 就 可 以 用 的 了 。

如 果 你 沒 有 安 裝 java runtime,它 就 會 彈 出 以 下 的 警 告 訊 息 。

Java Runtime Warning

Java Runtime Warning

Whatsapp migrator 的 作 者 建 議 用 administrator 的 身 份 來 執 行 該 工 具 ,可 以 減 少 出 現 的 問 題 ( Right click,選 Run as administrator )。

Run as administraotr

Run as administraotr

Whatsapp migrator 首 次 執 行 的 時 候 ,都 會 彈 出 下 面 的 警 告 示 窗 ,說 你 的 JRE 不 支 援 strong cryptography,然 後 問 你 是 不 是 要 安 裝 。這 個 很 重 要 ,一 定 要 選 Yes 才 行 ,不 然 你 之 後 又 會 遇 到 其 他 問 題 ( 你 要 用 管 理 員 身 份 執 行 才 能 成 功 安 裝 )。

JRE does not support strong cryptography

JRE does not support strong cryptography

成 功 安 裝 的 話 ,它 會 顯 示 以 下 訊 息 。

Installation successful

Installation successful

之 後 再 一 次 打 開 Whatsapp Migrator,就 可 以 正 常 使 用 了 。

Whatsapp Migrator

Whatsapp Migrator

使 用 Whatsapp Migrator 十 分 簡 單 ,就 是 選 擇 好 之 前 拿 到 的 兩 個 資 料 庫 檔 ,再 click 一 下 convert 就 可 以 了 。在 筆 者 的 例 子 ,7866 筆 資 料 ,不 到 一 秒 鐘 就 完 成 了 。

0.98 版 本 多 了 一 個 新 功 能 ,就 是 內 建 了 空 白 的 msgstore.db ( 多 了 一 個 use an empty msgstore.db.crypt 的 checkbox )。這 讓 我 們 可 以 省 回 在 Android 手 機 下 載 這 個 檔 案 的 步 驟 。

轉 換 成 功 之 後 ,我 們 就 要 把 Android 的 Whatsapp 資 料 庫 檔 放 回 到 Android 手 機 的 同 一 個 地 方 ,複 寫 原 來 的 檔 案 ( 新 檔 案 的 file size 應 該 比 原 來 大 了 很 多 的 )。

/sdcard/WhatsApp/Databases/msgstore.db.crypt

然 後 我 們 就 移 除 Whatsapp,再 到 Google Play 重 新 安 裝 一 次 。在 第 一 次 打 開 Whatsapp 的 時 候 ,它 會 問 你 要 不 要 回 復 你 的 message history,這 時 候 只 要 選 yes 就 可 以 了 。

restore message history

restore message history

ctleung張先生,男性,肖龍。
職業:I.T. Consultant
簡介:不好好讀書;七尺差五寸,手長過膝,雙耳垂肩;性寬和,寡言語,喜怒不形於色。據說少時曾斬白蛇於鳳凰山下……

This entry was posted in Computer & Network and tagged , , , , , , . Bookmark the permalink.

58 Responses to 把 Whatsapp chat history 由 iPhone 轉移到 Android

  1. wai says:

    How about chat history of group?
    And do you know will all the groups be automatically quitted?

    • C.T. Leung says:

      Group 的 chat history 都會轉埋,因為都是儲在同一個 database file 的。

      至於你說的 automatically quit,我不太能理解你的意思。

  2. Eric says:

    How about from Android to iPhone ?
    Thanks :)

  3. Anson says:

    IPHONE BACKUP EXTRACTOR只讓我EXTRACT4個MESSAGE,但我的備份沒有加密?
    請問如何解決

    • C.T. Leung says:

      iPhone Backup Extractor,我用它 extract 的是 Whatsapp 的資料庫檔,是單一的一個檔案。至於你,extract 了「4 個 message」,我… 差不多要膜拜了。

      • Freeman says:

        Brother,因太太轉營到android,要將whatsapp data過檔呢.剛試了iPhone Backup Extractor,由於現在free版只能轉出4個訊息,強迫付款使用,請brother放出你之前下載的free ver,因你手上的可全部訊息轉出,那就感激不盡了

        • C.T. Leung says:

          先別 Brother 我,我好歹也是一個 (不入流的) Programmer,對老翻這種事深痛惡絕。人家的軟體授權並不包括 redistribution,請你注意你的言行。

          唉… 我再重申一遍,我們要 extract 的是一個檔案,而不是某幾個信息。如果你搞不清楚兩者的分別,我建議你還是找會一點點電腦的朋友幫忙吧。

          我特別再強調一點,用 free edition 就足夠了,但我仍舊維持對好的軟體要用付款來支持的觀點。

          ChatStorage.sqlite

  4. witabb says:

    請教一下大大, 可不可以教授一下點樣可以將 whatsapp 由 android to iphone, 我的 iphone 已 jb

    • C.T. Leung says:

      理論上都是一樣,你有 Android 的 database file (從 backup 而來),你有 iPhone 的 database file ( 從 iphone 而來 ),merge 兩者 (當然是 merge 去 iphone 的 database format,不過暫時沒有專用的工具軟體,要自己手動做),再把它放回 iphone 裡面相同的位置。但我手上沒有 iPhone ,最後一部上月底都光榮退休了,你贊助我一部 iPhone 5C,我就可以繼續 experiment 這個 hypothesis 了。XDDDDDD

  5. Lesley says:

    我export咗iphone whatsapp檔出嚟轉。。。但裝返落Android 佢得返全部group但冇哂D chat history…私人嗰D就乜都冇連名都唔見。。。

    • C.T. Leung says:

      那恭喜你,照結果看,你是失敗了,哈哈。[好明顯你無轉到任何野去 Android,如果上面的教學你睇唔明,就搵朋友幫你手吧]

  6. Jeff Wong says:

    請問只能轉換文字嗎? e.g. 我和A君的whatsapp chat 中有圖片, 有voice file, 有video…假設成功由 phone 轉到 android 後, 是不是只能轉到文字對話…而當中的所有媒體檔會變成沒有了?

    • C.T. Leung says:

      東西都在 media 資料夾裡面,而不在資料庫。

      但由於 iPhone 和 Android 的檔案路徑並不一樣,我也沒試過(也沒打算試)把東西直接由 iPhone 複製到 Android。

      我個人自以為是地覺得是不會成功的,不過喜歡的話你自己也可以試試啊。

  7. Freeman says:

    梁兄,請問從我文中,你看到那一詞提到老翻? 只因新版做不到你文中所說的功效,不要硬把你所想加到別人身上,概是Free ver,原作者都不介意Share,這類Free ver軟件內都會有時限吧,那又何用介意,你又何需小提大作?? 不阻梁兄了,原來這世上有人是從未用過老翻東西的,失敬失敬,最後,謝梁兄分享文章

    • C.T. Leung says:

      唔係見你係香港人,我都無你咁好氣。免費軟體,是授權你免費使用,卻不一定有授權你任意再發報。如果你向 Reincubate Ltd 取得由本站再發報該軟體的書面授權 (當然電子形式也可以,只要具有法律效力),我答應你把它所有版本都 host 在我這裡以方便香港用家下載。

      ** iPhone Backup Extractor 唔係自由軟體 (Free Software),只是免費軟體 (Freeware)。它的授權並不是 GPL、BSD 之類的 Public License。

  8. Frankie says:

    Dear CHing, the message shown the database has been converted and encrypted successfully, but the msgstore.db.crypt size is no increase. Is it transferred to other folder???

    • C.T. Leung says:

      假設你說的屬實,Whatsapp Migrator 成功執行且沒有任何錯誤(有一堆 log,但我沒讀過,只能假設),就只可能是你的 ChatStorage.sqlite 檔裡面沒有東西了。

      • Frankie says:

        Dear CHing,

        The problem has been solved, because the data has converted and saved into download/converted folder. The data has been restored successfully ; ).

        Thanks.

  9. Billy says:

    HI, Mr Leung
    我用AIRDROID DOWNLOAD個MSGSTORE.DB.CRYPT落黎
    跟住用MIGRATOR CONVERT既時候
    佢話我個MSGSTORE.DB.CRYPT CORRUPT
    MIGRATOR 就SHOW WARNING DETECTED ENCRYPTED FILE
    我可以點做??

  10. Patrick says:

    Thanks CT, I follow the steps and it is working for me :)

    Just want to add some instruction for iphone with IOS7 and latest whats app. IT is now using icloud as default backup. (no longer backup to itune)

    • C.T. Leung says:

      你的 (no longer backup to itune) 說法完全不正確。

      要備份到 iCloud 或 iTunes,完全是個人的選擇,而且早已有之。(那關 iOS7 的事?)

      雖說這裡是互聯網,但希望你可以負責任地發表言論。謝謝。

  11. Larry says:

    CT,
    按下EXTRACT時, 同樣只可EXTRACT4個MESSAGES到CSV檔(即EXCEL格式),翻查IPHONE BACKUP EXTRACTOR的下載網頁, 真是註明免費版只可抽取4個MESSAGES. 請問是否與你當時的情況不同? 是否 IPHONE BACKUP EXTRACTOR更改了, 要付款才可做到你所說的功能? 煩請回覆.

    • C.T. Leung says:

      唔駛請,不過真係幾煩。我再重覆第 N 次:
      1. 用免費版就足夠,直到今昤今日都一樣。
      2. 我 extract 的是一個檔案,一個 sqlite 檔案 ( 圖我都貼埋出黎了…我… )。不是什麼 4 個 messages,更不是 excel。
      假如真係唔識用,隨便找個會一點點電腦的朋友幫忙吧。

  12. Christine Lo says:

    請問 whatsApp 的 crypt檔 可以用什麼方式打開 我打不開我的備份檔 謝謝你 感激

    • C.T. Leung says:

      Well… 不完全是「打開」,但 Whatsapp Xtract 可以把你的 crypt 檔轉成 html ( human readable at least )。

      ** 要注意的是 crypt 檔是要裝 Python 的,不過只要跟足指示就可以了 ( tips: 裝 32bit )。

  13. Bavis says:

    Ching, 想請問我download晒iphone同android版既whatsapp backup file, 然後runwhatsapp migrator 按照你既方法放左兩個backup然後禁convert但出現左Error “negative time” 請問ching估吾估到係咩問題….感激

    • C.T. Leung says:

      官網也沒提過 negative time 的 error, 你可唔可以貼詳細一點的 log 出來?[ 例如包括有該 error 的最後 10 行 log ]

      • Edmund says:

        我都有相同問題,呢個係error log, 煩請指教一下,萬分感激!

        Nov 10, 2013 1:43:51 PM com.nbeghin.utils.ui.WhatsAppMigratorUI loadProperties
        WARNING: No config file found
        Nov 10, 2013 1:43:51 PM com.nbeghin.utils.ui.WhatsAppMigratorUI
        INFO: Java AES cipher maximum allowed key length: 2147483647
        Nov 10, 2013 1:47:21 PM com.nbeghin.utils.ui.WhatsAppMigratorUI loadProperties
        WARNING: No config file found
        Nov 10, 2013 1:47:22 PM com.nbeghin.utils.ui.WhatsAppMigratorUI
        INFO: Java AES cipher maximum allowed key length: 2147483647
        Nov 10, 2013 1:49:05 PM com.nbeghin.utils.ui.WhatsAppMigratorUI loadProperties
        INFO: Loading config file WhatsAppMigrator.conf
        Nov 10, 2013 1:49:18 PM com.nbeghin.utils.ui.WhatsAppMigratorUI loadProperties
        INFO: Loading config file WhatsAppMigrator.conf
        Nov 10, 2013 1:50:27 PM com.nbeghin.utils.ui.WhatsAppMigratorUI loadProperties
        INFO: Loading config file WhatsAppMigrator.conf
        Nov 10, 2013 1:50:28 PM com.nbeghin.utils.ui.WhatsAppMigratorUI
        INFO: Java AES cipher maximum allowed key length: 2147483647

        • C.T. Leung says:

          「我都有相同問題」<--- 我還是見不到任何「negative time」的字樣,怎麼你就把這個 error 叫做「negative time」呢?

  14. sk139 says:

    你好!跟你的方法用iTune Backup,經iphonebackupextractor將iphone 的ChatStorage.sqlite取出(有12M),經WhatsAppMigrator轉換後的 msgstore.db.crypt(有25M),將它抄到Android的SD相關位置後,移除Whatsapp再安裝、選 回復舊料,但仍然只見沒料的Groups!請指點何處出錯,謝謝。

    • C.T. Leung says:

      這情況我遇到過一次,我個人覺得是 msgstore.db.crypt 檔有問題。

      我那次的解決方法是重頭再做一次,就是在 android 重新 backup 一個吉的 msgstore.db.crypt,再重新用 whatsapp migrator 轉一次資料,再重新 uninstall / install 一次 whatsapp。不知如何,第二次就成了。

      • sk139 says:

        抱歉、仍然失敗!
        請問,如我用WhatsappMigrator 0.98版時 是否不能選內置 空的msgstore.db.crypt檔,而應選用 剛由Android backup出來的msgstore.db.crypt檔去做convert呀?

  15. Angela says:

    我都遇到重新install之後只發現group chat的空殼問題。想請教一下,我係由iPhone搬去新android機嘅,係咪即係我先要喺部android機度裝咗whatsapp, 喺入面冇chat嘅情況下backup chats,等佢自己整個空嘅msgstore.db/msgstore.db.crypt喺個Databases folder度,然後uninstall whatsapp, 將用whatsapp migrator由iphone backup轉成嘅msgstore.db file 放入個Database folder, 再reinstall whatsapp?
    仲有就係,我用個iphone backup轉出嚟有兩個files, 一個係msgstore.db, 一個係msgstore.db.crypt, 係咪要兩個都放晒入android機個 Databases folder度?
    我已經試咗好多次,有啲沮喪。多謝指教。

    • C.T. Leung says:

      1. 是的, 是在 android 手機裝 whatsapp, 再 backup 一個空既 msgstore.db.crypt 檔。

      2. 只放回 msgstore.db.crypt 一個檔案到 android 手機就夠了。

      • Angela says:

        Thanks! 會返去再試。不過最衰就係whatsapp用同一個電話reg. 完再uninstall, 要等一排先re-install得返。

      • Angela says:

        我仲想問,咁係咪即係將convert得來嘅msgstore.db.crypt overwrite咗原先喺android機backup嗰個空嘅(但都有26k, 係咪正常?)msgstore.db.crypt檔?
        Thank you very much.

        • C.T. Leung says:

          是的, 當然是要 overwrite 啦。

          至於吉既 msgstore.db.crypt 有幾大,唔好意思,我真係無留意過。

          • Angela says:

            唔該晒。但有樣嘢唔明想請教一下: 咁如果反正係要overwrite個msgstore.db.crypt, 假如我唔事先做個空嘅backup,而係自己create個”databases” directory然後就咁將個convert咗嘅msgstore.db.crypt file 拖落去,咁又會唔會有分別呢?

          • C.T. Leung says:

            因為 Whatsapp / Whatsapp Migrator 都唔係我寫既,我真係答你唔到。

            但根據一般 programmer 的觀點來看,不同版本的 Whatsapp 的 backup 檔 ( msgstore.db.crypt ) 不見得完全相同。意思是 Whatsapp 1.0.13 的 backup 檔,你能保證和 Whatsapp 2.11.108 的 backup 檔完全一模一樣麼?又或者你用 Android 4.4,我還是用 Android 2.3,這兩者的 backup 檔也一定會是一模一樣麼?我不知道,我也沒找到任何資料去支持或者否定這個想法。

            教大家用手頭上的 Android 手機 backup 一次,是希望那個 backup 檔的格式是最新的,而且百分百能兼容你的手機 ( 因為你的手機是新的,所以 uninstall / reinstall 的幾乎肯定是同一版本 ) 。

            回到你的問題。如果你自己「create」的 backup 檔,能夠和 Whatsapp 用的 backup 檔在資料庫格式上完全一樣的話 (應該都是 SQLite ?),當然不會有任何問題的。( 但我可以很負責任的告訴你,iPhone 的那個 ChatStorage.sqlite 和 Android 的 backup 檔的資料庫格式是相差很遠的 )

  16. Angela says:

    成功了!Many thanks!!

  17. Peter says:

    我想問呢個方法可唔可以將2個iphone chat history 嘅document merge埋一齊,因為我之前只back-up咗個document,另一個就全部存檔連IPA back-up.

  18. D Cheung says:

    成功了, 多謝你的介詔

  19. Choco says:

    成功了! 雖然無哂d 相同video 不過已經好幫到手! thx!

  20. Carol says:

    Thanks a lot, 成功了! you made the impossible possible!我終於可以離開iphone的whatsapp枷鎖了,哈哈

  21. Crystal says:

    梁先生你好,我已經付費買了Migrator的完整版,但嘗試了多次均未能成功,十分沮喪,每天帶住兩部電話,身邊朋友多數用iPhone,所以未能幫得上忙,小女子只有粗疏的電腦常識,期望梁生可以指點一下,無盡感激…….

    1. 首先我是用iTools滙出ChatStorage.sqlite這個file,有70M,但滙出Media時,會彈出”place?cid=104073718388230196126.thumb複製失敗, 可能正在被使用,是否繼續? 如果我選擇”否”,就會彈出”複製出現錯誤,操作失敗”,那我唯有選繼續……我想請問iTools是否不支緩Media滙出而需要用其他軟件滙出Media?請指教

    2. 我見你示範嘅Whatsapp是裝在sd咭內,而我將Whatsapp及Migrator都是裝在Phone入面,請問會否有影響?

    3. 我Note3上Whatsapp的版本是2.11.186,在Databases裏msgstore.db是CRYPT5檔案,當我backup一次後就已經有148K,請問怎樣能取出一個空的msgstore.db檔?

    4. 我用itools滙出ChatStorage.sqlite後就copy到Migrator的file內,但每次Select iPhone archive時都未能自動找到這個file而需要手動選擇,請問我有否放錯位置?還是要放進backup或converted的file入面?請指教…..

    5. 當convert完成後,未有看到新的msgstore.db檔,更枉論將新file抄去新Android,我每次uninstall Whatsapp再重裝,只見空殼group chat,無任何msg,我唔知以上邊個程序錯咗,我只感到極度沮喪,因為工作上有大量資料存在Whatsapp,現在唯有iPhone同note3都跟身,請教怎樣做才能成功?不恥下問,還請多多指教,感激不盡!

  22. Crystal says:

    你好梁生,我是上面那位Crystal, 問題1,2及3已經解決,我已成功匯出ChatStorage.sqlite、Media及msgstore.db.crypt5,現在去到使用Whatsapp Migrator,但我在電腦上click去Releases那一頁,未能見到有exe檔下載,只見到apk檔,請指教可以怎樣做?

    另見你上述的教學似乎用電腦去convert,但見你另一篇文章則是用手機去convert,請問應該以電腦還是以手機去做convert這個程序?麻請指教,不勝感激!

    • C.T. Leung says:

      電腦上用的 (exe) 是舊版,Android 手機上用的是新版,我個人是建議用新版的。舊版明顯的已經沒有在更新,對新加密法的檔案 (crypt5) 根本就不能用。

  23. sum says:

    我係部android機度download左呢個Whatsapp Migrator, 我select iPhone archive之後佢話 no ChatStorage.sqlite found…點先得? 我已經擺左嗰個ChatStorage.sqlite入部android機度

  24. AC says:

    謝謝你,我會試一試。我有位朋友早前仙遊,而我的iPhone whatsapp裡留有幾個他以前的voice msg,不捨得因為換Android機而沒有了。

Leave a Reply to C.T. Leung Cancel reply

Your email address will not be published. Required fields are marked *