Suggestions on how to import WhatsApp chats into Signal?

I finally did it, I got all of my WhatsApp contacts to start using Signal! Now I’m itching to delete my WhatsApp account completely and uninstall it from my phone.

I would really like to import my messages into Signal though. Half of my conversations are 1:1 and the other half are group messages (2-3 people).

I’ve spent probably over 50 cumulative hours working on this over 2 weeks so far without much to show for it. I did find some GitHub projects as well as people talking about it on the Signal community forum, but these projects and threads are now multiple years old and nothing works anymore. I guess there was a big transition to Signal in 2021 or something.

So I’ve gathered that there are two potential methods to move messages:

  1. Use the .txt files that WhatsApp lets you export for each chat conversation and somehow convert these to a Signal backup file. Then use Signalbackup-tools to merge these backup files before importing the merged backup into Signal. This usually means converting it to something else first such as JSON, XML, etc in a specific schema.

  2. Retrieve and decrypt the sqlite WhatsApp database from your device using the key files stored in root. Then use the unencrypted database to either import messages into a Signal backup file or directly into Signal itself using a Signal fork.

Things I tried:

Jukefoxer wa-db-import (Abandoned/Functionality forked into Johanw666’s Signal Fork)

Johanw666’a Signal-Android Fork. Signal Andoid Fork with additional import/export options. WhatsApp and SMS/MMS import feature don’t work anymore.

Bepaald’s SignalBackup-Tools. Was once working on WhatsApp import function, but seems to have abandoned it in favor of a universal JSON import based on Telegram’s export schema. The developer leaves it to the user to figure out how to transform WhatsApp’s exported .txt conversations into JSON files that match their schema, which is basically impossible for someone like me who can’t code.

I also tried converting WhatsApp chats to XML files that are supported by SMS Backup & Restore since older threads said Johanw666’s Fork could import these files into Signal. This feature was deprecated. Also, I couldn’t figure out how to convert them into proper XML files - which I estimate as just as difficult as converting them to JSON. I actually tried to use AI to write the code for me and I trialed and error’d AI generated code for a couple days in desperation, which went as well as you’d expect.

Getting the WhatsApp database was also a challenge since a lot of the tools are outdated and abandoned such as YuvrajRaghuvanshiS’s WhatsApp-Key-Database-Extractor and andreas-mausch’s whatsapp-viewer.

Since I didn’t want to root my GrapheneOS phone in order to retrieve the database manually, I installed android in an emulator using Android Studio AVM (I also discovered you can emulate android and that android studio is a thing). To decrypt it, since my WhatsApp now uses a more recent .crypt15 extension, I used ElDavoo’s wa-crypt-tools. This took awhile since the documentation wasn’t clear enough and didn’t bother to distinguish which specific files were necessary (for example: there are files called msgstore.db both in root and in your normal internal directory). The terminal program only says it worked after I used the msgstore.db file in my normal internal directory, but used the encrypted_backup key file located in root. I haven’t figured out a way to actually view the “decrypted” file in a format I can understand, so I have no idea if it actually worked or not.

As mentioned before, I intended to import this directly into Signal using johanw666’s fork, but maintenance of the import feature has mostly been abandoned in newer releases.

This is basically when I gave up.

The only other option that might work is importing my messages into Telegram and then exporting them so I can use their JSON format with signalbackup-tools, but I’m both uncomfortable with creating a Telegram account and uploading my private chats into Telegram (where chats are stored on their servers and aren’t E2EE I believe). Also, you can apparently only import WhatsApp chats into pre-existing conversations. I don’t know a single person that uses Telegram and I’m not trying my luck after just barely convincing them to use Signal.

Any help would be appreciated. I’m a really noob user and this probably took more time than necessary since I have no idea what I’m doing.

4 Likes

I think you’ve pretty much tried everything but I could told you that this is not possible had you asked about this earlier. They are two different apps and one of them is closed sourced.

Furthermore, it is not advised to try to mess with Signal with any other tool or app for any purpose. This is not something you should even try.

I just created an account because of your incredibly detailed post and the very dumb answer by anon.

I stumbled upon this while googling how to move chats from WhatsApp to Signal on an iPhone, and I just want to add that it seems completely impossible on iOS, since — unlike Android — it doesn’t allow for manual backups, and you can’t move chats from iOS to Android at all. The only option is the encrypted transfer from one iOS device to another, which seems impossible to manually inject chats into.

However, the demand for universal backups and imports seems quite high, and Signal appears to be working on it (I’m not allowed to link, but e.g., see the Reddit AMA with Signal’s CEO: The message history backup option “will be available in the near future”), with Apple’s policies apparently slowing them down. Thanks for your post, you saved me a lot of time when it comes to testing all of those deprecated tools.

3 Likes

The only idea I could suggest is to decomposit this problem, break it into two (or more). Like:

  • Figure how to export Whatsapp messages
  • How to import messages to Signal
  • How to bridge these two formats

There is also this GitHub - 42wim/matterbridge: bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!), but it’s not exactly what you asked. Just in case.

Very useful post, thank you. I am also trying a bunch of tools and forks, will post it here if I have news over what you tested.

Quite the opposite. Open Source means you can and are encouraged to modify and reuse the code and its forks as much as you need. I would strongly encourage everyone to examine and use the Signal forks like OP, and/or to create new forks.

You overlook one aspect.
The security. It’s not advised, since you will, no matter what, compromise you security.
If you use a fork like Molly, you need to trust an additional third party that can be the point of compromise, if you use external tools to import/export chats, they can be the attackers or get hacked.

2 Likes