wren-linux / docs / extras / signal.md (as a page)
# Signal Desktop (`extras/signal.sh`)
## SYNOPSIS
```
wrenctl install signal install it
wrenctl remove signal remove it (your messages stay in ~/.config/Signal)
wrenctl manual signal print the manual steps below
signal-desktop start it (or Super+d, or the Wren menu > Signal)
the first time: scan its QR code with Signal on your phone
(Settings > Linked devices)
```
Signal Desktop, for end-to-end encrypted messages and calls, linked to the
Signal account on your phone. It comes from Signal's own apt repository,
whose signing key must be exactly the one pinned in `pins.sh` (`SIGNAL_FPR`,
the Open Whisper Systems key, checked against two public keyservers too), and
unattended-upgrades installs its updates. Signal needs a phone number; SimpleX
Chat doesn't (it is moving into Whonix's Workstation). Signal is an Electron app, and its
package makes Electron's sandbox helper, `/opt/Signal/chrome-sandbox`, setuid
root; Debian lets Electron sandbox itself without that, so the setuid bit is
taken off, for good: a `dpkg-statoverride` keeps it off through updates.
## LIMITS
- It runs as you: anything that can read your files can read `~/.config/Signal`, your messages.
- Signal's servers see your phone number and when you are online, not what you write.
- The people you write to can keep, copy or forward what you send.
- Signal's repository is Signal's: Wren Linux checks its key, not its packages' contents.
## MANUAL INSTALL
```
# Signal's signing key. Check it is exactly the pinned one: this must
# print one "pub" key with the fingerprint @SIGNAL_FPR@
wget -O /tmp/signal.asc @SIGNAL_KEY_URL@
gpg --show-keys --with-fingerprint /tmp/signal.asc
sudo install -D -m 0644 /tmp/signal.asc /usr/share/keyrings/signal-desktop-keyring.asc
rm /tmp/signal.asc
# The repository, trusted with that key only, and its updates installed by unattended-upgrades
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.asc] https://updates.signal.org/desktop/apt xenial main" |
sudo tee /etc/apt/sources.list.d/signal-desktop.list
echo 'Unattended-Upgrade::Origins-Pattern:: "site=updates.signal.org";' |
sudo tee /etc/apt/apt.conf.d/52wren-signal
# Its sandbox helper not setuid root, now and through every update
sudo dpkg-statoverride --add root root 0755 /opt/Signal/chrome-sandbox
# Signal
sudo apt update
sudo apt install --no-install-recommends signal-desktop
# This must show -rwxr-xr-x (no "s")
ls -l /opt/Signal/chrome-sandbox
signal-desktop
```
To undo (your messages stay in `~/.config/Signal`; delete it to unlink this computer):
```
# Signal, the sandbox helper's override, the repository, its key and the update rule
sudo apt purge signal-desktop
sudo dpkg-statoverride --remove /opt/Signal/chrome-sandbox
sudo rm /etc/apt/sources.list.d/signal-desktop.list /usr/share/keyrings/signal-desktop-keyring.asc
sudo rm /etc/apt/apt.conf.d/52wren-signal
sudo apt update
```