[GUIDE] Merge Multiple Whatsapp Backup File Into One (No Root Required)

jackgan

Member
Oct 25, 2011
35
18
0
I am not sure if I post at the right place but I would like to share this to everyone as I understand how hard it is to find a solution that works. With this guide, you will get to keep the original WhatsApp message information (such as thumbnail, link, emoticon, etc.) and work like it is a restore file that backup from itself.

There will be three main phase you need to perform. You can get all required file in the attachment. Make sure you backup your end result before jump into the next phase.

Phase A: Decrypt and obtain msgstore.db file
This is the easiest method I can find and NO ROOT is required to perform this. All you need is to follow the instruction below.

INSTRUCTIONS:
  1. Extract "WhatsAppKeyExtract.zip" (from attachment) on your computer maintaining the directory structure.
  2. Browse to the extracted folder and click on "WhatsAppKeyExtract.bat".
  3. Enable USB Debugging on your device.
  4. Connect your device via USB**, unlock your screen and wait for "Full backup" to appear.
  5. Leave the password field blank and tap on "Back up my data".
  6. The "extracted" folder will now contain your "whatsapp.key", "msgstore.db" and "wa.db".
**If you have never used USB Debugging before, you may also need to verify the fingerprint.

(Credited to TripCode for providing this application! Here is the link to original thread.)

For my case, I have three backup files that named msgstore.db.crypt, msgstore.db.crypt7 and msgstore.db.crypt8. Although I know there might be other easier method to achieve this, I choose to restore each file (by uninstall and install WhatsApp) and run the above method to get my decrypted file. Hence I can be sure that all decrypted file will come in the same structure (I will show you what this mean later) and prevent any error that may cause by that.

Phase B: Edit and prepare database for merge
This will be a bit tricky. But in general, you MUST make sure that you have no overlapping message history between your files.

INSTRUCTION:
  1. Download SQLite Database Browser and install on your computer.
  2. Open the database you want to edit.
  3. Click on [Browse Data] tab.
  4. In Table drop down menu, click on [messages] (You will see all your WhatsApp message here).
  5. Use it like you are using Excel, select any row that is overlapping (EXCEPT the row with many [-1] value) and click on [Delete Record], then click on [Write Changes] (this means you have save the change to the database).
  6. Keep doing this for your remaining file and close all windows of SQLite Database Browser when you are done.
(Thanks ztedd for posting his own method where I get inspired from. This is the link to his original post.)

For my case, the number of column of all my file when display in "messages" table is different (newer WhatsApp database file have more data type). This is the reason I restore and run backup again to make sure all my file have the same structure. Also, a quick tips to figure out which row is overlapping or duplicate is export the messages table to CSV file and open it with Excel. You will need to copy the first few column of each database and paste them together, then use the feature that come with Excel such as Filter and Remove Duplicate to identify which row number you need to remove from actual database file.

IMPORTANT - Never edit your database on excel and import it back to your original database. This will remove all thumbnail, link, emoticon and etc. and show you some weird message when you restore back to your device.

Phase C: Merge database file
This method only can merge two file at once. You may need to do this several time depending how many database you want to merge. I suggest you start from the oldest to newest.

INSTRUCTION:
  1. Rename the older file to old.db.
  2. Rename the newer file to new.db
  3. Create a new folder called Merge and copy the file old.db, new.db and merjapp.jar into it.
  4. Run Command Prompt on your computer (or click on Start Menu and search for cmd)
  5. In Command Prompt, type each of the following separately and press Enter:
    Code:
    cd desktop
    
    cd merge
  6. You now should see [C:\Users\<UserName>\Desktop\Merge>] in cmd window.
  7. Now type the following and press Enter:
    Code:
    java.exe -jar merjapp.jar -old old.db -new new.db
  8. You should see a "Done!" is displayed and a new file named output.db will be created in the Merge folder.
  9. If you have other database to merge, repeat the steps above by rename the output.db to old.db.
  10. Once you are done, rename the output.db to msgstore.db and it is ready to restore into WhatsApp.
(Credited to namnoops for this merge application! This is the link to original thread.)

For my case, I have to run this steps twice to merge 3 databases. I get error the first time I run this because some messages is overlapping and this is the reason for Phase B to edit my database. Once I got my merged database, I renamed it to msgstore.db (without encrypt again) and have no problem restore back to my device. I also copy and paste all my backed up WhatsApp folder to my device (except the file in Database folder) for the picture in WhatsApp to work.

Disclaimer: I do not know any coding behind all these so if you have any questions I will try to answer but the best bet is to go back to the original thread.

Below is some other method that I found online but can't figure out how to do it. You may try it at your own risk.

Additional Method:
sch3m4's wforensic Method
Alternate sch3m4's wforensic Method
 
Last edited:

ezhome2046

Senior Member
Dec 10, 2015
121
14
0
big fail after attemped retrieve msgstore.db

when tested edit under sqlitebrowser, save change then exit. copy backup the "msgstore.db" file to my device original place and set permission as before. run whatsapp then all my message on list has been gone. no idea wut happen. even though i copy back my original msgstore.db to same place. so **** and make me down becoz i forgot to backup the list b4 make this test.

i use whatsapp ver 2.12.367. and dun add or del row under sqlitebrowser, only retrieve some text on same row, but why i copy back the original msgstore.db also fail? lost all message
 

FrozenLord

Senior Member
Feb 17, 2009
349
158
63
While it might not be a lot of fun, it's quite easy to merge those databases using this method :)
I have used the Android WhatCrypt-app to decrypt my databases on the smartphone, copied both unencrypted ones to my PC and then trimmed the newer one down.
After merging, the only problem was getting Whatsapp to accept my database - the first attempt resulted in Whatsapp deleting all my messages.
My solution was to "Clear Data" on Whatsapp and simply drop the newly created database in Whatsapp's folder inside /data.
It accepted the new file and created the missing files by itself.

Now I have finally got all those messages in my Whatsapp :)

Thank you very much!
 

TigerStyleZ

Senior Member
Mar 19, 2012
232
33
0
Hey,
I have a problem : everytime I try to do the last step e.g. merge the old.db and new.db via cmd - i get the error message " -E- Database old.db cannot be found! " . I renamed the old database to "old.db" still it doesnt work? What I am doing wrong?

Is my old.db file corrupted? I can read it with Whatsapp Viewer tool.. So it seems to work.
And there shouldnt be any overlapping messages - I have an old database and a fresh new one without any old backups.
(my old phone broke and i just jused the new one for the incoming messages)
 

musmas

Senior Member
Apr 1, 2013
61
2
28
25
Karachi
Help

Hi,
I just wanted to ask, I have the msgsstore.db.crypt8 File from my old whatsapp back on older device but I am unable to copy it to the database folder in my new device.
 

-Raffa-

Senior Member
Sep 26, 2012
89
28
0
Rimini
Help Please

Guys I have 2 backups, 1 crypt9 and 1 crypt12. I decrypted and merged both succesfully but when I try to restore my messages through Whatsapp it tells me "Cannor restore your messagges......." . What can be the problem? Whatsappviewer open without problems outout.db, so I think it is not corrupted. There may be some overlapping msgs? How can I notice them? I whatched the table column received_timestamp and I didn't see any equal row. However the column timestamp has multiple equal column, can be this my problem?
Thank in advance
 

DLz88

Member
Feb 17, 2014
25
9
0
Now I'm on phase B, and with the DB Browser for SQLite, I opened (tab Browse Data) the msgstore file in the "extracted" folder and then selected messages In Table drop down menu.
I didn't not understand what to do next.
 

TripCode

Senior Member
Mar 13, 2014
171
155
0
Now I'm on phase B, and with the DB Browser for SQLite, I opened (tab Browse Data) the msgstore file in the "extracted" folder and then selected messages In Table drop down menu.
I didn't not understand what to do next.
You would need to delete the records you do not want and then save the changes. In any case, what is the end result you are trying to achieve? Do you wish to import the merged database back to WhatsApp? Are the databases from separate accounts? If you intend to write back msgstore.db to /data/data/com.whatsapp/databases? How are you going to do that without root? If you do intend to use your merged database with WhatsApp then you may run into difficulties. Things have changed a lot since this guide was written.
 
  • Like
Reactions: DLz88

DLz88

Member
Feb 17, 2014
25
9
0
I have previous crypted (crypt8) backup files from whatsapp database (same account) and I want to merge those old messages with others whatsapp messages I have on my LG G5. Basically my galaxy s4 died, I managed to rescue the whatsapp database and now I want those messages in my new LG G5 (no backup on whatsapp servers because it was setted off by mistake). The folder is inside the main storage/WhatsApp/Database Also, I want all the records and excel told me that there are not any duplicates values.
 
Last edited:

DLz88

Member
Feb 17, 2014
25
9
0
Guys, I have FINALLY found a way to merge two differten WhatsApp backup files. I'll post the guide asap (have to translate it). Is different from the one on the first page for the first two parts.

How to merge two different WhatsApp backup files:

We have two different WhatsApp backup file (doesn't matter if encrypted by different methods, for example, I had a crypt9 file and one crypt8) and we want to combine them into one so we can read them with WhatsApp.

Requirements: OS: Windows Vista, Windows 7 or Windows 8

Programs you need:

1) WhatsApp Xtract: http://forum.xda-developers.com/showthread.php?t=2770982

2) SQLite Database Browser: https://github.com/sqlitebrowser/sql....2.0-win32.exe

3) merjapp (merjapp.jar) https://github.com/namnoops/merjapp/releases

4) JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

5) Java: https://www.java.com/en/download/

6) ADB (Android Debug Bridge) Drivers - If not installed: http://developer.android.com/sdk/index.html

Enable USB Debugg: Settings \ Developer options \ USB debugging (to activate them go to Settings-> About phone-> Software Information-> click many times on the Build number).

Before proceeding further, I suggest to temporarily remove all security protocols such as pin, lock screen with a sequence or other method and scanning fingerprints. In order to avoid the forced backup password.
I also suggest to make the extension of the files, visible (on windows, go to Tools-> Folder Options-> View-> uncheck "Hide extensions for known files").


First phase: decrypt

Extract the "WhatsAppKeyExtract.zip" program in a PC folder, making sure to maintain the folder structure.

a) Start "WhatsAppKeyExtract.bat"

b) Once started, connect your phone via USB, unlock the screen.

c) Wait until the screen that tells you to back up your data appears.

d) Leave the password field blank and click "Back up my data".

e) When finished, inside the "extracted" folder (located inside the WhatsAppKeyExtractor folder) you will find the files "whatsapp.key", "msgstore.db" and "wa.db". (That's if the latest versions of whatsapp).

At this point I recommend to save these files in a folder, calling it "new backup."

Now we must do the same process with the old backup, then:

Uninstall Whatsapp.

Remove all backups from the folder Whatsapp\databases (inside the phone).

Put back in the old backup file ( "msgstore").

Reinstall whatsapp, and let it reopen old messages (restore backup). When done, remove the connection data from the phone (both wifi, and UMTS).

Redo the same procedure as before, from point a) to e).

Save these new files "msgstore.db" and "wa.db" in a folder, this time calling it "old backup."

The first part is finished.

Second phase: organizing the chat

Before you start, create backup copies of previously decrypted file (you never know).

Open SQLiteBrowsers, position yourself in BrowseData tab and select Open Database. Choose the old backup file msgstore.db (that previously we have decrypted).

Click the lower Tab, select "messages".

With the scroll menu, go down to the last message. Here, count the "_id" number of the last message, for example "65422"

Open the new backup file (the new msgstore.db we had decrypted) always with the SQLite Database Browser program. By the same process: open the inferior tab and select messages. Highlight entirely the first line that has the fields, for the most part, containing the value "-1", and delete the line with the Delete Record command.

Make a note now of the number of the first message, under "_id" for example "12"

Now go in the tab "Execute SQL" and write the following string: UPDATE messages Set_id = (65422 + 1 + _id - 12) (put the numbers that you had marked earlier, in this case 65422 and 12). Click ExecuteSQL ( "Play" button)

Close SQLiteBrowers.

End of the second phase.

Third phase: merge

Create a new folder on your desktop called "merge".

Rename the old backup file (the msgstore.db file that is inside the "old backup" folder) that we had decrypted, in old (so we have the file old.db).

Rename the new backup file (the msgstore.db file that is inside the "new backup" folder) that we had decrypted and on which we had executed the SQLiteBrowser string, in new (so we have the file new.db).

Copy and paste the two files in the directory "merge".

Copy merjapp (merjapp.jar) in the "merge" folder.

Now run the command prompt as an administrator.

Enter the following commands:

cd C: \ Users \ [username] (press "ENTER")

cd desktop (press "ENTER")

cd merge (press "ENTER")

java.exe -jar merjapp.jar-old old.db -new new.db (press "ENTER")

It must appear "Done!"

At this point in the "merge" folder there must be a file called output (output.db file)

Copy it in desktop and rename it msgstore (so we have the msgstore.db file).

Open the phone's internal memory, go into WhatsApp \ Database folder, and delete all the files that are in there.

Copy "msgstore" (the msgstore.db file that was named output) in the folder Whatsapp \ Database.

Uninstall and reinstall WhatsApp (obviously choosing to restore backups).

END
 
Last edited:

TripCode

Senior Member
Mar 13, 2014
171
155
0
Guys, I have FINALLY found a way to merge two differten WhatsApp backup files. I'll post the guide asap (have to translate it). Is different from the one on the first page for the first two parts.
Many thanks for finding the time to post your updated working method. I'm sure your contribution will come in handy for many users. :)
 

foxmolder1985

Senior Member
Jan 14, 2012
211
21
0
Dublin
Hi. With this tutorial can I merge 2 backups from different numbers? Basically I would like to move the conversations from my second number to the first number I have.
Thanks.
 

DLz88

Member
Feb 17, 2014
25
9
0
Hi. With this tutorial can I merge 2 backups from different numbers? Basically I would like to move the conversations from my second number to the first number I have.
Thanks.
I don't know if my guide can works with backups from two different numbers. You can always try it and let us know :)