1. Oficjalnie: pełna migracja Desktop → Desktop nie jest wspierana
Signal ma oficjalne procedury backupu/przenoszenia głównie dla telefonu. Dla Desktopa nie ma normalnej funkcji „eksportuj historię” / „przenieś historię na nowy komputer”. Signal w dokumentacji backupu/przywracania opisuje przenoszenie historii zależnie od urządzenia, ale migracja Desktopa jest ograniczona i nie działa jak klasyczny import pliku historii.
Czyli najbezpieczniejsza odpowiedź brzmi: nie ma wspieranej przez Signal metody pełnej migracji historii ze starego Windows PC na laptop.
Ale są obejścia.
2. Najprostsze obejście: skopiowanie profilu Signal Desktop
Możesz spróbować przenieść cały profil aplikacji ze starego PC na laptop. To jest metoda nieoficjalna, więc najpierw rób kopię, a nie przenoszenie „na żywo”.
Na starym PC
- Zamknij Signal Desktop.
- Sprawdź w Menedżerze zadań, czy nie działa proces Signal.
- Wejdź w:
C:\Users\TWOJA_NAZWA\AppData\Roaming\Signal
Szybciej: w pasku adresu Eksploratora Windows wpisz:
%APPDATA%\Signal
- Skopiuj cały folder
Signalna pendrive / dysk / udział sieciowy.
Na laptopie
- Zainstaluj Signal Desktop, ale go nie uruchamiaj po instalacji — albo zamknij całkowicie, jeśli już się uruchomił.
- Wejdź w:
%APPDATA%
- Jeżeli istnieje tam folder
Signal, zmień jego nazwę np. na:
Signal_NOWY_PUSTY_BACKUP
- Wklej skopiowany folder
Signalze starego PC. - Uruchom Signal Desktop.
To czasem działa, ale nie ma gwarancji. Są zgłoszenia i dyskusje użytkowników, którzy kopiowali %AppData%\Signal między Windowsami, ale to nie jest oficjalnie stabilna procedura.
3. Kluczowy problem: klucz szyfrowania
Signal Desktop trzyma wiadomości lokalnie w zaszyfrowanej bazie. Sam plik bazy to za mało, bo potrzebny jest też lokalny klucz szyfrowania zapisany w profilu aplikacji / systemowym magazynie danych użytkownika.
Dlatego samo skopiowanie np.:
%APPDATA%\Signal\sql\db.sqlite
najczęściej nie wystarczy.
Trzeba kopiować cały folder Signal, a najlepiej robić to na tym samym koncie użytkownika Windows lub przynajmniej z zachowaniem pełnego profilu danych aplikacji.
4. Najbezpieczniejszy wariant praktyczny
Zrobiłbym tak:
Krok 1 — zabezpiecz stary komputer
Na starym PC:
%APPDATA%\Signal
Skopiuj cały folder w 2 miejsca, np.:
D:\Backup\Signal_PC_oryginal
oraz na pendrive / dysk zewnętrzny.
Nie usuwaj starego Signala.
Krok 2 — uruchom nowy laptop jako nowe urządzenie
Najpierw normalnie połącz Signal Desktop na laptopie z telefonem przez QR. Sprawdź, ile historii się zsynchronizuje.
Krok 3 — jeżeli brakuje starych wiadomości
Dopiero wtedy testuj wariant z podmianą folderu:
%APPDATA%\Signal
czyli:
- Zamknij Signal na laptopie.
- Zmień nazwę obecnego folderu
Signal. - Wklej stary folder
Signal. - Uruchom aplikację.
- Sprawdź, czy widzisz stare rozmowy.
5. Jeżeli celem jest tylko archiwum, a nie aktywna migracja
Jeśli zależy Ci na tym, żeby nie stracić starych rozmów, a niekoniecznie używać ich aktywnie na laptopie, najlepsze rozwiązanie to:
- Zostawić starego PC jako archiwum.
- Zrobić kopię folderu:
%APPDATA%\Signal
- Dodatkowo zrobić obraz całego dysku lub kopię profilu użytkownika Windows.
To jest bezpieczniejsze niż próba agresywnej migracji, bo Signal może po uruchomieniu na nowym urządzeniu nadpisać / wyczyścić część lokalnych danych, jeśli wykryje niespójność.
6. Metoda zaawansowana: odczyt / eksport bazy
Istnieją nieoficjalne metody odczytu lokalnej bazy Signal Desktop przez narzędzia do SQLite/SQLCipher albo narzędzia społecznościowe. To jest raczej droga techniczna do eksportu/odzysku, a nie czystej migracji do nowego Signala. Użytkownicy opisują np. pracę na pliku:
%APPDATA%\Signal\sql\db.sqlite
ale wymaga to dostępu do klucza i łatwo coś uszkodzić, więc nie robiłbym tego na oryginale.
Moja rekomendacja
Najrozsądniejsza kolejność:
- Zrób pełną kopię:
%APPDATA%\Signal
- Nie kasuj starego PC.
- Na laptopie najpierw połącz Signal normalnie przez QR.
- Jeżeli historia jest niewystarczająca, przetestuj podmianę całego folderu
Signal. - Jeśli to nie zadziała, traktuj stary PC jako archiwum albo idź w techniczny eksport z bazy.
Najważniejsze: nie instaluj i nie konfiguruj nowego Signala „na siłę” na kopii bez backupu, bo możesz stracić jedyną działającą wersję lokalnej historii.
Poniżej masz praktyczną procedurę eksportu/odczytu historii z Signal Desktop na Windows. To nie jest oficjalna migracja do nowego Signala — Signal oficjalnie podaje, że Desktop nie wspiera przenoszenia historii wiadomości do lub z innego urządzenia, a ręczne przenoszenie folderów może powodować błędy. (support.signal.org)
To jest metoda do odzysku / archiwizacji / eksportu do CSV/JSON, najlepiej na kopii.
1. Zrób kopię danych Signala
Na starym PC zamknij Signal Desktop.
Sprawdź w Menedżerze zadań, czy nie działa proces:
Signal.exe
Potem skopiuj cały folder:
%APPDATA%\Signal
Czyli zwykle:
C:\Users\TWOJA_NAZWA\AppData\Roaming\Signal
Najważniejsze pliki/foldery:
%APPDATA%\Signal\sql\db.sqlite
%APPDATA%\Signal\config.json
%APPDATA%\Signal\attachments.noindex
Baza wiadomości to zwykle:
%APPDATA%\Signal\sql\db.sqlite
Klucz do odszyfrowania bazy jest w konfiguracji Signala, zwykle w:
%APPDATA%\Signal\config.json
Taką lokalizację bazy i klucza opisują źródła techniczne dotyczące Signal Desktop. (BleepingComputer)
2. Pracuj tylko na kopii
Utwórz np. folder:
D:\Signal_export_test
I skopiuj tam:
db.sqlite
config.json
Nie otwieraj oryginalnej bazy bezpośrednio z folderu Signala.
3. Znajdź klucz w config.json
Otwórz plik:
config.json
np. Notatnikiem albo VS Code.
Szukaj pola podobnego do:
"key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
To będzie długi ciąg znaków hex. Zwykle ma 64 znaki.
Do DB Browser / SQLCipher często trzeba go podać jako raw key z prefiksem:
0xTUTAJ_KLUCZ_Z_CONFIG_JSON
Czyli np.:
0x1234567890abcdef...
Nie wklejamy cudzysłowów.
4. Zainstaluj DB Browser for SQLite z obsługą SQLCipher
Pobierz DB Browser for SQLite i uruchom wersję z obsługą SQLCipher, zwykle nazywa się podobnie do:
DB Browser for SQLCipher.exe
Ważne: zwykła wersja SQLite może nie otworzyć bazy, bo baza Signala jest szyfrowana. Źródła techniczne opisują otwieranie tej bazy właśnie przez SQLCipher z kluczem z config.json. (Hacker News)
5. Otwórz bazę db.sqlite
W DB Browser:
- Open Database
- Wybierz kopię pliku:
D:\Signal_export_test\db.sqlite
- Pojawi się okno hasła / szyfrowania.
- Wybierz tryb typu:
Raw key
- W polu hasła wpisz:
0xTWÓJ_KLUCZ_Z_CONFIG_JSON
- Zatwierdź.
Jeżeli zadziała, zobaczysz tabele bazy danych.
6. Gdzie są wiadomości
Najważniejsza tabela to zwykle:
messages
Możesz wejść w zakładkę:
Browse Data
i wybrać tabelę:
messages
Typowe interesujące kolumny mogą być podobne do:
body
timestamp
received_at
conversationId
source
type
hasAttachments
json
Nazwy kolumn mogą się różnić zależnie od wersji Signala.
7. Eksport do CSV
Najprościej:
- Wejdź w Browse Data.
- Wybierz tabelę
messages. - Użyj opcji:
File → Export → Table(s) as CSV file
albo podobnej.
Możesz wyeksportować całą tabelę messages, ale będzie ona techniczna i mało czytelna. Lepszy wariant to zrobić zapytanie SQL.
8. Proste zapytanie SQL do eksportu wiadomości
W DB Browser wejdź w:
Execute SQL
Spróbuj najpierw:
SELECT
datetime(timestamp / 1000, 'unixepoch', 'localtime') AS message_time,
body
FROM messages
WHERE body IS NOT NULL
ORDER BY timestamp ASC;
Jeżeli działa, możesz potem wyeksportować wynik zapytania do CSV.
Jeżeli timestamp jest w innej kolumnie, sprawdź strukturę tabeli messages.
9. Eksport z podziałem na rozmowy
W zależności od wersji Signala rozmowy mogą być w tabeli typu:
conversations
albo powiązane przez conversationId.
Spróbuj:
SELECT
datetime(m.timestamp / 1000, 'unixepoch', 'localtime') AS message_time,
c.title AS conversation_name,
m.body
FROM messages m
LEFT JOIN conversations c
ON m.conversationId = c.id
WHERE m.body IS NOT NULL
ORDER BY m.timestamp ASC;
Jeżeli pojawi się błąd, to znaczy, że u Ciebie nazwy tabel/kolumn są inne. Wtedy w DB Browser sprawdź listę tabel i kolumn po lewej stronie.
10. Załączniki
Same wiadomości tekstowe są w bazie, ale pliki/zdjęcia zwykle są osobno w folderach profilu Signala, np.:
%APPDATA%\Signal\attachments.noindex
W bazie mogą być tylko odwołania/metadane do załączników.
Dlatego do pełnego archiwum zachowaj cały folder:
%APPDATA%\Signal
a nie tylko db.sqlite.
11. Jeżeli DB Browser nie otwiera bazy
Najczęstsze przyczyny:
Problem 1: zły tryb klucza
Spróbuj obu wariantów:
Raw key: 0xKLUCZ
oraz, jeśli nie działa:
Passphrase: KLUCZ
Najczęściej właściwy jest Raw key z 0x.
Problem 2: skopiowałeś nie ten config.json
Na Windows powinien być zwykle w tym samym katalogu profilu:
%APPDATA%\Signal\config.json
Problem 3: Signal był uruchomiony podczas kopiowania
Zamknij Signal całkowicie i skopiuj bazę jeszcze raz.
Problem 4: zmienił się sposób przechowywania klucza
Nowsze wersje aplikacji mogą mieć dodatkowe mechanizmy powiązane z lokalnym profilem użytkownika Windows / Electron / DPAPI. W analizach forensic z 2025 r. wskazuje się, że oprócz config.json znaczenie mogą mieć też pliki takie jak Local State w katalogu Signal. (ScienceDirect)
W takim przypadku skopiuj cały folder:
%APPDATA%\Signal
i pracuj na kopii całego folderu, nie tylko na dwóch plikach.
12. Alternatywa: eksport całej odszyfrowanej bazy
Po otwarciu bazy w DB Browser możesz zrobić:
File → Export → Database to SQL file
albo eksport tabel do CSV.
Bardziej użyteczny wariant:
Export query result as CSV
czyli eksportujesz nie całą techniczną bazę, tylko wynik zapytania SQL z datą, rozmową i treścią.
13. Minimalna procedura, którą bym zrobił u Ciebie
- Na starym PC zamknij Signal.
- Skopiuj cały folder:
%APPDATA%\Signal
- Z kopii weź:
sql\db.sqlite
config.json
attachments.noindex
- Otwórz
config.json, znajdź"key". - Otwórz
db.sqlitew DB Browser for SQLCipher. - Wybierz Raw key.
- Wpisz:
0xKLUCZ_Z_CONFIG_JSON
- Wykonaj SQL:
SELECT
datetime(timestamp / 1000, 'unixepoch', 'localtime') AS message_time,
body
FROM messages
WHERE body IS NOT NULL
ORDER BY timestamp ASC;
- Wyeksportuj wynik do CSV.
To da Ci archiwum tekstowych wiadomości. Nie będzie to jednak „zaimportowana historia” w nowym Signal Desktop.