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:
-
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.
-
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.