Update Registration and Provisioning via signal cli authored by about:privacy's avatar about:privacy
_This guide has been tested with Tails OS versions **5.16.1**_
_This guide has been tested with Tails OS versions **5.18** and **signal-cli-v0.12.4**_
## Persistent Storage
......@@ -6,7 +6,7 @@ _This guide has been tested with Tails OS versions **5.16.1**_
2. Create persistent storage, follow the steps on https://tails.boum.org/doc/persistent_storage/create/, skip to step 2 if you already have a persistent storage
3. Configure persistent storage with [_Additonal software_](https://tails.boum.org/doc/persistent_storage/configure/#index12h2) enabled and features according to your other needs (mail, pgp, additional software) follow the steps on https://tails.boum.org/doc/persistent_storage/configure/, skip to [Install signal-cli](#install-signal-cli) if you already have configured your persistent storage with _additional software_ enabled.
4. (Re)start your Tails and setup an administration password, follow section _Set up an administration password_ at https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/ and encrypt your Persistent on the start Screen.
5. Choose Applications ▸ System Tools ▸ Root Terminal and use the password set in step 3.
5. Choose Applications ▸ System Tools ▸ Root Terminal and use the password set in step 4.
6. In order to keep [signal-cli's storage](https://github.com/AsamK/signal-cli#storage) persistent, execute:
```plaintext
......@@ -15,7 +15,7 @@ sed -i '$ a /home/amnesia/.local/share/signal-cli/ source=signal-cli' /live/pers
7. Shutdown Tails.
## ~~Configuring additional APT repositories for signal-cli~~
<!-- ## ~~Configuring additional APT repositories for signal-cli~~
<details>
<summary>
......@@ -57,16 +57,16 @@ echo -e '#/bin/sh\nsudo cp /home/amnesia/Persistent/morph027-signal-cli.asc /etc
9. ~~Shutdown Tails.~~
</details>
</details>-->
## Install signal-cli
**WARNING: Until Tails has libc6 >= 2.34, most current signal-cli is not supported, latest compatible version is outdated and thereby might become exposed to security vulnerabilities**
**WARNING: Until Tails has libc6 >= 2.34, most current signal-cli debian package is not supported, so you have to [provide native lib for libsignal](https://github.com/AsamK/signal-cli/wiki/Provide-native-lib-for-libsignal#pre-built) for the latest signal-cli binary, in this section of the guide this is explained for signal-cli-0.12.4 with libsignal_v0.32.1. This version might become outdated if this guide is not updated regularly. Strongly recommended to use most current signal-cli along with compatible libsignal_jni.so [determining the required libsignal client version.](https://github.com/AsamK/signal-cli/wiki/Provide-native-lib-for-libsignal#determine-the-required-libsignal-client-version)**
1. Start your Tails unlocking your persistent storage and setup an administration password, follow section _Set up an administration password_ at https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/.
2. Choose Applications ▸ System Tools ▸ Terminal
<details>
<!--<details>
<summary>
~~DEPRECEATED due to signal-cli >= v.0.11.11 requires libc6 <= 2.34~~
......@@ -80,15 +80,15 @@ Persistent/apt-keys.sh
3. _~~Wait until additional software has been installed successfully~~_
</details>
</details>-->
4. Update repositories and install `ca-certificates-java` and `openjdk-17-jre` executing
3. Update repositories and install `ca-certificates-java` and `openjdk-17-jre` executing
```plaintext
sudo apt-get update && sudo apt-get install ca-certificates-java openjdk-17-jre
```
<details>
<!--<details>
<summary>
~~DEPRECEATED due to signal-cli >= v.0.11.11 requires libc6 <= 2.34~~
......@@ -107,12 +107,14 @@ sudo apt-get install signal-cli-jre
sudo update-alternatives --install /usr/bin/signal-cli signal-cli /usr/bin/signal-cli-jre 0
```
</details>
</details>-->
6. Make the installation persistent (_Install every time_) following step 3. at https://tails.boum.org/doc/persistent_storage/additional_software/#index4h2
5. Download latest `signal-cli` and signature file depending on libc6 <=2.31, which is v0.11.11, executing:
7. Download `signal-cli-0.12.4` and signature file, executing:
```plaintext
wget https://github.com/AsamK/signal-cli/releases/download/v0.11.11/signal-cli-0.11.11-Linux.tar.gz -P /home/amnesia/Persistent/ && wget https://github.com/AsamK/signal-cli/releases/download/v0.11.11/v0.11.11.tar.gz.asc -P /home/amnesia/Persistent/
wget https://github.com/AsamK/signal-cli/releases/download/v0.12.4/signal-cli-0.12.4.tar.gz -P /home/amnesia/Persistent/ && wget https://github.com/AsamK/signal-cli/releases/download/v0.12.4/v0.12.4.tar.gz.asc -P /home/amnesia/Persistent/
```
6. As announced per https://github.com/AsamK/signal-cli/issues/65 repos owners PGP fingerprint is `FA10826A74907F9EC6BBB7FC2BA2CD21B5B09570` and the key id is `2BA2CD21B5B09570`. Download the pgp public key file from mentioned pgp key server:
......@@ -124,7 +126,7 @@ torify -i gpg --keyserver pgp.mit.edu --recv-keys 0x2BA2CD21B5B09570
7. Verify the archive:
```plaintext
gpg --verify Persistent/v0.11.11.tar.gz.asc Persistent/signal-cli-0.11.11-Linux.tar.gz
gpg --verify Persistent/v0.12.4.tar.gz.asc Persistent/signal-cli-0.12.4-Linux.tar.gz
```
**WARNING: It seems to be badly signed, looks likewise https://github.com/AsamK/signal-cli/issues/934**
......@@ -132,17 +134,26 @@ gpg --verify Persistent/v0.11.11.tar.gz.asc Persistent/signal-cli-0.11.11-Linux.
8. Extract the archive:
```plaintext
tar xf Persistent/signal-cli-0.11.11-Linux.tar.gz -C Persistent/
tar xf Persistent/signal-cli-0.12.4.tar.gz -C Persistent/
```
9. Download pre-built `libsignal_jni.so` v0.32.1, executing
```plaintext
wget https://github.com/exquo/signal-libs-build/releases/download/libsignal_v0.32.1/libsignal_jni.so-v0.32.1-x86_64-unknown-linux-gnu.tar.gz -P /home/amnesia/Persistent/
```
9. Confirm
10. Extract `libsignal_jni.so` and replace the currently bundled file with the downloaded one:
```plaintext
tar xf Persistent/libsignal_jni.so-v0.32.1-x86_64-unknown-linux-gnu.tar.gz -C Persistent/ && zip -d Persistent/signal-cli-0.12.4/lib/libsignal-client-0.32.1.jar libsignal_jni.so && zip Persistent/signal-cli-0.12.4/lib/libsignal-client-0.32.1.jar Persistent/libsignal_jni.so && rm Persistent/libsignal_jni.so
```
## General use of signal-cli on Tails
## General use of `signal-cli` on Tails
**(aka steps required every time you want to use `signal-cli`)**
1. Start your Tails unlocking your persistent storage
2. Choose Applications ▸ System Tools ▸ Terminal
<details>
<!--<details>
<summary>
~~DEPRECEATED due to signal-cli >= v.0.11.11 requires libc6 <= 2.34~~
......@@ -156,12 +167,14 @@ Persistent/apt-keys.sh
and _Wait until additional software has been installed successfully_
</details>
</details>-->
4. Choose Applications ▸ System Tools ▸ Terminal 5. signal-cli-jre requires at least Java Runtime Environment (JRE) 17. We need to tell jre to use torsocks' SOCKS proxy and add the signal-cli directory to the path, executing:
3. Choose Applications ▸ System Tools ▸ Terminal
<--5. signal-cli-jre requires at least Java Runtime Environment (JRE) 17.-->
4.We need to tell jre to use torsocks' SOCKS proxy and add the signal-cli directory to the path, executing:
```plaintext
export JAVA_TOOL_OPTIONS="-Djava.net.preferIPv4Stack=true" && export PATH="/home/amnesia/Persistent/signal-cli-0.11.11/bin:$PATH"
export JAVA_TOOL_OPTIONS="-Djava.net.preferIPv4Stack=true" && export PATH="/home/amnesia/Persistent/signal-cli-0.12.4/bin:$PATH"
```
6. Start a shell with torsocks by executing:
......@@ -271,8 +284,6 @@ signal-cli -a $PHONE_NR updateConfiguration --read-receipts false --unidentified
Every now and then you should also receive events with your signal-cli, so in case something needs to be done via signal-cli, it doesn't take ages to sync last 300 days or so of events:
## Provisioning Signal-Desktop
1. Start your Tails unlocking your persistent storage
2. _Wait until additional software has been installed successfully_
3. Choose Applications ▸ System Tools ▸ Terminal
......
......