tbvdm / sigbak Goto Github PK
View Code? Open in Web Editor NEWExport messages from Signal Android backups
Export messages from Signal Android backups
sigbak doesn't mark messages as quotes at the moment, does it?
Could this be implemented?
In text output format for a quoting message:
Quote: "the quoted message id"
Tim, thanks for your wonderful utility sigbak. Earlier this year it worked fine (although not so easy to install on Windows for an amateur like me), but using the same commands (export-database / export-messages), I nowget an error message "Invalid attachment frame".
What to do?
Thanks!
If there are newlines in the quoted message there is only one greater-than sign before the first line. I think it would be more consistent if every line of the quoted text had a leading greater-than sign.
Current output
From: xxxx
Sent: Wed, 26 Jan 2022 22:13:16 +0100
Received: Wed, 26 Jan 2022 22:13:18 +0100
Message id: xxx
Thread: xxx
> From: xxx
> Sent: Wed, 26 Jan 2022 21:24:43 +0100
>
> Some example text.
This is still part of the quote.
This is the message
Improved
From: xxxx
Sent: Wed, 26 Jan 2022 22:13:16 +0100
Received: Wed, 26 Jan 2022 22:13:18 +0100
Message id: xxx
Thread: xxx
> From: xxx
> Sent: Wed, 26 Jan 2022 21:24:43 +0100
>
> Some example text.
> This is still part of the quote. (now with leading greater-than sign)
This is the message
sigbak: Cannot prepare SQL statement: no such function: iif
When exporting messages after entering the passphrase, this error is thrown about 15 times then the command terminates. The messages folder is empty. Exporting attachments works perfectly.
Hi,
On (arch)linux
sigbak export-messages signal.backup messages
raises an error:
sigbak: Unexpected end of file
and
sigbak check-backup signal.backup
raises:
sigbak: Unexpected end of file
sigbak: Error in frame 2
Does the problem lies in my backup file? What other useful information may I give you?
Thank you in advance !
Hello! I'm trying to find a way to match up the attachment ids in the result of the export-messages command to the attachments that are a result of the export-attachments command. Is there a good way to do this?
I've been attempting to use sigbak
to export data out from my latest Signal backup, made with Signal v6.5.2 for Android, but I keep getting errors, which vary based on the sigbak
command I try. The errors make me think perhaps Signal have changed DB schema.
Examples:
# sigbak messages -f csv signal-2022-12-12-02-00-01.backup sig.csv
Enter 30-digit passphrase (whitespace is ignored):
sigbak: Cannot get messages: Cannot prepare SQL statement: no such column: address
# sigbak attachments ./signal-2022-12-12-02-00-01.backup
Enter 30-digit passphrase (whitespace is ignored):
sigbak: Cannot prepare SQL statement: no such column: m.date
# sigbak threads signal-2022-12-12-02-00-01.backup
Enter 30-digit passphrase (whitespace is ignored):
sigbak: Cannot prepare SQL statement: no such column: thread_recipient_id
I verified my Signal backup password is correct - I get MAC mismatch
error if I try a known bad password. I also used a different project (signalbackup-tools
) to successfully extract the database from my backup, using the same password.
After using sigbak
to extract a signal backup to an SQLite database, I opened the database in sqlitebrowser
, which discovered two unexpected tokens. Is this normal, or did I run into an edge case? The database passes integrity checks and contains what I would expect otherwise.
pshem@PiDell-K:~/z/source/sigbak$ ./sigbak sqlite ./signal-2020-02-20-11-56-23.backup ./signal_sqlite.db
pshem@PiDell-K:~/z/source/sigbak$ ./sigbak check
pshem@PiDell-K:~/z/research_android$ sqlitebrowser --read-only signal_sqlite.db
Sqlite parse error: line 1:47: unexpected token: thread_id(CREATE VIRTUAL TABLE sms_fts USING fts5(body, thread_id UNINDEXED, content=sms, content_rowid=_id))
Sqlite parse error: line 1:47: unexpected token: thread_id(CREATE VIRTUAL TABLE mms_fts USING fts5(body, thread_id UNINDEXED, content=mms, content_rowid=_id))
I've built sigbak on Kubuntu 19.10 with the default toolchain of gcc 9.2.1.
hello,
i have trouble building the program due to the following error:
$ make
Makefile:14: *** Fehlender Trenner. Schluss.
$ make install
Makefile:14: *** Fehlender Trenner. Schluss.
I think the error roughly translates to the following:
makefile:14: *** missing separator. Stop
(https://stackoverflow.com/questions/16931770/makefile4-missing-separator-stop)
I try to build it in my virtual machine with the following os:
Distributor ID: Linuxmint
Description: Linux Mint 20
Release: 20
Codename: ulyana
Could you please help me as i am new to Makefiles.
Btw. i have the same problem with sigtop
.
i went down a rabbit hole trying to figure out why i don't have kdf.h (even though i have openssl) and I couldn't figure it out...this may be a result of my lack of knowledge on this stuff but i tried my best to resolve it.
sigbak/ $ make
cc -c -o compat/hkdf.o compat/hkdf.c
compat/hkdf.c:22:25: fatal error: openssl/kdf.h: No such file or directory
compilation terminated.
Makefile:42: recipe for target 'compat/hkdf.o' failed
make: *** [compat/hkdf.o] Error 1
Hi Tim,
It would be helpful to distinguish sigbak and sigtop more clearly. ;-) It took me some back and forth to realize which is about what.
The file signal.backup, is this just the sql file copied over from your android phone? Can you provide instructions how to recuperate this file depending on android versions? The path and names have changed over time. A rooted android OS is required to access this file, as well.
Thank you for those tools! :)
Cheers.
$ sigbak export-messages signal-2024-08-01-08-39-35.backup messages
Enter 30-digit passphrase (whitespace is ignored):
Segmentation fault (core dumped)
This also happens with export-attachments
. The backup file is 14 GB. (My architecture is 64-bits.) Here is the core dump: https://cloud.niols.fr/s/xRX6PmBcJRWAFxy (7.3 GB so I didn't know where to put it; link valid until 5 August 2025) (Edit: removed as per @tbvdm's advice).
This might be my fault, actually, because this is the first time I ever compile sigbak
, and because I am not entirely sure about my passphrase. If a wrong passphrase leads to a segfault, I think this is reasonable, but that should maybe be mentioned in the README.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.