I would like to draw attention to some severe issues in the Signal clients. Please read the following text: Signal Problems » Montréal Counter-information (July 2026). I think it’s unnecessary and dangerous if the police get their hands on the phone.Below there are steps in case anyone wants to verify it themselves.
Some questions (to the signal devs and the community)
-
Why is Signal keeping that much information instead of just deleting sensitive data?
-
Are there issues in the tracker?
-
Does Molly solve some of these issues?
-
As we can now have multiple accounts by using Signal Login: Can we migrate contacts?
-
also: There are three types of contacts (the ones I had in my phone book, the ones I added manually by phone number/username and the ones that I am/was part of a group). Can I filter/export/migrate these accounts?
To reproduce on Linux & Signal Desktop
Work on a copy of your profile, not the original:
cp -r ~/.config/Signal ~/signal-test-copy
jq -r '.key' ~/.config/Signal/config.json
sqlcipher ~/signal-test-copy/sql/db.sqlite
PRAGMA key = "x'<add the printed value here'";
tables # to see if it works
SELECT
g.name AS group_name,
datetime(g.active_at / 1000, 'unixepoch') AS last_active,
GROUP_CONCAT(
COALESCE(contact.profileFullName, contact.profileName, '(unknown/no local contact)')
|| ' | ' || COALESCE(contact.e164, '–')
|| ' | ' || CASE json_extract(member.value,'$.role') WHEN 2 THEN 'Admin' ELSE 'Member' END,
char(10)
) AS members
FROM conversations g
JOIN json_each(g.json, '$.membersV2') AS member
LEFT JOIN conversations contact
ON contact.serviceId = json_extract(member.value,'$.aci')
WHERE g.type = 'group'
AND json_extract(g.json,'$.left') = 1
GROUP BY g.id;
Gives you you (for deleted groups):
group_name = XY Group
last_active = 2025-03-11 14:22:03
members = Maxi Pinn | +491701234567 | Admin
Anna Pie | +491709876543 | Member
(unknown/no local contact) | – | Member
(unknown/no local contact) | +49151325624 | Member
1 Like