mossblaser / signal_for_android_decryption

An (unofficial) tool which decrypts backup files produced by the Signal Android app.
GNU General Public License v3.0
37 stars 8 forks source link

Signal for Android backup decryption tool

This repository contains an (unofficial) tool which decrypts backup files produced by the Signal Android app.

What this tool is not:

For a walk-through of the Signal for Android backup format, see this article on my website. If you just want to get going; keep reading!

Dependencies

This tool is designed to run under Python 3.7+.

You can install the required Python dependencies as follows:

$ pip install -r requirements.txt

Optionally, you may rebuild the Protocol Buffer Python module:

$ protoc -I=. --python_out=. Backups.proto

Usage

Generate a backup using the Signal app (see the Signal support pages for details). Be very careful to write down the generated passphrase correctly. If you have a large number of photographs and videos within any of your groups the backup process can take several hours.

You can then decrypt the backup file as follows:

$ python decrypt_backup.py path/to/signal.backup path/to/output/dir

The tool will prompt you for your backup passphrase (spaces are optional) and then extract the backup file into the specified output directory.

The backup will be decrypted into the directory you specified. The extracted files are organised as follows:

A final obvious warning: all decrypted files are...unencrypted(!). You should make sure to only perform decryption on a trusted device backed by sufficiently secure storage for your needs.

Contributors

The code in this repository was originally written by @mossblaser but has also greatfully received contributions from: