01Konum
- /data/data/org.thoughtcrime.securesms/databases/signal.db
02Yanıtladığı sorular
- Signal yüklü mü ve cihazda şifreli bir mesaj deposu var mı?
- Uygun bir süreçle yasal olarak çözüldüyse hangi konuşmalar ve alıcılar mevcut?
- Mesajlar kaybolacak veya bir kez görüntülenecek şekilde ayarlanmış ya da uzaktan silinmiş mi?
03Biçim ve sürümler
| Biçim | SQLCipher ile şifrelenmiş SQLite (net.zetetic SQLCipher kitaplığı). Veri tabanı sırrı 32 rastgele bayttır; güncel derlemelerde Android Keystore'da tutulan bir AES-GCM anahtarıyla (SignalSecret) mühürlenir ve yalnız mühürlü hâlde saklanır. Tablolar arasında message (date_sent, date_received, date_server, type, thread_id, from_recipient_id, to_recipient_id, body, read, expires_in, expire_started, view_once, deleted_by), thread, recipient ve attachment (message_id, content_type, data_file, file_name) bulunur. |
|---|---|
| Geçerli olduğu sürümler | Güncel açık kaynak Signal-Android kodundan tanımlanmıştır; eski kurulumlar, kodun mühürlü sırdan önce okuduğu eski şifrelenmemiş bir sırrı hâlâ tutabilir. Tablo ve sütun adları sürümler arasında değişir. |
04Temel alanlar
| Alan | Ne anlatır |
|---|---|
| message.date_sent / date_received / date_server | Gönderen zamanı, yerel alınma zamanı ve sunucu zamanı. |
| message.thread_id → thread | Mesajın ait olduğu konuşma. |
| message.from_recipient_id / to_recipient_id → recipient | Gönderen ve alıcı başvuruları. |
| message.expires_in / expire_started | Kaybolan mesaj zamanlayıcısı ve başlama zamanı. |
| message.view_once / deleted_by | Bir kez görüntüleme bayrağı ve uzaktan silme işareti. |
| attachment.data_file / content_type | Bir ekin yerel dosya başvurusu ve MIME türü. |
05Zaman damgaları
| Alan | Kodlama | Not |
|---|---|---|
| message.date_received | Unix epoch, milliseconds | Alındığında System.currentTimeMillis() değerinden atanır. |
| message.expires_in | Milliseconds (duration) | Alıcının saniye cinsinden zamanlayıcısının milisaniyeye çevrilmesiyle türetilir. |
Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.
06İnceleme akışı
- signal.db ve ilgili dosyaların varlığını, boyutunu ve zaman damgalarını değiştirmeden belgeleyin.
- Şema ve anahtar yönetimi buna bağlı olduğundan uygulama sürümünü kaydedin.
- İçeriği yalnız yasal ve doğrulanmış bir süreçle analiz edin; ardından message → thread → recipient eşlemesini yapın.
- Süre alanlarını yapılandırma olarak değerlendirin; eksik mesajların süresi dolmuş olabilir.
07Yorum tuzakları
- Veri tabanı sırrı olmadan signal.db içeriği okunamaz; bu kayıt anahtar kurtarmayı kapsamaz.
- Kaybolan mesajlar süre dolunca uygulama tarafından silinir; bu nedenle yoklukları beklenen davranıştır.
- Şema ayrıntıları güncel kaynak ağacından gelir; yüklü sürüm için doğrulayın.
09Kaynaklar
- Signal-Android — SignalDatabase.kt Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
- Signal-Android — DatabaseSecretProvider.java Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
- Signal-Android — KeyStoreHelper.java Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
- Signal-Android — MessageTable.kt Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
- Signal-Android — AttachmentTable.kt Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
- Signal-Android — app/build.gradle.kts (namespace) Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14