bepaald / signalbackup-tools

Tool to work with Signal Backup files.
GNU General Public License v3.0
790 stars 38 forks source link

[Feature Request] Copy from one desktop to another #206

Closed micw closed 6 months ago

micw commented 6 months ago

Hello,

would it possible to copy my chat history with this tool from one desktop app to another one? I have found tutorials how to move a complete account including history but did not find a description how to copy to a new desktop (while keeping the old desktop linked).

bepaald commented 6 months ago

Hi!

This tool does not provide that functionality (it deals mostly with Android backups). In fact, this tool does not even have the ability to modify the Desktop database in any way at all. Honestly, my knowledge on the Desktop client (and especially its linking process) is too limited to be of any use.

I did quickly check the databases of two of my linked Desktop instances to see if importing messages from one to the other might be simple, but unfortunately things like the id's of conversations are different between the instances (even for the same convo's). So an operation like that would involve a complicated procedure looking more like this tools Android to Android import, which would be months of work.

I might play around with this a little when I have some time (using a move-tutorial, and see if I can somehow get both instances linked), but do not get your hopes up. If I find anything I'll get back to you.

Thanks!

micw commented 6 months ago

Thank you for the fast reply. I will also play around a bit. I already have seen that it's possible to decrypt the sqlite3 database with your tool. Is there a chance to encrypt it again (using a different installation of signal desktop)? this way the copy procedure could be "only" poking around with sqlite3.

bepaald commented 6 months ago

No, this tool does not have the ability to encrypt the database (it doesn't need it, since it never modifies it).

However, the Signal Desktop database is simply a sqlcipher database which can be opened, modified, and saved just as any other sqlite database if sqlcipher is available. I believe tools like sqlitebrowser actually include sqlcipher. The encryption key for the database is plainly available in [SignalDesktopConfigDir]/config.json (~/.config/Signal/config.json, on Linux).